@@ -80,6 +80,15 @@ openupm add com.openai.unity
8080 - [ List Input Items] ( #list-input-items )
8181 - [ Cancel Response] ( #cancel-response )
8282 - [ Delete Response] ( #delete-response )
83+ - [ Conversations] ( #conversations ) :new :
84+ - [ Create Conversation] ( #create-conversation ) :new :
85+ - [ Retrieve Conversation] ( #retrieve-conversation ) :new :
86+ - [ Update Conversation] ( #update-conversation ) :new :
87+ - [ Delete Conversation] ( #delete-conversation ) :new :
88+ - [ List Conversation Items] ( #list-conversation-items ) :new :
89+ - [ Create Conversation Item] ( #create-conversation-item ) :new :
90+ - [ Retrieve Conversation Item] ( #retrieve-conversation-item ) :new :
91+ - [ Delete Conversation Item] ( #delete-conversation-item ) :new :
8392- [ Realtime] ( #realtime )
8493 - [ Create Realtime Session] ( #create-realtime-session )
8594 - [ Client Events] ( #client-events )
@@ -452,7 +461,7 @@ Creates a model response. Provide text or image inputs to generate text or JSON
452461var api = new OpenAIClient ();
453462var response = await api .ResponsesEndpoint .CreateModelResponseAsync (" Tell me a three sentence bedtime story about a unicorn." );
454463var responseItem = response .Output .LastOrDefault ();
455- Debug .Log ($" {messageItem .Role }:{textContent . Text }" );
464+ Debug .Log ($" {responseItem .Role }:{responseItem }" );
456465response .PrintUsage ();
457466```
458467
@@ -469,7 +478,7 @@ var tools = new List<Tool>
469478{
470479 Tool .GetOrCreateTool (typeof (DateTimeUtility ), nameof (DateTimeUtility .GetDateTime ))
471480};
472- var request = new CreateResponseRequest (conversation , Model .GPT4_1_Nano , tools : tools );
481+ var request = new CreateResponseRequest (conversation , Model .GPT5_Nano , tools : tools );
473482
474483async Task StreamCallback (string @event , IServerSentEvent sseEvent )
475484{
@@ -482,7 +491,7 @@ async Task StreamCallback(string @event, IServerSentEvent sseEvent)
482491 conversation .Add (functionToolCall );
483492 var output = await functionToolCall .InvokeFunctionAsync ();
484493 conversation .Add (output );
485- await api .ResponsesEndpoint .CreateModelResponseAsync (new (conversation , Model .GPT4_1_Nano , tools : tools , toolChoice : " none" ), StreamCallback );
494+ await api .ResponsesEndpoint .CreateModelResponseAsync (new (conversation , Model .GPT5_Nano , tools : tools , toolChoice : " none" ), StreamCallback );
486495 break ;
487496 }
488497}
@@ -541,6 +550,120 @@ Assert.IsTrue(isDeleted);
541550
542551---
543552
553+ ### [ Conversations] ( https://platform.openai.com/docs/api-reference/conversations )
554+
555+ Create and manage conversations to store and retrieve conversation state across Response API calls.
556+
557+ The Conversations API is accessed via ` OpenAIClient.ConversationsEndpoint `
558+
559+ #### [ Create Conversation] ( https://platform.openai.com/docs/api-reference/conversations/create )
560+
561+ Create a conversation.
562+
563+ ``` csharp
564+ var api = new OpenAIClient ();
565+ conversation = await api .ConversationsEndpoint .CreateConversationAsync (
566+ new CreateConversationRequest (new Message (Role .Developer , systemPrompt )));
567+ Debug .Log (conversation .ToString ());
568+ // use the conversation object when creating responses.
569+ var request = await api .ResponsesEndpoint .CreateResponseAsync (
570+ new CreateResponseRequest (textInput : " Hello!" , conversationId : conversation , model : Model .GPT5_Nano ));
571+ var response = await openAI .ResponsesEndpoint .CreateModelResponseAsync (request );
572+ var responseItem = response .Output .LastOrDefault ();
573+ Debug .Log ($" {responseItem .Role }:{responseItem }" );
574+ response .PrintUsage ();
575+ ```
576+
577+ #### [ Retrieve Conversation] ( https://platform.openai.com/docs/api-reference/conversations/retrieve )
578+
579+ Get a conversation by id.
580+
581+ ``` csharp
582+ var api = new OpenAIClient ();
583+ var conversation = await api .ConversationsEndpoint .GetConversationAsync (" conversation-id" );
584+ Debug .Log (conversation .ToString ());
585+ ```
586+
587+ #### [ Update Conversation] ( https://platform.openai.com/docs/api-reference/conversations/update )
588+
589+ Update a conversation with custom metadata.
590+
591+ ``` csharp
592+ var api = new OpenAIClient ();
593+ var metadata = new Dictionary <string , object >
594+ {
595+ { " favorite_color" , " blue" },
596+ { " favorite_food" , " pizza" }
597+ };
598+ var updatedConversation = await api .ConversationsEndpoint .UpdateConversationAsync (" conversation-id" , metadata );
599+ ```
600+
601+ #### [ Delete Conversation] ( https://platform.openai.com/docs/api-reference/conversations/delete )
602+
603+ Delete a conversation by id.
604+
605+ ``` csharp
606+ var api = new OpenAIClient ();
607+ var isDeleted = await api .ConversationsEndpoint .DeleteConversationAsync (" conversation-id" );
608+ Assert .IsTrue (isDeleted );
609+ ```
610+
611+ #### [ List Conversation Items] ( https://platform.openai.com/docs/api-reference/conversations/list-items )
612+
613+ List all items for a conversation with the given ID.
614+
615+ ``` csharp
616+ var api = new OpenAIClient ();
617+ var query = new ListQuery (limit : 10 );
618+ var items = await api .ConversationsEndpoint .ListConversationItemsAsync (" conversation-id" , query );
619+
620+ foreach (var item in items )
621+ {
622+ Debug .Log (item .ToJsonString ());
623+ }
624+ ```
625+
626+ #### [ Create Conversation Item] ( https://platform.openai.com/docs/api-reference/conversations/create-item )
627+
628+ Create a new conversation item for a conversation with the given ID.
629+
630+ ``` csharp
631+ var api = new OpenAIClient ();
632+ var items = new List <IResponseItem >
633+ {
634+ new Message (Role .User , " Hello!" ),
635+ new Message (Role .Assistant , " Hi! How can I help you?" )
636+ }
637+ var addedItems = await api .ConversationsEndpoint .CreateConversationItemsAsync (" conversation-id" , items );
638+
639+ foreach (var item in addedItems )
640+ {
641+ Debug .Log (item .ToJsonString ());
642+ }
643+ ```
644+
645+ #### [ Retrieve Conversation Item] ( https://platform.openai.com/docs/api-reference/conversations/retrieve-item )
646+
647+ Get a conversation item by id.
648+
649+ ``` csharp
650+ var api = new OpenAIClient ();
651+ var item = await api .ConversationsEndpoint .GetConversationItemAsync (" conversation-id" , " item-id" );
652+ Debug .Log (item .ToJsonString ());
653+ ```
654+
655+ #### [ Delete Conversation Item] ( https://platform.openai.com/docs/api-reference/conversations/delete-item )
656+
657+ Delete a conversation item by id.
658+
659+ ``` csharp
660+ var api = new OpenAIClient ();
661+ var isDeleted = await api .ConversationsEndpoint .DeleteConversationItemAsync (" conversation-id" , " item-id" );
662+ Assert .IsTrue (isDeleted );
663+ ```
664+
665+ ---
666+
544667### [ Realtime] ( https://platform.openai.com/docs/api-reference/realtime )
545668
546669> [ !WARNING]
@@ -903,7 +1026,8 @@ Debug.Log($"Retrieve thread {thread.Id} -> {thread.CreatedAt}");
9031026
9041027Modifies a thread.
9051028
906- > Note: Only the metadata can be modified.
1029+ > [ !NOTE]
1030+ > Only the metadata can be modified.
9071031
9081032``` csharp
9091033var api = new OpenAIClient ();
@@ -981,7 +1105,8 @@ Debug.Log($"{message.Id}: {message.Role}: {message.PrintContent()}");
9811105
9821106Modify a message.
9831107
984- > Note: Only the message metadata can be modified.
1108+ > [ !NOTE]
1109+ > Only the message metadata can be modified.
9851110
9861111``` csharp
9871112var api = new OpenAIClient ();
@@ -1076,7 +1201,8 @@ Debug.Log($"[{run.Id}] {run.Status} | {run.CreatedAt}");
10761201
10771202Modifies a run.
10781203
1079- > Note: Only the metadata can be modified.
1204+ > [ !NOTE]
1205+ > Only the metadata can be modified.
10801206
10811207``` csharp
10821208var api = new OpenAIClient ();
@@ -1795,7 +1921,7 @@ Generates audio from the input text.
17951921``` csharp
17961922var api = new OpenAIClient ();
17971923var request = new SpeechRequest (" Hello world!" );
1798- var speechClip = await api .AudioEndpoint .CreateSpeechAsync (request );
1924+ var speechClip = await api .AudioEndpoint .GetSpeechAsync (request );
17991925audioSource .PlayOneShot (speechClip );
18001926Debug .Log (speechClip );
18011927```
@@ -1807,7 +1933,7 @@ Generate streamed audio from the input text.
18071933``` csharp
18081934var api = new OpenAIClient ();
18091935var request = new SpeechRequest (" Hello world!" , responseFormat : SpeechResponseFormat .PCM );
1810- var speechClip = await api .AudioEndpoint .CreateSpeechStreamAsync (request , partialClip =>
1936+ var speechClip = await api .AudioEndpoint .GetSpeechAsync (request , partialClip =>
18111937{
18121938 audioSource .PlayOneShot (partialClip );
18131939});
0 commit comments