讲师中心 微信公众号
AI工具推荐 视频效率加速

使用.NET和GitHub模型构建AI聊天应用教程

浅婷酱_4235

浅婷酱_4235

发布时间:2026-01-09 08:57:07

|

221人浏览过

|

来源于php中文网

原创

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

使用.net和github模型构建ai聊天应用教程

在人工智能(AI)领域蓬勃发展的今天,作为一名.NET开发者,掌握AI技术变得至关重要。随着各种强大AI库的涌现,将大型语言模型(LLM)集成到应用程序中已经不再是遥不可及的梦想,而是变得切实可行。本教程将引导你利用.NET 9和GitHub模型,一步步构建一个功能完善的AI聊天应用程序。你将学习如何设置OpenAI适配器、配置聊天客户端,以及使用简洁的代码实现应用程序与AI模型的无缝对接。通过本教程,你将不仅掌握AI集成的基本技能,更将探索.NET生态系统在AI领域的无限潜力,为你的职业发展注入新的活力。

关键要点

掌握.NET 9与GitHub模型的集成: 了解如何将最新的AI技术融入.NET开发。

OpenAI适配器设置: 学习配置OpenAI适配器,为与GitHub模型的通信奠定基础。

聊天客户端配置: 掌握聊天客户端的配置方法,实现用户与AI模型的互动。

聊天历史记录管理: 学习如何记录和利用聊天历史,使AI模型能够更好地理解上下文。

实时响应流处理: 了解如何使用流处理技术,使AI模型的回复能够实时显示。

代码简洁性: 通过简洁的代码示例,展示.NET在AI集成方面的优势。

GitHub模型探索: 熟悉GitHub模型市场,选择适合项目的AI模型。

身份验证与API密钥管理: 学习如何安全地管理API密钥,确保应用程序的安全性。

使用.NET构建AI聊天应用

拥抱AI:.NET开发者的黄金时代

随着人工智能技术的飞速发展,.NET开发者正迎来一个前所未有的黄金时代。各种强大的AI库和工具的出现,使得将大型语言模型(LLM)集成到.NET应用程序中变得异常简单。 这不仅为.NET开发者带来了新的机遇,也极大地拓展了.NET应用的可能性。告别过去的挑战,拥抱现在这种简洁、一致的开发体验,开启你的AI探索之旅吧!

关键依赖:Microsoft.Extensions.AI

在.NET生态系统中,Microsoft.Extensions.AI库扮演着至关重要的角色。它提供了一系列清晰的抽象,使得开发者能够轻松地与各种不同的AI服务提供商进行交互。这意味着,无论你选择使用OpenAI、Azure AI Inference还是GitHub Models,Microsoft.Extensions.AI都能提供一致的接口和体验,极大地简化了开发流程。它为.NET应用程序利用AI铺平了道路。

GitHub模型:.NET的AI新选择

GitHub模型为.NET开发者提供了一个探索和利用AI的全新途径。 通过GitHub模型,你可以轻松地将预训练的AI模型集成到你的应用程序中,而无需从头开始构建和训练模型。这不仅节省了大量的时间和精力,也降低了AI开发的门槛。本教程将重点介绍如何使用.NET与GitHub模型进行交互,构建一个功能强大的AI聊天应用程序。你将学习如何设置必要的适配器、配置聊天客户端,以及使用简单的代码实现与AI模型的通信。

准备开发环境:创建.NET 9控制台应用

在开始之前,你需要准备好开发环境。本教程将使用.NET 9控制台应用程序作为示例。 如果你还没有安装.NET 9 SDK,请前往官方网站下载并安装。安装完成后,你可以使用Visual Studio或.NET CLI创建一个新的控制台应用程序。在本教程中,我们将使用Visual Studio,因为它提供了强大的IDE支持,可以极大地提高开发效率。

  1. 打开Visual Studio,选择“创建新项目”。
  2. 在项目模板中,选择“控制台应用程序”。
  3. 输入项目名称(例如“ChatAppWithGitHubModel”)和位置,然后点击“创建”。

创建完成后,你将看到一个包含Program.cs文件的基本控制台应用程序。接下来,我们将添加必要的库,以便与GitHub模型进行交互。

添加必要的NuGet包

安装Microsoft.Extensions.AI.OpenAI

为了使.NET应用程序能够与GitHub模型进行通信,你需要安装Microsoft.Extensions.AI.OpenAI NuGet包。 这个包提供了必要的适配器和接口,以便与OpenAI兼容的模型进行交互。虽然GitHub模型本身可能不直接使用OpenAI的API,但Microsoft.Extensions.AI.OpenAI包提供了一种通用的方式来处理各种AI模型,包括GitHub上托管的模型。

操作步骤:

  1. 在Visual Studio中,右键单击项目名称,选择“管理NuGet程序包”。
  2. 在“程序包管理器”中,选择“浏览”选项卡。
  3. 在搜索框中,输入Microsoft.Extensions.AI.OpenAI。
  4. 在搜索结果中,找到Microsoft.Extensions.AI.OpenAI包,然后点击“安装”。
  5. 接受许可协议,等待安装完成。

请注意,安装Microsoft.Extensions.AI.OpenAI包会自动安装其依赖项,包括Microsoft.Extensions.AI库。因此,你无需单独安装Microsoft.Extensions.AI库。通过安装Microsoft.Extensions.AI.OpenAI NuGet包,你的项目将获得必要的组件,以便与GitHub模型无缝集成。这将为你提供强大的抽象,使您能够与各种提供商进行交互,而无需过多关心底层的实现细节。这极大地简化了开发过程,并提高了代码的可维护性。

使用.NET与GitHub模型进行聊天

配置聊天客户端:IChatClient

在Program.cs文件中,首先需要配置一个聊天客户端,用于与GitHub模型进行通信。 IChatClient是Microsoft.Extensions.AI库中定义的核心接口,它提供了一种标准的方式来与各种聊天服务进行交互。

openclaw-github-config-impact
openclaw-github-config-impact

OpenClaw 技能 — 给定一个 GitHub 仓库 URL,自动解析出 owner/repo 名称,发现其中的 YAML/properties 配置文件及其配对的中文字段说明;在 `workspace/{repo}/` 目录下按同步日期(格式为 `YYYY-MM-DD`)创建时间戳子目录;写入 `.openclaw-config-state.json` 状态文件。每次用户提问前,先比对远程仓库当前 ref(如 `main` 或 `master`)的最新提交 SHA 与本地状态文件中记录的 SHA:

下载

要配置聊天客户端,你需要执行以下步骤:

  1. 添加必要的using指令:
using Microsoft.Extensions.AI;
using OpenAI.Chat;
using System.ClientModel;
  1. 创建IChatClient实例:
IChatClient chatClient = new ChatClient(
    new ApiKeyCredential("YourGitHubApiKey"),
    new OpenAIClientOptions {
        Endpoint = new Uri("https://models.github.ai/inference")
    }
).AsChatClient();
  • ApiKeyCredential: 用于提供GitHub模型的API密钥,你需要将"YourGitHubApiKey"替换为你自己的API密钥。
  • OpenAIClientOptions: 用于配置OpenAI客户端的选项,例如终结点。对于GitHub模型,你需要将终结点设置为"https://models.github.ai/inference"。
  • AsChatClient(): 将提供程序特定的聊天客户端转换为标准的IChatClient接口。

通过以上步骤,你已经成功配置了一个聊天客户端,可以用于与GitHub模型进行通信。

发送消息并接收响应

配置好聊天客户端后,就可以开始发送消息并接收响应了。 以下代码展示了如何向GitHub模型发送一条简单的消息,并获取模型的回复:

List<ChatMessage> chatHistory = new List<ChatMessage>();

while (true)
{
    Console.Write("You: ");
    string userInput = Console.ReadLine();

    if (string.IsNullOrEmpty(userInput))
    {
        continue;
    }

    if (userInput.Equals("exit", StringComparison.OrdinalIgnoreCase))
    {
        break;
    }

    chatHistory.Add(new ChatMessage(ChatRole.User, userInput));

    ChatCompletionsOptions chatCompletionsOptions = new ChatCompletionsOptions()
    {
        Messages = chatHistory,
        MaxTokens = 1000,
        Temperature = 0.7f,
        TopP = 0.95f,
        NucleusSamplingFactor = 0,
        FrequencyPenalty = 0,
        PresencePenalty = 0,
        StopSequences = { "
user:" , "user:" }
    };

    var response = await chatClient.GetChatCompletionsAsync(chatCompletionsOptions);

    var botMessage = response.Value.Choices[0].Message;

    chatHistory.Add(botMessage);

    Console.WriteLine($"Assistant: {botMessage.Content}");

    Console.WriteLine();
}

这段代码实现了以下功能:

  1. 创建聊天历史记录: 使用List<chatmessage></chatmessage>存储聊天历史,以便模型能够理解上下文。
  2. 循环读取用户输入: 使用while (true)循环持续读取用户输入,直到用户输入“exit”退出。
  3. 处理空输入: 如果用户只按了回车键而没有输入任何内容,则跳过本次循环。
  4. 添加用户消息到聊天历史: 将用户输入的消息添加到聊天历史中,并指定角色为ChatRole.User。
  5. 配置聊天完成选项: 创建ChatCompletionsOptions对象,用于配置聊天完成的各种选项,例如最大Token数、温度、Top P等。
  6. 获取模型响应: 调用chatClient.GetChatCompletionsAsync()方法,向模型发送请求并获取响应。
  7. 提取模型消息: 从响应中提取模型的消息内容。
  8. 添加模型消息到聊天历史: 将模型的消息添加到聊天历史中,并指定角色为ChatRole.Assistant。
  9. 显示模型响应: 将模型的消息内容显示在控制台上。

通过以上代码,你已经实现了一个基本的聊天功能。用户可以输入消息,模型会根据输入生成回复,并将回复显示在控制台上。聊天历史记录会被保存,以便模型在后续的对话中能够理解上下文。

GitHub模型定价

GitHub模型定价模式

GitHub模型提供多种定价模式,以满足不同用户的需求。 你可以选择免费层级,或者根据你的使用量付费。

  • 免费层级: 提供有限的访问权限,适合于探索和测试AI模型。
  • 付费层级: 根据你的API使用量计费,提供更高的限制和更快的响应速度。

你可以前往GitHub模型市场查看各种模型的具体定价信息。请注意,不同的模型可能有不同的定价策略,因此在选择模型时,请务必仔细阅读定价说明。

使用 GitHub 模型的优势与劣势

? Pros

易于集成: 与 .NET 应用程序的集成非常简单,只需几行代码即可完成。

强大的功能: 能够进行实时响应流处理和聊天历史记录管理。

灵活性: 可以轻松切换到不同的 AI 模型提供商。

免费试用: 提供了免费层级,方便用户探索和测试。

简化开发: 利用 Microsoft.Extensions.AI 库简化了开发流程。

? Cons

依赖 GitHub 平台: 应用程序的运行依赖于 GitHub 模型的可用性和性能。

潜在的定价问题: 付费层级的定价可能因模型而异,需要仔细评估。

模型选择限制: GitHub 模型市场提供的模型可能无法满足所有用例的需求。

需要 API 密钥管理:需要创建和妥善保管 API 密钥,且使用免费层级会有速率限制

GitHub模型的核心功能

GitHub 模型平台的核心功能

GitHub 模型平台提供一系列核心功能,旨在简化 AI 模型的集成和使用。 这些功能包括:

  • 模型切换: 允许用户在不同的 AI 模型之间轻松切换,以找到最适合其特定用例的模型。
  • 单一 API 密钥: 使用单一 API 密钥即可访问所有模型,简化了管理和计费流程。
  • 快速个人设置: 提供了快速设置选项,以便用户可以轻松地在项目中安装模型。
  • 免费试用: 允许用户在达到速率限制之前免费试用各种模型。

通过这些功能,GitHub 模型平台旨在降低 AI 模型的采用门槛,并使更多的开发者能够利用 AI 技术。

常见问题解答

如何获取GitHub模型的API密钥?

你需要前往GitHub模型市场,选择一个模型并创建一个个人访问令牌。请务必妥善保管你的API密钥,不要将其泄露给他人。

GitHub模型是否支持其他编程语言?

GitHub模型主要面向.NET开发者,但也提供了其他编程语言的SDK。你可以前往GitHub模型市场查看各种模型的SDK支持情况。

如何处理GitHub模型的速率限制?

你可以选择付费层级以获得更高的限制,或者优化你的API使用方式,例如减少请求频率、缓存响应等。

相关问题

除了GitHub模型,还有哪些其他的AI模型提供商?

除了GitHub模型,还有许多其他的AI模型提供商,例如OpenAI、Azure AI Inference等。每个提供商都有其独特的优势和特点,你可以根据你的项目需求选择最合适的提供商。 OpenAI: 提供了各种强大的语言模型,例如GPT-3、GPT-4等。OpenAI的模型在自然语言处理领域表现出色,适合于各种文本生成、对话、翻译等任务。 Azure AI Inference: 提供了各种AI服务,包括图像识别、语音识别、文本分析等。Azure AI Inference与Azure云平台集成紧密,适合于构建云原生AI应用。 Hugging Face: 提供了大量的预训练模型,涵盖各种AI任务。Hugging Face的模型社区非常活跃,你可以从中找到各种高质量的模型。 选择合适的AI模型提供商需要综合考虑多个因素,包括模型性能、定价、易用性、可扩展性等。建议你对各种提供商进行评估,选择最符合你项目需求的方案。 以下是一个比较表格,展示了不同 AI 模型提供商的一些关键特性: 特性 OpenAI Azure AI Inference Hugging Face GitHub Models 模型类型 强大的语言模型(GPT系列) 多种 AI 服务,包括视觉、语言和语音 大量预训练模型,涵盖各种 AI 任务 多种 AI 模型,涵盖各种 AI 任务 定价 基于 Token 计费 基于使用量计费 免费和付费模型 免费层级和付费层级 易用性 提供了易于使用的 API 与 Azure 云平台集成紧密,方便云原生应用开发 提供了 Transformers 库,方便模型的使用 提供了Microsoft.Extensions.AI库,方便.NET开发者使用 可扩展性 具有良好的可扩展性,适合于构建大型应用 具有良好的可扩展性,与 Azure 云平台集成紧密 模型部署和扩展可能需要额外的配置 依赖 GitHub 平台的可用性和性能,需要考虑其可扩展性 适用场景 文本生成、对话、翻译等自然语言处理任务 图像识别、语音识别、文本分析等各种 AI 任务 各种 AI 任务,包括自然语言处理、图像识别、语音识别等 .NET应用,各种 AI 任务,包括自然语言处理、图像识别等,各种类型的应用

热门AI工具

更多
小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

相关专题

更多
Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

60

2026.10.28

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

20

2026.10.28

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

40

2026.10.28

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

140

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

80

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

80

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

40

2026.10.22

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

80

2026.10.22

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

40

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
vscode手册
vscode手册

共0课时 | 0人学习

Git 教程
Git 教程

共21课时 | 8.1万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn