privateasync Task OKAsync() { var apiKey = "sk-XXX"; var apiUrl = "http://XXX.XXX.XXX.XXX:XXX/v1/chat/completions";
if (string.IsNullOrWhiteSpace(Input)) return;
var requestContent = new { model = "crcc-qwen3", messages = new[] { new { role = "system", content = "你是一个语言翻译家,擅长将中文翻译成英文!请只输出翻译后的文本,不要输出其他不相关的文字。" }, new { role = "user", content = $"请翻译'{Input}'为英语!" } }, Stream = false, };
var json = JsonSerializer.Serialize(requestContent, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }); var httpContent = new StringContent(json, Encoding.UTF8, "application/json");
usingvar httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Clear(); httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
try { var response = await httpClient.PostAsync(apiUrl, httpContent); response.EnsureSuccessStatusCode();
var responseBody = await response.Content.ReadAsStringAsync(); usingvar jsonDocument = JsonDocument.Parse(responseBody); var root = jsonDocument.RootElement;
var apiKey = "sk-XXX"; var apiUrl = "https://api.deepseek.com/v1/chat/completions"; var requestContent = new { model = "deepseek-chat", messages = new[] { new { role = "system", content = "你是一个语言翻译家,擅长将中文翻译成英文!请只输出翻译后的文本,不要输出其他不相关的文字。" }, new { role = "user", content = $"请翻译'{Input}'为英语!" } }, // 不使用流模式,即整体输出最终结果 Stream = false, };
使用OpenAPI包访问
安装以下NuGet包:
使用方法如下,非常简洁,以下是访问自部署的大模型接口:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
staticasync Task Main() { var client = new ChatClient( "crcc-qwen3", new ApiKeyCredential("sk-XXX"), new OpenAIClientOptions() { Endpoint = new Uri("http://XXX.XXX.XXX.XXX:54000/v1") } ); var res =await client.CompleteChatAsync( ChatMessage.CreateSystemMessage("你是一个语言翻译家,擅长将中文翻译成英文!请只输出翻译后的文本,不要输出其他不相关的文字。"), ChatMessage.CreateUserMessage($"请翻译'这是一个挑战!'为英语!"), ); Console.WriteLine( res.Value.Content.FirstOrDefault().Text ); }
如果是访问DeepSeek的官方接口:
1 2 3 4 5 6 7 8 9 10
staticasync Task Main() { var client = new ChatClient( "deepseek-chat", new ApiKeyCredential("sk-XXX"), new OpenAIClientOptions() { Endpoint = new Uri("https://api.deepseek.com/v1") } ); // ...... }
但是最终程序会依赖很多类库,较为冗余:
DeepSeek.Core库
该库仅支持访问官方DeepSeek大模型接口,只需要传递APIKey和消息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
privateasync Task OKAsync() { if (string.IsNullOrWhiteSpace(Input)) return;
var apiKey = "sk-XXX"; var client = new DeepSeekClient(apiKey); var request = new ChatRequest { Messages = [ Message.NewSystemMessage("你是一个语言翻译家,擅长将中文翻译成英文!请只输出翻译后的文本,不要输出其他不相关的文字。"), Message.NewUserMessage($"请翻译'{Input}'为英语!") ], Model = DeepSeekModels.ChatModel };
var chatResponse = await client.ChatAsync(request, CancellationToken.None); Output = chatResponse?.Choices.First().Message?.Content; }