返回市场
脑中枢服务器

脑中枢服务器

作者:rob199716 星标更新:2025-04-07

项目介绍

CereBro

GitHub release NuGet stable version GitHub license

CereBro 是一个针对 .Net 的模型无关的人工智能代理包装器。现在通过 🔥 模型上下文协议 🔥,基于官方的 C# SDK,你可以编写可以在不同人工智能模型中使用的工具,而无需更改代码。

模型

以下是 CereBro 支持和计划支持的模型列表。

已支持:

计划支持:

安装

你可以使用以下命令从 NuGet 安装该包:

dotnet add package Rob1997.CereBro

dotnet add package Rob1997.CereBro.Open-AI

使用

第一步:创建 servers.json 文件

此文件将包含你想要使用的 MCP 服务器的配置。下面是一个 servers.json 文件的例子。

[
  {
    "Id": "everything-server",
    "Name": "Everything",
    "TransportType": "stdio",
    "TransportOptions": {
      "command": "npx",
      "arguments": "-y @modelcontextprotocol/server-everything"
    }
  }
]

你可以在这里查看更多的服务器 这里

第二步:将你的 OpenAI API 密钥添加到环境变量中

export OPEN_AI_API_KEY="your-api-key"
$env:OPEN_AI_API_KEY="your-api-key"

如果你想永久保存它,可以将其添加到你的 .bashrc.bash_profile 文件中,或者在 Linux 中使用以下命令,在 PowerShell 中使用。

[Environment]::SetEnvironmentVariable("OPEN_AI_API_KEY", "your-api-key", "User")

第三步:在你的 Program.cs(入口点)中添加以下代码

public static async Task Main(string[] args)
{
    var builder = Host.CreateApplicationBuilder(args);
    
    builder.Services.UseOpenAI(Environment.GetEnvironmentVariable("OPEN_AI_API_KEY"), "gpt-4o-mini");
            
    IHost cereBro = builder.BuildCereBro(new CereBroConfig{ ServersFilePath = "./servers.json" });

    await cereBro.RunAsync();
}

CereBro 使用控制台作为聊天分发器。你可以通过实现接口 IChatDispatcher 来创建自己的分发器,并使用 builder.BuildCereBro<IChatDispatcher>(config) 构建 CereBro 的主机。

第四步:运行你的应用程序

dotnet run

添加新的模型

目前,CereBro 只支持 OpenAI 的模型。要添加新模型,你需要实现 Microsoft.Extensions.AI.IChatClient,除非它已经存在,微软已经为一些模型实现了这个接口,比如 OpenAIOllama

一旦你完成了这些步骤,你可以创建一个实现 Microsoft.Extensions.AI.FunctionInvokingChatClient 的占位符类型,类似于 这个

最后,你可以使用扩展方法 UseChatClient<T>(this IServiceCollection services, IChatClient chatClient) where T : FunctionInvokingChatClient 将你的模型添加到服务集合中。

⚠️ 注意 ⚠️

目前 CereBro 不支持同时使用多个模型,因此如果你想使用其他模型,需要从 Program.cs 文件中移除 UseOpenAI 方法。

CereBro.Unity

CereBro.Unity 是一个 Unity 包,允许你在 Unity 中使用 CereBro。README

贡献

如果你希望为该项目做出贡献,可以 fork 仓库并创建一个拉取请求。如果你发现任何错误或有功能需求,也可以创建一个 issue。