aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio_22/Tango.Portal.Chat.Web/Models/Options.cs
blob: 556bc59ba3fe6baa5ee713fbb15b04dfa96eeb53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
namespace Tango.Portal.Chat.Web.Services
{
    public enum LlmProvider
    {
        OpenAI,
        Claude
    }

    public sealed class LlmOptions
    {
        // Provider selection: OpenAI, AzureOpenAI, or Claude
        public LlmProvider Provider { get; set; } = LlmProvider.OpenAI;
        
        // If using OpenAI, set Provider = OpenAI and Endpoint = https://api.openai.com/v1/chat/completions
        // If using Claude, set Provider = Claude and Endpoint = https://api.anthropic.com/v1/messages
        public string Endpoint { get; set; } = string.Empty;
        public string ApiKey { get; set; } = string.Empty;
        public string Model { get; set; } = "gpt-4o-mini"; // or your Azure deployment name, or claude-3-5-sonnet-20241022
        public double Temperature { get; set; } = 0.2;
        public string AnswererAssistantId { get; set; } = string.Empty; // NEW
        public string DocsAssistantId { get; set; } = string.Empty; // NEW
        
        // Claude-specific settings
        public string ClaudeApiKey { get; set; } = string.Empty;
        public string ClaudeModel { get; set; } = "claude-3-5-sonnet-20241022";
        public string ClaudeEndpoint { get; set; } = "https://api.anthropic.com/v1/messages";
        public int MaxTokens { get; set; } = 4000;
    }

    public sealed class AdxOptions
    {
        public string ClusterUri { get; set; } = string.Empty;
        public string Database { get; set; } = string.Empty;
        public string TenantId { get; set; } = string.Empty;
        public string ClientId { get; set; } = string.Empty;
        public string ClientSecret { get; set; } = string.Empty;
    }

    public sealed class AzureStorageOptions
    {
        public string ConnectionString { get; set; } = string.Empty;
    }

    public sealed class N8NOptions
    {
        public string URL { get; set; } = string.Empty;
        public string User { get; set; } = string.Empty;
        public string Password { get; set; } = string.Empty;
    }
}