image.png

环境准备

本地使用vs2022 创建控制台项目,选择.net8 作为基础版本。

下载依赖库

下载抽象核心库Microsoft.Extensions.AI.Abstractions。通过 nuget 进行下载。

dotnet add package Microsoft.Extensions.AI.Abstractions --version 9.9.1

添加Microsoft.Extensions.AI.OpenAI 用于连接兼容OpenAI 请求接口的其他平台模型。

dotnet add package Microsoft.Extensions.AI.OpenAI --version 9.9.1-preview.1.25474.6

项目引用依赖如下:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="9.9.1" />
    <PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="9.9.1-preview.1.25474.6" />
  </ItemGroup>
</Project>

为简化调测,直接使用国内deepseek 进行模型测试,本身它也兼容OpenAi 对应Api接口访问,官方原话如下:

DeepSeek API 使用与 OpenAI 兼容的 API 格式,通过修改配置,您可以使用 OpenAI SDK 来访问 DeepSeek API,或使用与 OpenAI API 兼容的软件。
出于与 OpenAI 兼容考虑,您也可以将 base_url 设置为 https://api.deepseek.com/v1 来使用,但注意,此处 v1 与模型版本无关。

访问deepseek,登陆后如下界面。
Pasted image 20251004141007.png

创建Api Key

点击右上方API 开放平台,选择API Keys 创建新的API Key,需要记住首次创建后,当前APIKey 将无法直接查看。
Pasted image 20251004141307.png

对应API Key 的名称用于方便区分用途,可随意输入,此处为ds-clientchat,点击保存,弹出API Key,需要进行复制到本地备用。
Pasted image 20251004141853.png
创建成功。
Pasted image 20251004141940.png

添加Api Key 到环境变量(调试)

选中项目单击右键,在【调试】-【常规】-【打开调试启动项文件UI】,添加环境变量OPENAI_API_KEY,对应值设置为通过deepseek 开发平台生成的API Key
Pasted image 20251004142849.png

控制台代码

创建IChatClient 实例。

internal class Program
{
    async static Task Main(string[] args)
    {
        string apikey = Environment.GetEnvironmentVariable("OPENAI_API_KEY");// 通过环境变量获取apikey
        string model = "deepseek-chat"; // 模型名称
        string endpoint = "https://api.deepseek.com/v1"; // deepseek中提供兼容openai的访问api
        // 创建IChatClient实例
        IChatClient client = new OpenAI.Chat.ChatClient(model, new ApiKeyCredential(apikey), new OpenAIClientOptions { 
        Endpoint = new Uri(endpoint) // 指定api访问地址
        })
            .AsIChatClient(); // 将chatclient转换为ichatclient实现实例
        // 获取http请求响应(非流式)
        Console.WriteLine(await client.GetResponseAsync("What is AI?")); 
        Console.ReadLine();
    }
}

运行调试项目需要等待一定时间,毕竟不是流式输出,请求结果需要执行完成后才能够获取到返回结果。
Pasted image 20251004143245.png

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐