Мое намерение состоит в том, чтобы не модель автоматически вызывала инструменты. Вместо этого я хочу явно запустить определенную функцию, используя response.create с Tool_choice.
Это моя функция, и это пример обновления моего сеанса для инициализации.
Код: Выделить всё
CaptureOrderInfo = {Код: Выделить всё
“type”: “function”,Код: Выделить всё
“name”: “CaptureOrderInfo”,Код: Выделить всё
“description”: “Extract order details mentioned in the conversation.”,Код: Выделить всё
“parameters”: {Код: Выделить всё
“type”: “object”,Код: Выделить всё
“properties”: {Код: Выделить всё
“order_details”: {Код: Выделить всё
“type”: “string”,Код: Выделить всё
“description”: “What the customer ordered”Код: Выделить всё
},Код: Выделить всё
“phone_number”: {Код: Выделить всё
“type”: “string”,Код: Выделить всё
“description”: “Customer phone number”Код: Выделить всё
},Код: Выделить всё
“discount_coupon”: {Код: Выделить всё
“type”: “string”,Код: Выделить всё
“description”: “Coupon or discount mentioned”Код: Выделить всё
}Код: Выделить всё
},Код: Выделить всё
“required”: [“phone_number”]Код: Выделить всё
}Код: Выделить всё
}Код: Выделить всё
{
"type": "session.update",
"session": {
"type": "realtime",
"model": "gpt-realtime",
"audio": {
"input": {
"turn_detection": {"type": "server_vad"},
},
"output": {
"voice": VOICE
}
},
"instructions": f"{Main prompt}"
"tools": [CaptureOrderInfo],
"tool_choice": "none",
}
}
Вот как я отправляю вызов ручной функции OOB
Код: Выделить всё
{Код: Выделить всё
“type”: “response.create”,Код: Выделить всё
“response”: {Код: Выделить всё
“conversation”: “none”,Код: Выделить всё
“output_modalities”: [“text”],Код: Выделить всё
“tools”: [“CaptureOrderInfo”],Код: Выделить всё
“metadata”: {Код: Выделить всё
“topic”: “Код: Выделить всё
”Код: Выделить всё
},Код: Выделить всё
“tool_choice”: {Код: Выделить всё
“type”: “function”,Код: Выделить всё
“name”: “CaptureOrderInfo”Код: Выделить всё
}Код: Выделить всё
}Код: Выделить всё
}Код: Выделить всё
{Код: Выделить всё
“type”: “response.done”,Код: Выделить всё
“response”: {Код: Выделить всё
“object”: “realtime.response”,Код: Выделить всё
“status”: “completed”,Код: Выделить всё
“status_details”: null,Код: Выделить всё
“output”: [Код: Выделить всё
{Код: Выделить всё
“type”: “message”,Код: Выделить всё
“status”: “completed”,Код: Выделить всё
“role”: “assistant”,Код: Выделить всё
“content”: [Код: Выделить всё
{Код: Выделить всё
“type”: “output_text”,Код: Выделить всё
“text”: “{}”Код: Выделить всё
}Код: Выделить всё
]Код: Выделить всё
}Код: Выделить всё
],Код: Выделить всё
“conversation_id”: null,Код: Выделить всё
“output_modalities”: [“text”],Код: Выделить всё
“max_output_tokens”: “inf”,Код: Выделить всё
“audio”: {Код: Выделить всё
…Код: Выделить всё
}Код: Выделить всё
},Код: Выделить всё
“metadata”: {Код: Выделить всё
“topic”: “CaptureOrderInfo”Код: Выделить всё
}Код: Выделить всё
}Код: Выделить всё
}Подробнее здесь: https://stackoverflow.com/questions/798 ... altime-api
Мобильная версия