-
Notifications
You must be signed in to change notification settings - Fork 33
Expand file tree
/
Copy pathProgram.cs
More file actions
158 lines (143 loc) · 5.43 KB
/
Copy pathProgram.cs
File metadata and controls
158 lines (143 loc) · 5.43 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Senparc.AI.Interfaces;
using Senparc.AI.Kernel;
using Senparc.AI.Samples.Consoles;
using Senparc.AI.Samples.Consoles.Samples;
using Senparc.AI.Samples.Consoles.Samples.Plugins;
using Senparc.CO2NET;
using Senparc.CO2NET.RegisterServices;
var configBuilder = new ConfigurationBuilder();
var appsettingsJsonFileName = SampleHelper.GetAppSettingsFile();//"appsettings.json"
configBuilder.AddJsonFile(appsettingsJsonFileName, false, false);
Console.WriteLine("完成 appsettings.json 添加");
var config = configBuilder.Build();
Console.WriteLine("完成 ServiceCollection 和 ConfigurationBuilder 初始化");
var services = new ServiceCollection();
services.AddSenparcGlobalServices(config)
.AddSenparcAI(config);
services.AddSingleton<SampleSetting>();
services.AddTransient<ChatSample>();
services.AddTransient<CompletionSample>();
services.AddTransient<EmbeddingSample>();
services.AddTransient<DallESample>();
services.AddTransient<PlanSample>();
services.AddTransient<PluginFromObjectSample>();
services.AddScoped<IAiHandler, SemanticAiHandler>(s =>
{
return new SemanticAiHandler(SampleSetting.CurrentSetting);
});
var serviceProvider = services.BuildServiceProvider();
IRegisterService register = RegisterService.Start()
.UseSenparcGlobal()
.UseSenparcAI();
Start:
Console.WriteLine();
Console.WriteLine("Senparc.AI Sample 启动完毕");
Console.WriteLine("开源地址:https://github.com/Senparc/Senparc.AI");
Console.WriteLine("-----------------------");
Console.WriteLine($"当前模型:{SampleSetting.CurrentSettingKey} - {SampleSetting.CurrentSetting.AiPlatform} - {SampleSetting.CurrentSetting.Endpoint}");
Console.WriteLine($"当前 HttpClient 日志开关:{(SampleSetting.EnableHttpClientLog ? "开启" : "关闭")}");
Console.WriteLine($"当前向量数据库设置:{SampleSetting.CurrentSetting.VectorDB.Type} {SampleSetting.CurrentSetting.VectorDB.ConnectionString}");
Console.WriteLine("=======================");
Console.WriteLine();
Console.WriteLine("请输入序号,开始对应功能测试:");
Console.WriteLine("[0] 进入设置");
Console.WriteLine("[1] Chat 对话机器人");
Console.WriteLine("[2] Completion 任务机器人");
Console.WriteLine("[3] 执行 Embedding 任务(RAG)");
Console.WriteLine("[4] Dall·E 绘图(需要配置 OpenAI 或 AzureOpenAI)");
Console.WriteLine("[5] Planner 任务计划");
Console.WriteLine("[6] PluginFromObject 测试");
Console.WriteLine();
var index = Console.ReadLine();
Console.WriteLine();
await Console.Out.WriteLineAsync("任意时间输入 exit 退出选择并重新开始。");
Console.WriteLine();
switch (index)
{
case "1":
{
//对话机器人 Sample
var chatSample = serviceProvider.GetRequiredService<ChatSample>();
await chatSample.RunAsync();
}
break;
case "2":
{
//Completion Sample
var completionSample = serviceProvider.GetRequiredService<CompletionSample>();
await completionSample.RunAsync();
}
break;
case "3":
{
//Embedding Sample
Console.WriteLine("请输入需要,进入对应 Embedding测试:");
Console.WriteLine("[1] 普通 Embedding + 查询");
Console.WriteLine("[2] 检索增强生成(RAG)");
index = Console.ReadLine();
Console.WriteLine();
try
{
//Embedding
var embeddingSample = serviceProvider.GetRequiredService<EmbeddingSample>();
switch (index)
{
case "1":
{
await embeddingSample.RunAsync();
}
break;
case "2":
{
await embeddingSample.RunRagAsync(serviceProvider);
}
break;
default:
Console.WriteLine("序号错误,请重新开始!");
break;
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
goto case "3";
}
}
break;
case "4":
{
//DallE Sample
var dallESample = serviceProvider.GetRequiredService<DallESample>();
await dallESample.RunAsync();
}
break;
case "5":
{
//Plan Sample
var planSample = serviceProvider.GetRequiredService<PlanSample>();
await planSample.RunAsync();
}
break;
case "6":
{
//Function Sample
var functionSample = serviceProvider.GetRequiredService<PluginFromObjectSample>();
await functionSample.RunAsync();
}
break;
case "0":
{
//Setting
var setting = serviceProvider.GetRequiredService<SampleSetting>();
setting.RunAsync();
}
break;
default:
Console.WriteLine("序号错误,请重新开始!");
break;
}
Console.WriteLine("好,让我们重新开始!");
Console.WriteLine();
goto Start;