Python和.NET交互-与最新DeepSeekV3.2大模型对话
2026/7/1 17:47:36 网站建设 项目流程

目录

前言

Python脚本

.NET调用

结尾


前言

Python强大的AI生态基础,任何一出现就会有大量的脚本。然.NET虽然有SK框架封装的AI,似乎单薄了点。如果没有SK封装的AI脚本呢?那么就需要自己调用Python了,本篇通过它们交互演示下这个过程。

.NET SK AI

.NET SK与DeepSeekv3.2交互

using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.ChatCompletion; using Microsoft.SemanticKernel.Connectors.OpenAI; var kernel = Kernel.CreateBuilder() .AddOpenAIChatCompletion( modelId: "deepseek-ai/DeepSeek-V3.2", apiKey: "hf_xxxxxx", endpoint: new Uri("https://router.huggingface.co/v1") // 很关键! ) .Build(); var ai = kernel.GetRequiredService<IChatCompletionService>(); var result = await ai.GetChatMessageContentAsync("你是谁?"); Console.WriteLine(result); Console.ReadLine();

结果

Python脚本

Python有高达十几种调用dsv.32的方法,这里展示其中典型的两种脚本方式。这里对于dsv3.2_speciale和dsv3.2分别展示其中一种

其一:dsv3.2_speciale通过兼容openai的baseurl进行调用​​​​​​​

from openai import OpenAI client = OpenAI( api_key="sk-xxxxxxxx", # 替换为你的DeepSeek API密钥 base_url="https://api.deepseek.com/v3.2_speciale_expires_on_20251215", # 修改基础地址为DeepSeek-v3.2_speciale,其原本基础地址https://api.deepseek.com ) response = client.chat.completions.create( model="deepseek-reasoner", # 指定使用DeepSeek的模型 messages=[ {"role": "user", "content": "你好,请介绍一下你自己。"} ], stream=False ) print(response.choices[0].message.content

其二:dsv3.2通过兼容openai的stream形式​​​​​​​

import os from openai import OpenAI #这两行对应.net那边编码问题,所以需要 import sys, io sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='ignore') client = OpenAI( base_url="https://router.huggingface.co/v1", api_key="hf_xxxxx" #替换成自己的hugging face key ) stream = client.chat.completions.create( model="deepseek-ai/DeepSeek-V3.2", messages=[ { "role": "user", "content": "你是谁?" } ], stream=True, ) for chunk in stream: if not chunk.choices: continue delta = chunk.choices[0].delta if delta is None or not hasattr(delta, "content"): continue content = delta.content if content: print(content, end="")

.NET调用

.NET这边最稳妥的Python调用依然是Process.Start.把以上Python脚本保存下,就可以在.net里面调与deepseek交互了。

下面以.net调用python的deepseekv3.2脚本为例。​​​​​​​

using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; using Microsoft.Diagnostics.Runtime.AbstractDac; using System.Diagnostics; using System.Runtime.CompilerServices; using System.Text; using System.Diagnostics; public class Program { public static void Main() { string pythonExe = @"D:\Python\python.exe"; string script = @"D:\PyCharm\PythonProject4\deepseek-v32--auto-python-openai-stream.py"; //string args = "123 456"; var psi = new ProcessStartInfo { FileName = pythonExe, Arguments = $"{script}", RedirectStandardOutput = true, RedirectStandardError = true, UseShellExecute = false, CreateNoWindow = true, //这两行是编码的问题,所以需要加上 StandardOutputEncoding = Encoding.UTF8, StandardErrorEncoding = Encoding.UTF8 }; using var process = Process.Start(psi); string output = process!.StandardOutput.ReadToEnd(); string error = process.StandardError.ReadToEnd(); process.WaitForExit(); Console.WriteLine("Output:"); Console.WriteLine(output); if (!string.IsNullOrEmpty(error)) { Console.WriteLine("Error:"); Console.WriteLine(error); } Console.ReadLine(); } }

结果

结尾

本篇展示了一个简单的Python/.NET与最新的DeepSeekv3.2交互的过程

引入地址​​​​​​​

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询