mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
20431d49a0
## Summary - use generated image data URLs in the Python SDK examples and notebook - document HTTP and HTTPS image URLs as deprecated and recommend `LocalImageInput` - replace the remote-URL integration test with data-URL coverage `ImageInput` remains available for data URLs. The SDK does not duplicate app-server URL validation. ## Testing - `uv run --frozen --no-sync ruff check --output-format=full .` - `uv run --frozen --no-sync ruff format --check .` - full Python SDK test suite with an isolated writable `CODEX_SQLITE_HOME` (119 passed, 38 skipped)
38 lines
983 B
Python
38 lines
983 B
Python
import sys
|
|
from pathlib import Path
|
|
|
|
_EXAMPLES_ROOT = Path(__file__).resolve().parents[1]
|
|
if str(_EXAMPLES_ROOT) not in sys.path:
|
|
sys.path.insert(0, str(_EXAMPLES_ROOT))
|
|
|
|
from _bootstrap import ensure_local_sdk_src, generated_sample_image_data_url, runtime_config
|
|
|
|
ensure_local_sdk_src()
|
|
|
|
import asyncio
|
|
|
|
from openai_codex import AsyncCodex, ImageInput, TextInput
|
|
|
|
IMAGE_DATA_URL = generated_sample_image_data_url()
|
|
|
|
|
|
async def main() -> None:
|
|
async with AsyncCodex(config=runtime_config()) as codex:
|
|
thread = await codex.thread_start(
|
|
model="gpt-5.4", config={"model_reasoning_effort": "high"}
|
|
)
|
|
turn = await thread.turn(
|
|
[
|
|
TextInput("What is in this image? Give 3 bullets."),
|
|
ImageInput(IMAGE_DATA_URL),
|
|
]
|
|
)
|
|
result = await turn.run()
|
|
|
|
print("Status:", result.status)
|
|
print(result.final_response)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|