SPB Git forge

spb/doc-api

Public
2commits 1branches 0releases
15.7 MBsize
maindefault branch
13 days agolast push
Python 88.3% TypeScript 7.6% Shell 4.1%
2.3 KB · 41 lines python
Raw Blame History
1#!/usr/bin/env python32# STATUS: LIVE_VERIFIED — executed 2026-09-18 (exit 0 in 4.2s)3# Conversations API with the SDK: create, add items, list, run a response with conversation=..., inspect items, retrieve/delete an item, delete.4import pathlib5import sys67ROOT = pathlib.Path(__file__).resolve().parents[3]8sys.path.insert(0, str(ROOT))9from scripts import live  # noqa: E4021011from openai import OpenAI  # noqa: E4021213client = OpenAI()14conv = client.conversations.create(metadata={"atlas": "example"})15live.log_request("openai", "POST", "/v1/conversations", 200, 0, "example conversations/lifecycle.py")16print(conv.id, conv.object, conv.metadata)1718added = client.conversations.items.create(conv.id, items=[{"type": "message", "role": "user", "content": [{"type": "input_text", "text": "Reply with OK."}]}])19live.log_request("openai", "POST", "/v1/conversations/{id}/items", 200, 0, "example lifecycle.py")20item_id = added.data[0].id2122response = client.responses.create(model="gpt-5.4-nano", conversation=conv.id, input="Reply with OK once more.", max_output_tokens=32)23live.log_request("openai", "POST", "/v1/responses", 200, 0.00002, "example lifecycle.py (conversation)")24print("response bound to:", response.conversation.id if response.conversation else None, "|", response.output_text)2526items = client.conversations.items.list(conv.id, order="asc")27live.log_request("openai", "GET", "/v1/conversations/{id}/items", 200, 0, "example lifecycle.py")28print("items:", [(i.type, getattr(i, "role", None)) for i in items.data])  # user msg, user msg, assistant msg2930one = client.conversations.items.retrieve(item_id, conversation_id=conv.id)31live.log_request("openai", "GET", "/v1/conversations/{id}/items/{item_id}", 200, 0, "example lifecycle.py")32print("item:", one.type, one.id == item_id)33after_delete = client.conversations.items.delete(item_id, conversation_id=conv.id)  # returns the Conversation object34live.log_request("openai", "DELETE", "/v1/conversations/{id}/items/{item_id}", 200, 0, "example lifecycle.py")35print("item delete returns:", after_delete.object)3637deleted = client.conversations.delete(conv.id)38live.log_request("openai", "DELETE", "/v1/conversations/{id}", 200, 0, "example lifecycle.py")39print(deleted.object, deleted.deleted)40assert deleted.deleted and len(items.data) == 341