Adapt openai.py to work with xAI (#16903)

* Adapt openai.py to work with xAI

It appears xAI is a bit more strict in regards to how the prompt is sent. This changes the prompt to be a dictionary with `"type": "text"` which works with OpenAI and xAI.

* Adapt openai.py to work with xAI

add "detail": "low"

* Adapt openai.py to work with xAI

Apply Ruff formatting and linting fixes
This commit is contained in:
D34DC3N73R 2025-03-03 11:53:24 -08:00 committed by GitHub
parent f3765bc391
commit 180b0af3c9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -26,13 +26,9 @@ class OpenAIClient(GenAIClient):
def _send(self, prompt: str, images: list[bytes]) -> Optional[str]:
"""Submit a request to OpenAI."""
encoded_images = [base64.b64encode(image).decode("utf-8") for image in images]
try:
result = self.provider.chat.completions.create(
model=self.genai_config.model,
messages=[
{
"role": "user",
"content": [
messages_content = []
for image in encoded_images:
messages_content.append(
{
"type": "image_url",
"image_url": {
@ -40,9 +36,20 @@ class OpenAIClient(GenAIClient):
"detail": "low",
},
}
for image in encoded_images
]
+ [prompt],
)
messages_content.append(
{
"type": "text",
"text": prompt,
}
)
try:
result = self.provider.chat.completions.create(
model=self.genai_config.model,
messages=[
{
"role": "user",
"content": messages_content,
},
],
timeout=self.timeout,