You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
4.2 KiB
C#

3 weeks ago
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OllamaStudy.UseExtensionsAI
{
/// <summary>
/// OpenAI的API 测试
/// Ollama兼容OpenAI接口可以直接使用OpenAI的SDK调用
/// </summary>
public class OpenAIAPITest
{
4 days ago
private readonly ITestOutputHelper _output;
private readonly IOptionsMonitor<OllamaServerOption> _ollamaOptionsMonitor;
private readonly IHttpClientFactory _httpClientFactory;
private readonly HttpClient _defaultHttpClient;
private readonly HttpClient _ollamaHttpClient;
private readonly HttpClient _uiUiAPIHttpClient;
private readonly HttpClient _bailianHttpClient;
private readonly HttpClient _zipuHttpClient;
public OpenAIAPITest
(
ITestOutputHelper outputHelper,
OpenAIClient defaultOpenAIClient,
IOptionsMonitor<OllamaServerOption> ollamaOptionsMonitor,
IHttpClientFactory httpClientFactory
)
3 weeks ago
{
_output = outputHelper;
_ollamaOptionsMonitor = ollamaOptionsMonitor;
4 days ago
_httpClientFactory = httpClientFactory;
_defaultHttpClient = _httpClientFactory.CreateClient("OpenAIHttpClient");
_ollamaHttpClient = _httpClientFactory.CreateClient("OllamaHttpClient");
_uiUiAPIHttpClient = _httpClientFactory.CreateClient("UiUiAPIHttpClient");
_bailianHttpClient = _httpClientFactory.CreateClient("BailianHttpClient");
_zipuHttpClient = _httpClientFactory.CreateClient("ZiPuHttpClient");
3 weeks ago
}
#region 各种业务Client
/// <summary>
/// 从OpenAIClient获取各种业务 Client
/// </summary>
[Fact]
public void GetClients_Test()
{
4 days ago
Assert.NotNull(_defaultHttpClient);
Assert.NotNull(_ollamaHttpClient);
Assert.NotNull(_uiUiAPIHttpClient);
Assert.NotNull(_bailianHttpClient);
Assert.NotNull(_zipuHttpClient);
}
#endregion
3 weeks ago
4 days ago
#region 音频
[Fact]
public async Task Audio_Test()
{
var requetData = new
{
//语音模型
model = "gpt-4o-mini-tts",
3 weeks ago
4 days ago
//要生成音频的文本。最大长度为4096个字符。
input = "你好,上海今天的天气非常好,很适合户外游玩!",
3 weeks ago
4 days ago
//生成音频时使用的语音。支持的语音有:alloy、echo、fable、onyx、nova 和 shimmer。
voice = "alloy",
3 weeks ago
4 days ago
//默认为 mp3 音频的格式。支持的格式有:mp3、opus、aac 和 flac。
response_format = "mp3",
3 weeks ago
4 days ago
//默认为 1 生成的音频速度。选择0.25到4.0之间的值。1.0是默认值。
speed = 1.0f,
};
3 weeks ago
4 days ago
using var requestMessage = new HttpRequestMessage(HttpMethod.Post, "https://sg.uiuiapi.com/v1/audio/speech")
{
Content = JsonContent.Create(requetData)
};
3 weeks ago
4 days ago
var responseMessage = await _uiUiAPIHttpClient.SendAsync(requestMessage);
responseMessage.EnsureSuccessStatusCode();
3 weeks ago
4 days ago
//处理响应
var responseObject = await responseMessage.Content.ReadAsByteArrayAsync();
3 weeks ago
4 days ago
using FileStream stream = File.OpenWrite($"{Guid.NewGuid()}.mp3");
stream.Write(responseObject);
3 weeks ago
}
#endregion
#region 聊天
#endregion
#region 自动补全
#endregion
#region 嵌入
#endregion
#region 微调
#endregion
#region 文件
#endregion
#region 图像
#endregion
#region 模型
/// <summary>
/// 列出模型 测试
/// </summary>
[Fact]
public void List_Models_Test()
{
}
#endregion
#region 审查
#endregion
#region 助手测试版
#endregion
#region 线程数
#endregion
#region 留言
#endregion
#region 运行
#endregion
#region 已弃用-音频
#endregion
}
}