Improved video referencing WIP (codex)

This commit is contained in:
2026-09-23 02:08:50 +03:00
parent 1e462b22a9
commit e5e09c00f9
8 changed files with 222 additions and 37 deletions

View File

@@ -2,8 +2,7 @@ import base64
import mimetypes
from dataclasses import dataclass
from pathlib import Path
from typing import Literal, cast
from pydantic import BaseModel
from typing import Any, Literal, cast
import httpx2
from openai import OpenAI
@@ -31,7 +30,17 @@ class Agent:
**kwargs
)
self._model = model
@staticmethod
def _raw_content(response: Any) -> str:
"""Read message content without triggering SDK-side schema validation."""
try:
content = response.http_response.json()["choices"][0]["message"]["content"]
except (AttributeError, KeyError, IndexError, TypeError) as error:
raise RuntimeError("Agent returned an invalid response") from error
if not isinstance(content, str):
raise RuntimeError("Agent returned an empty response")
return content
def completion(self, messages: list[AgentMessage], **kwargs) -> str:
"""Generate a completion for specified messages."""
@@ -43,12 +52,12 @@ class Agent:
"content": m.content
})
)
response = self._client.chat.completions.parse(
response = self._client.chat.completions.with_raw_response.parse(
model=self._model,
messages=messages_raw,
**kwargs
)
return response.choices[0].message.content # type: ignore
return self._raw_content(response)
def completion_with_images(
self,
@@ -96,9 +105,9 @@ class Agent:
"content": content,
})
response = self._client.chat.completions.parse(
response = self._client.chat.completions.with_raw_response.parse(
model=self._model,
messages=messages_raw,
**kwargs,
)
return response.choices[0].message.content # type: ignore
return self._raw_content(response)