Skip to content

Commit

Permalink
Add Context message when creating assistant thread
Browse files Browse the repository at this point in the history
  • Loading branch information
GeeksAmin committed Nov 19, 2024
1 parent c95622a commit dd066de
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 12 deletions.
12 changes: 2 additions & 10 deletions Olive.Gpt/ApiDto/ChatRequestThread.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,9 @@ namespace Olive.Gpt.ApiDto
{
class ChatRequestThread
{
public ChatRequestThread(ChatMessage[] messages)
{
Messages = new Dictionary<string, object>();

foreach (var item in messages)
{
Messages.Add(item.Role, item.Content);
}
}
public ChatRequestThread(ChatMessage[] messages) => Messages = messages;

[JsonProperty("messages")]
public Dictionary<string, object> Messages { get; set; }
public ChatMessage[] Messages { get; set; }
}
}
20 changes: 19 additions & 1 deletion Olive.Gpt/AssistantApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -105,11 +105,29 @@ public async Task<string> DeleteAssistant(string assistantId)
return jObject.Id;
}

public async Task<string> CreateNewThread()
public async Task<string> CreateNewThread(List<ChatMessage> messages=null)
{
var payload = new StringContent("", Encoding.UTF8, "application/json");

if (messages != null && messages.HasAny())
{
for (int i = 0; i < messages.Count; ++i)
{
if (messages[i].Role.IsEmpty())
{
messages[i].Role = "user";
}
}

ChatRequestThread chatRequestThread = new ChatRequestThread(messages.ToArray());

var jsonContent = JsonConvert.SerializeObject(chatRequestThread, _settings);

payload = new StringContent(jsonContent, Encoding.UTF8, "application/json");
}

var httpRequest = new HttpRequestMessage(HttpMethod.Post, "https://api.openai.com/v1/threads") { Content = payload };

var response = await _client.SendAsync(httpRequest, HttpCompletionOption.ResponseHeadersRead);

if (!response.IsSuccessStatusCode)
Expand Down
2 changes: 1 addition & 1 deletion Olive.Gpt/Olive.Gpt.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Version>1.1.5</Version>
<Version>1.1.6</Version>
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
</PropertyGroup>

Expand Down

0 comments on commit dd066de

Please sign in to comment.