main
bicijinlian 3 days ago
parent 9614ea2c9d
commit bdb050c9d6

@ -9,6 +9,8 @@ public class OpenAISdkTest
private IOptionsMonitor<OllamaServerOption> _ollamaOptionsMonitor; private IOptionsMonitor<OllamaServerOption> _ollamaOptionsMonitor;
private OpenAIClient _defaultOpenAIClient; private OpenAIClient _defaultOpenAIClient;
private ChatClient _singtonChatClient; private ChatClient _singtonChatClient;
private OpenAIClient _uiUiApiClient;
private OpenAIClient _zipuApiClient;
public OpenAISdkTest public OpenAISdkTest
( (
@ -17,13 +19,18 @@ public class OpenAISdkTest
IOptionsMonitor<OllamaServerOption> ollamaOptionsMonitor, IOptionsMonitor<OllamaServerOption> ollamaOptionsMonitor,
//使用了FromKeyedServices特性所以需要使用IKeyedServiceCollection注册服务 //使用了FromKeyedServices特性所以需要使用IKeyedServiceCollection注册服务
[FromKeyedServices("OpenAIChatClient")]ChatClient singtonChatClient [FromKeyedServices("OpenAIChatClient")]ChatClient singtonChatClient,
[FromKeyedServices("UiUiAPIClient")]OpenAIClient uiUiApiClient,
[FromKeyedServices("ZipuAPIClient")]OpenAIClient zipuApiClient
) )
{ {
_output = outputHelper; _output = outputHelper;
_defaultOpenAIClient = defaultOpenAIClient; _defaultOpenAIClient = defaultOpenAIClient;
_ollamaOptionsMonitor = ollamaOptionsMonitor; _ollamaOptionsMonitor = ollamaOptionsMonitor;
_singtonChatClient = singtonChatClient; _singtonChatClient = singtonChatClient;
_uiUiApiClient = uiUiApiClient;
_zipuApiClient = zipuApiClient;
} }
#region 使用客户端库 #region 使用客户端库
@ -999,4 +1006,28 @@ public class OpenAISdkTest
return $"31 {unit}"; return $"31 {unit}";
} }
#endregion #endregion
#region 其它平台测试
[Fact]
public void UiUiAPI_Test()
{
var chatClient = _uiUiApiClient.GetChatClient("gpt-3.5-turbo");
var r = chatClient.CompleteChat("你好");
_output.WriteLine(r.Value.Content.First().Text);
}
[Fact]
public void Zipu_Test()
{
var chatClient = _zipuApiClient.GetChatClient("GLM-4.5-Flash");
var r = chatClient.CompleteChat("你好");
_output.WriteLine(r.Value.Content.First().Text);
}
#endregion
} }

@ -104,6 +104,36 @@ namespace OllamaStudy.UseExtensionsAI
}; };
return new ChatClient(options.Model, new ApiKeyCredential("nokey"), openAIClientOptions); return new ChatClient(options.Model, new ApiKeyCredential("nokey"), openAIClientOptions);
})
//UiUiAPI OpenAI 兼容API
.AddKeyedSingleton<OpenAIClient>("UiUiAPIClient", (provider, obj) =>
{
var openAIClientOptions = new OpenAIClientOptions()
{
Endpoint = new Uri("https://sg.uiuiapi.com/v1")
};
return new OpenAIClient(new ApiKeyCredential("sk-4azuOUkbzNGP22pQkND8ad1vZl7ladwBQyqGKlWWZyxYgX1L"), openAIClientOptions);
})
//阿里百炼 OpenAI兼容API
.AddKeyedSingleton<OpenAIClient>("BailianAPIClient", (provider, obj) =>
{
var openAIClientOptions = new OpenAIClientOptions()
{
Endpoint = new Uri("https://dashscope.aliyuncs.com/compatible-mode/v1")
};
return new OpenAIClient(new ApiKeyCredential(""), openAIClientOptions);
})
//智谱 OpenAI兼容API
.AddKeyedSingleton<OpenAIClient>("ZipuAPIClient", (provider, obj) =>
{
var openAIClientOptions = new OpenAIClientOptions()
{
Endpoint = new Uri("https://open.bigmodel.cn/api/paas/v4/")
};
return new OpenAIClient(new ApiKeyCredential("397a799102a6453282da8abb2a1b2581.8fTMHZGRkPHJya4R"), openAIClientOptions);
}); });
} }
#endregion #endregion

Loading…
Cancel
Save