mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-10-18 15:38:00 +00:00
Read the context window from four more model lists
This commit is contained in:
16 files changed
+415
-28
No files matched your search
@@ -0,0 +1,15 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace AIStudio.Provider.Groq;
|
||||
|
||||
/// <summary>
|
||||
/// One model as Groq lists it.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Groq says more about a model than the shared OpenAI-compatible list does, which is why this
|
||||
/// provider brings a data model of its own instead of using that one: the shared record is read by
|
||||
/// a dozen providers, and a field only one of them sends has no business in it.
|
||||
/// </remarks>
|
||||
/// <param name="Id">The model's ID.</param>
|
||||
/// <param name="ContextWindowTokens">How much the model reads and writes in one conversation, in tokens.</param>
|
||||
public readonly record struct GroqModel(string Id, [property: JsonPropertyName("context_window")] int? ContextWindowTokens);
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace AIStudio.Provider.Groq;
|
||||
|
||||
/// <summary>
|
||||
/// A data model for the response from the Groq models endpoint.
|
||||
/// </summary>
|
||||
/// <param name="Data">The models Groq serves.</param>
|
||||
public readonly record struct GroqModelsResponse(IList<GroqModel> Data);
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
using AIStudio.Chat;
|
||||
using AIStudio.Models.Live;
|
||||
using AIStudio.Provider.OpenAI;
|
||||
using AIStudio.Settings;
|
||||
|
||||
@@ -113,10 +114,12 @@ public class ProviderGroq() : BaseProvider(LLMProviders.GROQ, new Uri("https://a
|
||||
|
||||
private Task<ModelLoadResult> LoadModels(SecretStoreType storeType, string? apiKeyProvisional, CancellationToken token)
|
||||
{
|
||||
return this.LoadModelsResponse<ModelsResponse>(
|
||||
return this.LoadModelsResponse<GroqModelsResponse>(
|
||||
storeType,
|
||||
"models",
|
||||
modelResponse => modelResponse.Data,
|
||||
apiKeyProvisional, token: token);
|
||||
modelResponse => modelResponse.Data.Select(n => new Model(n.Id, null)),
|
||||
apiKeyProvisional,
|
||||
listingFactory: modelResponse => modelResponse.Data.Select(n => ModelListing.For(n.Id, n.ContextWindowTokens)),
|
||||
token: token);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user