feat: Introduce an OpenAI-compatible client to replace the Groq-specific client and enable multiple LLM providers.
This commit is contained in:
@@ -2,7 +2,7 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace Toak.Api.Models;
|
||||
|
||||
public class LlamaRequestMessage
|
||||
public class OpenAiRequestMessage
|
||||
{
|
||||
[JsonPropertyName("role")]
|
||||
public string Role { get; set; } = string.Empty;
|
||||
@@ -10,43 +10,45 @@ public class LlamaRequestMessage
|
||||
public string Content { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
public class LlamaRequest
|
||||
public class OpenAiRequest
|
||||
{
|
||||
[JsonPropertyName("model")]
|
||||
public string Model { get; set; } = "llama-3.1-8b-instant";
|
||||
[JsonPropertyName("messages")]
|
||||
public LlamaRequestMessage[] Messages { get; set; } = Array.Empty<LlamaRequestMessage>();
|
||||
public OpenAiRequestMessage[] Messages { get; set; } = Array.Empty<OpenAiRequestMessage>();
|
||||
[JsonPropertyName("temperature")]
|
||||
public double Temperature { get; set; } = 0.0;
|
||||
[JsonPropertyName("stream")]
|
||||
public bool? Stream { get; set; }
|
||||
[JsonPropertyName("reasoning_effort")]
|
||||
public string? ReasoningEffort { get; set; }
|
||||
}
|
||||
|
||||
public class LlamaResponse
|
||||
public class OpenAiResponse
|
||||
{
|
||||
[JsonPropertyName("choices")]
|
||||
public LlamaChoice[] Choices { get; set; } = Array.Empty<LlamaChoice>();
|
||||
public OpenAiChoice[] Choices { get; set; } = Array.Empty<OpenAiChoice>();
|
||||
}
|
||||
|
||||
public class LlamaChoice
|
||||
public class OpenAiChoice
|
||||
{
|
||||
[JsonPropertyName("message")]
|
||||
public LlamaRequestMessage Message { get; set; } = new();
|
||||
public OpenAiRequestMessage Message { get; set; } = new();
|
||||
}
|
||||
|
||||
public class LlamaStreamResponse
|
||||
public class OpenAiStreamResponse
|
||||
{
|
||||
[JsonPropertyName("choices")]
|
||||
public LlamaStreamChoice[] Choices { get; set; } = Array.Empty<LlamaStreamChoice>();
|
||||
public OpenAiStreamChoice[] Choices { get; set; } = Array.Empty<OpenAiStreamChoice>();
|
||||
}
|
||||
|
||||
public class LlamaStreamChoice
|
||||
public class OpenAiStreamChoice
|
||||
{
|
||||
[JsonPropertyName("delta")]
|
||||
public LlamaStreamDelta Delta { get; set; } = new();
|
||||
public OpenAiStreamDelta Delta { get; set; } = new();
|
||||
}
|
||||
|
||||
public class LlamaStreamDelta
|
||||
public class OpenAiStreamDelta
|
||||
{
|
||||
[JsonPropertyName("content")]
|
||||
public string? Content { get; set; }
|
||||
Reference in New Issue
Block a user