using AllInAI.Sharp.API.Dto;using AllInAI.Sharp.API.Enums;using AllInAI.Sharp.API.IService;using AllInAI.Sharp.API.Req;using AllInAI.Sharp.API.Res;using System.Net.Http.Json;namespace AllInAI.Sharp.API.Service;public class ChatService{private readonly HttpClient _httpClient;private readonly IChatService _chatService;public ChatService(AuthOption option,HttpClient? httpClient = null) {if (httpClient == null) {_httpClient = new HttpClient();}else {_httpClient = httpClient;}_httpClient.BaseAddress =new Uri(option.BaseUrl);switch (option.AIType){case AITypeEnum.Baidu:accessToken = option.Key;_chatService = new BaiduChatService();break;case AITypeEnum.Ali:_chatService = new AliChatService();_httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {option.Key}");break;case AITypeEnum.OpenAi:default:_chatService = new OpenAIService();_httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {option.Key}");break;}}private string? accessToken;public async Task<CompletionRes> Completion(CompletionReq req){return await _chatService.Completion(_httpClient, req, accessToken);}public IAsyncEnumerable<CompletionRes> CompletionStream(CompletionReq req) {return _chatService.CompletionStream(_httpClient, req, accessToken);}/// <summary>/// 数据向量化(目前只支持openai)/// </summary>/// <param name="req"></param>/// <returns></returns>public async Task<EmbeddingRes> Embedding(EmbeddingReq req) {return await _chatService.Embedding(_httpClient, req, accessToken);}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。