mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-10-17 22:57:59 +00:00
Split the reasoning parameters into dialects
This commit is contained in:
15 files changed
+845
-488
No files matched your search
@@ -0,0 +1,31 @@
|
||||
namespace AIStudio.Provider.Reasoning.Dialects;
|
||||
|
||||
/// <summary>
|
||||
/// The nested "reasoning" object almost every OpenAI-compatible server accepts.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// The object may carry an effort or a summary setting, and it may be written as a plain value
|
||||
/// instead. An object carrying neither says nothing: somebody who wrote "reasoning": {} has not
|
||||
/// asked for anything yet.
|
||||
/// </remarks>
|
||||
public sealed class OpenAICompatibleDialect : IReasoningDialect
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public ReasoningDialect Dialect => ReasoningDialect.OPEN_AI_COMPATIBLE;
|
||||
|
||||
/// <inheritdoc />
|
||||
public ReasoningConfigurationState Detect(IDictionary<string, object> parameters)
|
||||
{
|
||||
if (!ReasoningParameters.TryGet(parameters, "reasoning", out var reasoning))
|
||||
return ReasoningConfigurationState.NOT_CONFIGURED;
|
||||
|
||||
return reasoning switch
|
||||
{
|
||||
IDictionary<string, object> reasoningObject when ReasoningParameters.TryGet(reasoningObject, "effort", out var effort) => ReasoningParameters.LevelOf(effort),
|
||||
IDictionary<string, object> reasoningObject when ReasoningParameters.TryGet(reasoningObject, "summary", out var summary) => ReasoningParameters.LevelOf(summary),
|
||||
IDictionary<string, object> => ReasoningConfigurationState.NOT_CONFIGURED,
|
||||
|
||||
_ => ReasoningParameters.LevelOf(reasoning),
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user