☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

在人工智能(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支持,可以极大地提高开发效率。
- 打开Visual Studio,选择“创建新项目”。
- 在项目模板中,选择“控制台应用程序”。
- 输入项目名称(例如“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上托管的模型。
操作步骤:
- 在Visual Studio中,右键单击项目名称,选择“管理NuGet程序包”。
- 在“程序包管理器”中,选择“浏览”选项卡。
- 在搜索框中,输入
Microsoft.Extensions.AI.OpenAI。 - 在搜索结果中,找到
Microsoft.Extensions.AI.OpenAI包,然后点击“安装”。 - 接受许可协议,等待安装完成。
请注意,安装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库中定义的核心接口,它提供了一种标准的方式来与各种聊天服务进行交互。
要配置聊天客户端,你需要执行以下步骤:
- 添加必要的using指令:
using Microsoft.Extensions.AI; using OpenAI.Chat; using System.ClientModel;
- 创建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模型发送一条简单的消息,并获取模型的回复:
ListchatHistory = new List (); 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(); }
这段代码实现了以下功能:
-
创建聊天历史记录: 使用
List存储聊天历史,以便模型能够理解上下文。 -
循环读取用户输入: 使用
while (true)循环持续读取用户输入,直到用户输入“exit”退出。 - 处理空输入: 如果用户只按了回车键而没有输入任何内容,则跳过本次循环。
-
添加用户消息到聊天历史: 将用户输入的消息添加到聊天历史中,并指定角色为
ChatRole.User。 -
配置聊天完成选项: 创建
ChatCompletionsOptions对象,用于配置聊天完成的各种选项,例如最大Token数、温度、Top P等。 -
获取模型响应: 调用
chatClient.GetChatCompletionsAsync()方法,向模型发送请求并获取响应。 - 提取模型消息: 从响应中提取模型的消息内容。
-
添加模型消息到聊天历史: 将模型的消息添加到聊天历史中,并指定角色为
ChatRole.Assistant。 - 显示模型响应: 将模型的消息内容显示在控制台上。
通过以上代码,你已经实现了一个基本的聊天功能。用户可以输入消息,模型会根据输入生成回复,并将回复显示在控制台上。聊天历史记录会被保存,以便模型在后续的对话中能够理解上下文。
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 任务,包括自然语言处理、图像识别等,各种类型的应用










