ChatGPT.Net 项目介绍
ChatGPT.Net 是一个基于 C# 的库,专门用于与 ChatGPT 进行交互,该库利用了 OpenAI 提供的官方 API。这使得开发人员能够轻松地在其应用程序中集成 ChatGPT,只需发送查询即可实时收到响应。
功能特性
- 使用简单。
- 利用 OpenAI 提供的官方 API。
- 支持免费账户和专业账户。
- 支持多账户、多对话操作。
- 支持响应流传输,允许模型生成过程中逐步获取响应。
快速入门
想要安装 ChatGPT.Net,可以在包管理控制台中运行以下命令:
Install-Package ChatGPT.Net
或者,使用 .NET Core 命令行工具安装:
dotnet add package ChatGPT.Net
使用方法
ChatGPT 官方 API
下面是使用 ChatGPT.Net 的简单示例代码:
using ChatGPT.Net;
// 使用官方 API
var bot = new ChatGpt("<API_KEY>");
// 获取响应
var response = await bot.Ask("What is the weather like today?");
Console.WriteLine(response);
// 流式获取响应
await bot.AskStream(response => {
Console.WriteLine(response);
}, "What is the weather like today?");
此代码展示了如何发起一次查询并接收响应,通过流式方法还能在生成过程中持续接收响应。
使用其他模型
如果需要使用不同的模型,可以在构造函数中传递模型名称:
var bot = new ChatGpt("<API_KEY>", new ChatGptOptions
{
Model = "text-davinci-002-render-paid"
});
配置选项
ChatGPT 官方 API
可以通过 ChatGptOptions
来配置不同参数:
ChatGptOptions
{
string BaseUrl; // 默认地址: https://api.openai.com
string Model; // 默认模型: gpt-3.5-turbo
double Temperature; // 默认温度: 0.9
double TopP; // 默认Top P: 1.0
long MaxTokens; // 默认最大Tokens: 64
string[]? Stop; // 默认停止标识: null
double PresencePenalty; // 默认存在惩罚: 0.0
double FrequencyPenalty; // 默认频率惩罚: 0.0
}
示例
ChatGPT 控制台应用
以下是一段使用 ChatGPT.Net 与 ChatGPT 进行交互的简单控制台应用程序的代码:
using ChatGPT.Net;
// 使用官方 API
var bot = new ChatGpt("<API_KEY>");
var prompt = string.Empty;
while (true)
{
Console.Write("You: ");
prompt = Console.ReadLine();
if (prompt is null) break;
if (string.IsNullOrWhiteSpace(prompt)) break;
if (prompt == "exit") break;
Console.Write("ChatGPT: ");
await bot.AskStream(Console.Write, prompt, "default");
Console.WriteLine();
}
使用 ChatGPT 官方 API 免费获取
可以通过设置基本地址为免费的反向代理服务器来免费使用 ChatGPT 官方 API,如 https://api.pawan.krd
。
var bot = new ChatGpt("<API_KEY>", new ChatGptOptions
{
BaseUrl = "https://api.pawan.krd"
});
该项目在 MIT 许可下发布,许可详情请查看相应的 LICENSE 文件。