Skip to content

Commit 051c45f

Browse files
authored
Merge pull request #1326 from iceljc/features/integrate-response-api
Features/integrate response api
2 parents f89a155 + bd3e90c commit 051c45f

24 files changed

Lines changed: 1636 additions & 701 deletions

File tree

src/Infrastructure/BotSharp.Abstraction/Conversations/Dtos/ChatResponseDto.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ public class ChatResponseDto : InstructResult
4646
[JsonPropertyName("is_streaming")]
4747
public bool IsStreaming { get; set; }
4848

49+
[JsonPropertyName("thought")]
50+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
51+
public Dictionary<string, string?>? Thought { get; set; }
52+
4953
[JsonPropertyName("meta_data")]
5054
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
5155
public Dictionary<string, string?>? MetaData { get; set; }

src/Infrastructure/BotSharp.Abstraction/Conversations/Models/Conversation.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,10 @@ public class DialogMetaData
114114
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
115115
public string? ToolCallId { get; set; }
116116

117+
[JsonPropertyName("thought")]
118+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
119+
public Dictionary<string, string?>? Thought { get; set; }
120+
117121
[JsonPropertyName("meta_data")]
118122
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
119123
public Dictionary<string, string?>? MetaData { get; set; }

src/Infrastructure/BotSharp.Abstraction/Conversations/Models/RoleDialogModel.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ public class RoleDialogModel : ITrackableMessage
7676
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
7777
public string? ToolCallId { get; set; }
7878

79+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
80+
public Dictionary<string, string?>? Thought { get; set; }
81+
7982
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
8083
public Dictionary<string, string?>? MetaData { get; set; }
8184

@@ -141,7 +144,6 @@ public class RoleDialogModel : ITrackableMessage
141144
[JsonIgnore(Condition = JsonIgnoreCondition.Always)]
142145
public bool IsStreaming { get; set; }
143146

144-
145147
[JsonIgnore(Condition = JsonIgnoreCondition.Always)]
146148
public bool IsFromUser => Role == AgentRole.User;
147149

@@ -210,6 +212,7 @@ public static RoleDialogModel From(RoleDialogModel source,
210212
Data = source.Data,
211213
IsStreaming = source.IsStreaming,
212214
Annotations = source.Annotations,
215+
Thought = source.Thought != null ? new(source.Thought) : null,
213216
MetaData = source.MetaData != null ? new(source.MetaData) : null
214217
};
215218
}

src/Infrastructure/BotSharp.Abstraction/MLTasks/Settings/LlmModelSetting.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,10 @@ public class ReasoningSetting
9999
public class WebSearchSetting
100100
{
101101
public bool IsDefault { get; set; }
102+
103+
[Obsolete("Set SearchContextSize in Parameters")]
102104
public string? SearchContextSize { get; set; }
105+
public Dictionary<string, ModelParamSetting>? Parameters { get; set; }
103106
}
104107
#endregion
105108

src/Infrastructure/BotSharp.Core/Conversations/Services/ConversationStorage.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ public async Task<List<RoleDialogModel>> GetDialogs(string conversationId, Conve
8282
ToolCallId = meta?.ToolCallId,
8383
FunctionName = meta?.FunctionName,
8484
FunctionArgs = meta?.FunctionArgs,
85+
Thought = meta?.Thought,
8586
MetaData = meta?.MetaData,
8687
RichContent = richContent,
8788
SecondaryContent = secondaryContent,
@@ -121,6 +122,7 @@ public async Task<List<RoleDialogModel>> GetDialogs(string conversationId, Conve
121122
ToolCallId = dialog.ToolCallId,
122123
FunctionName = dialog.FunctionName,
123124
FunctionArgs = dialog.FunctionArgs,
125+
Thought = dialog.Thought,
124126
MetaData = dialog.MetaData,
125127
CreatedTime = dialog.CreatedAt
126128
};
@@ -149,6 +151,7 @@ public async Task<List<RoleDialogModel>> GetDialogs(string conversationId, Conve
149151
MessageLabel = dialog.MessageLabel,
150152
SenderId = dialog.SenderId,
151153
FunctionName = dialog.FunctionName,
154+
Thought = dialog.Thought,
152155
MetaData = dialog.MetaData,
153156
CreatedTime = dialog.CreatedAt
154157
};

src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeAgent.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public async Task<bool> InvokeAgent(
5555
message.ToolCallId = response.ToolCallId;
5656
message.FunctionName = response.FunctionName;
5757
message.FunctionArgs = response.FunctionArgs;
58+
message.Thought = response.Thought != null ? new(response.Thought) : null;
5859
message.MetaData = response.MetaData != null ? new(response.MetaData) : null;
5960
message.Indication = response.Indication;
6061
message.CurrentAgentId = agent.Id;
@@ -74,6 +75,7 @@ public async Task<bool> InvokeAgent(
7475

7576
message = RoleDialogModel.From(message, role: AgentRole.Assistant, content: response.Content);
7677
message.CurrentAgentId = agent.Id;
78+
message.Thought = response.Thought != null ? new(response.Thought) : null;
7779
message.MetaData = response.MetaData != null ? new(response.MetaData) : null;
7880
message.IsStreaming = response.IsStreaming;
7981
message.MessageLabel = response.MessageLabel;

src/Infrastructure/BotSharp.OpenAPI/Controllers/Conversation/ConversationController.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ public async Task<IEnumerable<ChatResponseModel>> GetDialogs(
131131
Data = message.Data,
132132
Sender = UserDto.FromUser(user),
133133
Payload = message.Payload,
134+
Thought = message.Thought,
134135
MetaData = message.MetaData,
135136
HasMessageFiles = files.Any(x => x.MessageId.IsEqualTo(message.MessageId) && x.FileSource == FileSource.User)
136137
});
@@ -147,6 +148,7 @@ public async Task<IEnumerable<ChatResponseModel>> GetDialogs(
147148
Text = !string.IsNullOrEmpty(message.SecondaryContent) ? message.SecondaryContent : message.Content,
148149
Function = message.FunctionName,
149150
Data = message.Data,
151+
Thought = message.Thought,
150152
MetaData = message.MetaData,
151153
Sender = new()
152154
{
@@ -419,6 +421,8 @@ await conv.SendMessage(agentId, inputMsg,
419421
response.RichContent = msg.SecondaryRichContent ?? msg.RichContent;
420422
response.Instruction = msg.Instruction;
421423
response.Data = msg.Data;
424+
response.Thought = msg.Thought;
425+
response.MetaData = msg.MetaData;
422426
});
423427
}
424428
catch (OperationCanceledException) when (input.IsStreamingMessage)
@@ -485,6 +489,8 @@ await conv.SendMessage(agentId, inputMsg,
485489
response.RichContent = msg.SecondaryRichContent ?? msg.RichContent;
486490
response.Instruction = msg.Instruction;
487491
response.Data = msg.Data;
492+
response.Thought = msg.Thought;
493+
response.MetaData = msg.MetaData;
488494
response.States = state.GetStates();
489495

490496
await OnChunkReceived(Response, response);

src/Plugins/BotSharp.Plugin.ChatHub/Hooks/ChatHubConversationHook.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ public override async Task OnResponseGenerated(RoleDialogModel message)
112112
Function = message.FunctionName,
113113
RichContent = message.SecondaryRichContent ?? message.RichContent,
114114
Data = message.Data,
115+
Thought = message.Thought,
115116
MetaData = message.MetaData,
116117
States = state.GetStates(),
117118
IsStreaming = message.IsStreaming,

src/Plugins/BotSharp.Plugin.ChatHub/Observers/ChatHubObserver.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ public override void OnNext(HubObserveData<RoleDialogModel> value)
8080
Function = message.FunctionName,
8181
RichContent = message.SecondaryRichContent ?? message.RichContent,
8282
Data = message.Data,
83+
Thought = message.Thought,
8384
MetaData = message.MetaData,
8485
Sender = new()
8586
{

src/Plugins/BotSharp.Plugin.FileHandler/Functions/ReadPdfFn.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,9 @@ private async Task<List<RoleDialogModel>> AssembleFiles(string conversationId, L
108108
{
109109
ContentType = x.ContentType,
110110
FileUrl = x.FileUrl,
111-
FileStorageUrl = x.FileStorageUrl
111+
FileStorageUrl = x.FileStorageUrl,
112+
FileName = x.FileName,
113+
FileExtension = x.FileExtension
112114
}).ToList();
113115
}
114116

0 commit comments

Comments
 (0)