1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import openai
- from app.models.message import Message
- from app.models.run import Run
- from app.providers.database import session
- # 测试创建动作
- def test_create_run_with_additional_messages_and_other_parmas():
- client = openai.OpenAI(base_url="http://localhost:8086/api/v1", api_key="xxx")
- assistant = client.beta.assistants.create(
- name="Assistant Demo",
- instructions="你是一个有用的助手",
- model="gpt-4o",
- response_format={"type": "json_object"},
- )
- thread = client.beta.threads.create(
- messages=[
- {
- "role": "user",
- "content": [
- {
- "type": "text",
- "text": "这张图片的场景是什么季节?"
- },
- {
- "type": "image_url",
- "image_url": {
- "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
- }
- }
- ]
- }
- ],
- )
- thread_message = client.beta.threads.messages.create(
- thread.id,
- role="user",
- content="这张图片中有人物吗?",
- )
- stream = client.beta.threads.runs.create(
- thread_id=thread.id,
- assistant_id=assistant.id,
- instructions="请用 json 格式回答",
- additional_messages=[
- {
- "role": "user",
- "content": [
- {
- "type": "text",
- "text": "这张图片里有什么?"
- },
- {
- "type": "image_url",
- "image_url": {
- "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
- }
- }
- ]
- }
- ],
- max_completion_tokens=100,
- max_prompt_tokens=100,
- temperature=0.5,
- top_p=0.5,
- stream=True,
- )
- print("\nstream message start")
- for event in stream:
- if event.event == "thread.message.delta":
- print(event.data.delta.content[0].text.value, end="", flush=True)
- print("\nstream message finish")
- query = session.query(Run).filter(Run.thread_id == thread.id)
- run = query.one()
- assert run.instructions == "请用 json 格式回答"
- assert run.model == "gpt-4o"
- query = session.query(Message).filter(Message.thread_id == thread.id).order_by(Message.created_at)
- messages = query.all()
- for message in messages:
- print(message)
- assert run.max_completion_tokens == 100
- assert run.max_prompt_tokens == 100
- assert run.temperature == 0.5
- assert run.top_p == 0.5
- session.close()
|