mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-02-15 17:41:36 +00:00
Fixed Anthropic provider
This commit is contained in:
parent
283a04f0b2
commit
422791e8b9
@ -9,11 +9,14 @@ namespace AIStudio.Provider.Anthropic;
|
|||||||
/// <param name="Messages">The chat messages.</param>
|
/// <param name="Messages">The chat messages.</param>
|
||||||
/// <param name="MaxTokens">The maximum number of tokens to generate.</param>
|
/// <param name="MaxTokens">The maximum number of tokens to generate.</param>
|
||||||
/// <param name="Stream">Whether to stream the chat completion.</param>
|
/// <param name="Stream">Whether to stream the chat completion.</param>
|
||||||
|
/// <param name="System">The system prompt for the chat completion.</param>
|
||||||
public readonly record struct ChatRequest(
|
public readonly record struct ChatRequest(
|
||||||
string Model,
|
string Model,
|
||||||
IList<IMessageBase> Messages,
|
IList<IMessageBase> Messages,
|
||||||
int MaxTokens,
|
int MaxTokens,
|
||||||
bool Stream)
|
bool Stream,
|
||||||
|
string System
|
||||||
|
)
|
||||||
{
|
{
|
||||||
// Attention: The "required" modifier is not supported for [JsonExtensionData].
|
// Attention: The "required" modifier is not supported for [JsonExtensionData].
|
||||||
[JsonExtensionData]
|
[JsonExtensionData]
|
||||||
|
|||||||
@ -27,18 +27,18 @@ public sealed class ProviderAnthropic() : BaseProvider(LLMProviders.ANTHROPIC, "
|
|||||||
if(!requestedSecret.Success)
|
if(!requestedSecret.Success)
|
||||||
yield break;
|
yield break;
|
||||||
|
|
||||||
// Prepare the system prompt:
|
|
||||||
var systemPrompt = new TextMessage
|
|
||||||
{
|
|
||||||
Role = "system",
|
|
||||||
Content = chatThread.PrepareSystemPrompt(settingsManager, chatThread),
|
|
||||||
};
|
|
||||||
|
|
||||||
// Parse the API parameters:
|
// Parse the API parameters:
|
||||||
var apiParameters = this.ParseAdditionalApiParameters("system");
|
var apiParameters = this.ParseAdditionalApiParameters("system");
|
||||||
|
|
||||||
// Build the list of messages:
|
// Build the list of messages:
|
||||||
var messages = await chatThread.Blocks.BuildMessagesUsingStandardRoles();
|
var messages = await chatThread.Blocks.BuildMessages(role => role switch
|
||||||
|
{
|
||||||
|
ChatRole.USER => "user",
|
||||||
|
ChatRole.AI => "assistant",
|
||||||
|
ChatRole.AGENT => "assistant",
|
||||||
|
|
||||||
|
_ => "user",
|
||||||
|
});
|
||||||
|
|
||||||
// Prepare the Anthropic HTTP chat request:
|
// Prepare the Anthropic HTTP chat request:
|
||||||
var chatRequest = JsonSerializer.Serialize(new ChatRequest
|
var chatRequest = JsonSerializer.Serialize(new ChatRequest
|
||||||
@ -46,8 +46,9 @@ public sealed class ProviderAnthropic() : BaseProvider(LLMProviders.ANTHROPIC, "
|
|||||||
Model = chatModel.Id,
|
Model = chatModel.Id,
|
||||||
|
|
||||||
// Build the messages:
|
// Build the messages:
|
||||||
Messages = [systemPrompt, ..messages],
|
Messages = [..messages],
|
||||||
|
|
||||||
|
System = chatThread.PrepareSystemPrompt(settingsManager, chatThread),
|
||||||
MaxTokens = apiParameters.TryGetValue("max_tokens", out var value) && value is int intValue ? intValue : 4_096,
|
MaxTokens = apiParameters.TryGetValue("max_tokens", out var value) && value is int intValue ? intValue : 4_096,
|
||||||
|
|
||||||
// Right now, we only support streaming completions:
|
// Right now, we only support streaming completions:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user