diff --git a/OllamaStudy.CApp/GloabolUsing.cs b/OllamaStudy.CApp/GlobalUsing.cs
similarity index 100%
rename from OllamaStudy.CApp/GloabolUsing.cs
rename to OllamaStudy.CApp/GlobalUsing.cs
diff --git a/OllamaStudy.Core/GloabolUsing.cs b/OllamaStudy.Core/GlobalUsing.cs
similarity index 100%
rename from OllamaStudy.Core/GloabolUsing.cs
rename to OllamaStudy.Core/GlobalUsing.cs
diff --git a/OllamaStudy.CoreTest/GloabolUsing.cs b/OllamaStudy.CoreTest/GlobalUsing.cs
similarity index 100%
rename from OllamaStudy.CoreTest/GloabolUsing.cs
rename to OllamaStudy.CoreTest/GlobalUsing.cs
diff --git a/OllamaStudy.UseExtensionsAI/GloabolUsing.cs b/OllamaStudy.UseExtensionsAI/GlobalUsing.cs
similarity index 99%
rename from OllamaStudy.UseExtensionsAI/GloabolUsing.cs
rename to OllamaStudy.UseExtensionsAI/GlobalUsing.cs
index 8bc0834..cbfd693 100644
--- a/OllamaStudy.UseExtensionsAI/GloabolUsing.cs
+++ b/OllamaStudy.UseExtensionsAI/GlobalUsing.cs
@@ -64,5 +64,3 @@ global using Xunit.Abstractions;
global using Xunit.DependencyInjection;
global using OllamaStudy.Core;
-
-
diff --git a/OllamaStudy.UseExtensionsAI/OpenAIAPITest.cs b/OllamaStudy.UseExtensionsAI/OpenAIAPITest.cs
new file mode 100644
index 0000000..523bf6f
--- /dev/null
+++ b/OllamaStudy.UseExtensionsAI/OpenAIAPITest.cs
@@ -0,0 +1,155 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OllamaStudy.UseExtensionsAI
+{
+ ///
+ /// OpenAI的API 测试
+ /// Ollama兼容OpenAI接口,可以直接使用OpenAI的SDK调用
+ ///
+ public class OpenAIAPITest
+ {
+ private ITestOutputHelper _output;
+ private IOptionsMonitor _ollamaOptionsMonitor;
+ private OpenAIClient _defaultOpenAIClient;
+ private ChatClient _chatClient;
+
+ public OpenAIAPITest(ITestOutputHelper outputHelper, OpenAIClient defaultOpenAIClient, IOptionsMonitor ollamaOptionsMonitor)
+ {
+ _output = outputHelper;
+ _defaultOpenAIClient = defaultOpenAIClient;
+ _ollamaOptionsMonitor = ollamaOptionsMonitor;
+ _chatClient = _defaultOpenAIClient.GetChatClient(_ollamaOptionsMonitor.CurrentValue.Model);
+ }
+
+ #region 各种业务Client
+ ///
+ /// 从OpenAIClient获取各种业务 Client
+ ///
+ [Fact]
+ public void GetClients_Test()
+ {
+ #pragma warning disable OPENAI001
+ Assert.NotNull(_defaultOpenAIClient);
+
+ //音频客户端
+ var audioClient = _defaultOpenAIClient.GetAudioClient(_ollamaOptionsMonitor.CurrentValue.Model);
+ Assert.NotNull(audioClient);
+
+ //聊天客户端
+ var chatClient = _defaultOpenAIClient.GetChatClient(_ollamaOptionsMonitor.CurrentValue.Model);
+ Assert.NotNull(chatClient);
+
+ //嵌入客户端
+ var embeddingClient = _defaultOpenAIClient.GetEmbeddingClient(_ollamaOptionsMonitor.CurrentValue.Model);
+ Assert.NotNull(embeddingClient);
+
+ //图像客户端
+ var imageClient = _defaultOpenAIClient.GetImageClient(_ollamaOptionsMonitor.CurrentValue.Model);
+ Assert.NotNull(imageClient);
+
+ //微调客户端
+ var moderationClient = _defaultOpenAIClient.GetModerationClient(_ollamaOptionsMonitor.CurrentValue.Model);
+ Assert.NotNull(moderationClient);
+
+ //文件客户端
+ var openAIFileClient = _defaultOpenAIClient.GetOpenAIFileClient();
+ Assert.NotNull(openAIFileClient);
+
+ //模型客户端
+ var modelClient = _defaultOpenAIClient.GetOpenAIModelClient();
+ Assert.NotNull(modelClient);
+
+ //助手客户端(仅评估)
+ var assistantClient = _defaultOpenAIClient.GetAssistantClient();
+ Assert.NotNull(assistantClient);
+
+ //批量客户端(仅评估)
+ var batchClient = _defaultOpenAIClient.GetBatchClient();
+ Assert.NotNull(batchClient);
+
+ //评估客户端(仅评估)
+ var evaluationClient = _defaultOpenAIClient.GetEvaluationClient();
+ Assert.NotNull(evaluationClient);
+
+ //微调客户端(仅评估)
+ var FineTuningClient = _defaultOpenAIClient.GetFineTuningClient();
+ Assert.NotNull(FineTuningClient);
+
+ //响应客户端(仅评估)
+ var openAIResponseClient = _defaultOpenAIClient.GetOpenAIResponseClient(_ollamaOptionsMonitor.CurrentValue.Model);
+ Assert.NotNull(openAIResponseClient);
+
+ //实时客户端(仅评估)
+#pragma warning disable OPENAI002
+ var realtimeClient = _defaultOpenAIClient.GetRealtimeClient();
+ Assert.NotNull(realtimeClient);
+#pragma warning restore OPENAI002
+
+ //向量存储客户端(仅评估)
+ var vectorStoreClient = _defaultOpenAIClient.GetVectorStoreClient();
+ Assert.NotNull(vectorStoreClient);
+
+#pragma warning restore OPENAI001
+ }
+ #endregion
+
+ #region 音频
+ #endregion
+
+ #region 聊天
+ #endregion
+
+ #region 自动补全
+ #endregion
+
+ #region 嵌入
+ #endregion
+
+ #region 微调
+ #endregion
+
+ #region 文件
+ #endregion
+
+ #region 图像
+ #endregion
+
+ #region 模型
+
+ ///
+ /// 列出模型 测试
+ ///
+ [Fact]
+ public void List_Models_Test()
+ {
+ var modelClient = _defaultOpenAIClient.GetOpenAIModelClient();
+
+ OpenAI.Models.OpenAIModelCollection openAIModelCollection = modelClient.GetModels().Value;
+
+ _output.WriteLine($"Ollama服务中,共有{openAIModelCollection.Count()}个模型,包括[{string.Join(",", openAIModelCollection)}]");
+ }
+ #endregion
+
+ #region 审查
+ #endregion
+
+ #region 助手测试版
+ #endregion
+
+ #region 线程数
+ #endregion
+
+ #region 留言
+ #endregion
+
+ #region 运行
+ #endregion
+
+ #region 已弃用-音频
+ #endregion
+ }
+}
diff --git a/OllamaStudy.UseExtensionsAI/OpenAISdkTest.cs b/OllamaStudy.UseExtensionsAI/OpenAISdkTest.cs
index a6809d6..d46b248 100644
--- a/OllamaStudy.UseExtensionsAI/OpenAISdkTest.cs
+++ b/OllamaStudy.UseExtensionsAI/OpenAISdkTest.cs
@@ -8,22 +8,22 @@ public class OpenAISdkTest
private ITestOutputHelper _output;
private IOptionsMonitor _ollamaOptionsMonitor;
private OpenAIClient _defaultOpenAIClient;
- private ChatClient _chatClient;
public OpenAISdkTest(ITestOutputHelper outputHelper, OpenAIClient defaultOpenAIClient, IOptionsMonitor ollamaOptionsMonitor)
{
_output = outputHelper;
_defaultOpenAIClient = defaultOpenAIClient;
_ollamaOptionsMonitor = ollamaOptionsMonitor;
- _chatClient = _defaultOpenAIClient.GetChatClient(_ollamaOptionsMonitor.CurrentValue.Model);
}
+ #region 使用客户端库
///
/// 从OpenAIClient获取各种业务Client
///
[Fact]
public void GetClients_Test()
- {
+ {
+#pragma warning disable OPENAI001
Assert.NotNull(_defaultOpenAIClient);
//音频客户端
@@ -34,29 +34,101 @@ public class OpenAISdkTest
var chatClient = _defaultOpenAIClient.GetChatClient(_ollamaOptionsMonitor.CurrentValue.Model);
Assert.NotNull(chatClient);
- //自动补全客户端
- var completionClient = _defaultOpenAIClient;
- Assert.NotNull(completionClient);
+ //嵌入客户端
+ var embeddingClient = _defaultOpenAIClient.GetEmbeddingClient(_ollamaOptionsMonitor.CurrentValue.Model);
+ Assert.NotNull(embeddingClient);
+
+ //图像客户端
+ var imageClient = _defaultOpenAIClient.GetImageClient(_ollamaOptionsMonitor.CurrentValue.Model);
+ Assert.NotNull(imageClient);
+
+ //微调客户端
+ var moderationClient = _defaultOpenAIClient.GetModerationClient(_ollamaOptionsMonitor.CurrentValue.Model);
+ Assert.NotNull(moderationClient);
+
+ //文件客户端
+ var openAIFileClient = _defaultOpenAIClient.GetOpenAIFileClient();
+ Assert.NotNull(openAIFileClient);
//模型客户端
var modelClient = _defaultOpenAIClient.GetOpenAIModelClient();
Assert.NotNull(modelClient);
- }
- #region 模型
+ //助手客户端(仅评估)
+ var assistantClient = _defaultOpenAIClient.GetAssistantClient();
+ Assert.NotNull(assistantClient);
- ///
- /// 列出模型 测试
- ///
- [Fact]
- public void List_Models_Test()
- {
- var modelClient = _defaultOpenAIClient.GetOpenAIModelClient();
+ //批量客户端(仅评估)
+ var batchClient = _defaultOpenAIClient.GetBatchClient();
+ Assert.NotNull(batchClient);
+
+ //评估客户端(仅评估)
+ var evaluationClient = _defaultOpenAIClient.GetEvaluationClient();
+ Assert.NotNull(evaluationClient);
- OpenAI.Models.OpenAIModelCollection openAIModelCollection = modelClient.GetModels().Value;
+ //微调客户端(仅评估)
+ var FineTuningClient = _defaultOpenAIClient.GetFineTuningClient();
+ Assert.NotNull(FineTuningClient);
- _output.WriteLine($"Ollama服务中,共有{openAIModelCollection.Count()}个模型,包括[{string.Join(",",openAIModelCollection)}]");
+ //响应客户端(仅评估)
+ var openAIResponseClient = _defaultOpenAIClient.GetOpenAIResponseClient(_ollamaOptionsMonitor.CurrentValue.Model);
+ Assert.NotNull(openAIResponseClient);
+
+ //实时客户端(仅评估)
+#pragma warning disable OPENAI002
+ var realtimeClient = _defaultOpenAIClient.GetRealtimeClient();
+ Assert.NotNull(realtimeClient);
+#pragma warning restore OPENAI002
+
+ //向量存储客户端(仅评估)
+ var vectorStoreClient = _defaultOpenAIClient.GetVectorStoreClient();
+ Assert.NotNull(vectorStoreClient);
+
+#pragma warning restore OPENAI001
}
+
+
+ #endregion
+
+ #region 如何使用依赖注入
+ #endregion
+
+ #region 如何将聊天完成与流式处理一起使用
+ #endregion
+
+ #region 如何将聊天完成与工具和函数调用一起使用
#endregion
+ #region 如何将聊天完成与结构化输出一起使用
+ #endregion
+
+ #region 如何将聊天完成与音频一起使用
+ #endregion
+
+ #region 如何将响应与流式处理和推理结合使用
+ #endregion
+
+ #region 如何将响应与文件搜索一起使用
+ #endregion
+
+ #region 如何将响应与网络搜索结合使用
+ #endregion
+
+ #region 如何生成文本嵌入
+ #endregion
+
+ #region 如何生成图像
+ #endregion
+
+ #region 如何转录音频
+ #endregion
+
+ #region 如何将助手与检索增强生成 (RAG) 结合使用。
+ #endregion
+
+ #region 如何将助手与流媒体和视觉结合使用
+ #endregion
+
+ #region 高级方案
+ #endregion
}
diff --git a/OllamaStudy.UseExtensionsAI/Startup.cs b/OllamaStudy.UseExtensionsAI/Startup.cs
index 9e5d4c6..e632b80 100644
--- a/OllamaStudy.UseExtensionsAI/Startup.cs
+++ b/OllamaStudy.UseExtensionsAI/Startup.cs
@@ -1,19 +1,4 @@
-using System;
-using System.ClientModel;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
-using System.Text;
-using System.Threading.Tasks;
-
-using Microsoft.Extensions.Hosting;
-
-using OllamaSharp;
-
-using OpenAI;
-using OpenAI.Chat;
-
-using OllamaStudy.Core;
+using Microsoft.Extensions.Hosting;
namespace OllamaStudy.UseExtensionsAI
{
diff --git a/OllamaStudy.UseHttpClient/GloabolUsing.cs b/OllamaStudy.UseHttpClient/GlobalUsing.cs
similarity index 100%
rename from OllamaStudy.UseHttpClient/GloabolUsing.cs
rename to OllamaStudy.UseHttpClient/GlobalUsing.cs
diff --git a/OllamaStudy.UseHttpClientTest/GloabolUsing.cs b/OllamaStudy.UseHttpClientTest/GlobalUsing.cs
similarity index 100%
rename from OllamaStudy.UseHttpClientTest/GloabolUsing.cs
rename to OllamaStudy.UseHttpClientTest/GlobalUsing.cs
diff --git a/OllamaStudy.UseOllamaSharp/GloabolUsing.cs b/OllamaStudy.UseOllamaSharp/GlobalUsing.cs
similarity index 100%
rename from OllamaStudy.UseOllamaSharp/GloabolUsing.cs
rename to OllamaStudy.UseOllamaSharp/GlobalUsing.cs
diff --git a/OllamaStudy.UseSemanticKernel/GloabolUsing.cs b/OllamaStudy.UseSemanticKernel/GlobalUsing.cs
similarity index 100%
rename from OllamaStudy.UseSemanticKernel/GloabolUsing.cs
rename to OllamaStudy.UseSemanticKernel/GlobalUsing.cs