Token导航 LogoToken导航TokenDH.com
Carrot AI logo
AI代理stdio官方级别未说明来源级核验

Carrot AI

MCP Server

CarrotAI是一款支持多服务器流式传输和多语言的AI代理应用,提供实时聊天、深度思考模式和文件上传等功能,适用于多平台和多语言环境。

工具数

0

提示词数

0

GitHub Stars

83

资源数

0
PythonAI代理工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Xingsandesu

提供方

Xingsandesu

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run backend/scripts/startup.py --user --email <email> --username <name> --password <password>

详细介绍

胡萝卜AI

AI Agent with Multi-Server Streaming & Multi-Language Support

Flutter Frontend + FastAPI Backend

🚀 Experience online now | SaaS Client download

🇨🇳 阅读中文文档

______________________________________________________________________

🥕 引言

CarrotAI是一款尖端的AI代理应用程序,通过服务器发送事件(SSE)和内置模型控制协议(MCP)集成的可流式HTTP提供实时流式聊天。它支持与多个SSE MCP服务器的并发连接,并提供英语、中文和日语的用户界面。

🚀 特性

  • AI 代理:由SSE和MCP适配器支持的实时聊天,提供无缝的对话体验。
  • 多服务器支持:同时连接并调用多个SSE MCP服务器以聚合智能响应。
  • 多语言:英语完全本地化,中文 (中文),以及日本語 (日语)。
  • 深度思维模式:复杂或多步骤查询的高级分析。
  • 认证:使用JWT令牌保护登录/注册流程。
  • 响应式用户界面:适用于移动、桌面和网络平台的自适应设计。
  • 主题定制:亮/暗模式、自定义种子颜色和动态材质3主题化 dynamic_color.
  • 文件上传:在对话中附加和解析文件,以获得更丰富的上下文。

🤖 支持的模型API

  • 深度求索:具有强大推理能力的高级语言模型

🛠️ 技术栈

前端

  • 框架:颤振
  • 状态管理:提供商
  • 用户界面:材料设计3
  • 本地化:扑动发电机-110n
  • 支持主题:动态_颜色

后端

  • 框架:FastAPI
  • 流媒体:服务器发送事件(SSE)
  • 人工智能集成:DeepSeek LLM、MCP(模型控制协议)
  • 数据库:PostgreSQL+SQLAlchemy
  • 认证:JSON Web令牌
  • 迁移:Alembic
  • 部署:乌维科恩和古尼科恩

📋 先决条件

  • Flutter SDK ^3.7.2
  • Python>=3.12
  • PostgreSQL

⚡ 快速开始

请确保已安装。 紫外线
# Clone repository
git clone https://github.com/Xingsandesu/CarrotAI.git && cd CarrotAI

# Deal with environment variables
mv backend/.env.example backend/.env && mv .env.example .env

# Edit environment variables
vim .env
vim backend/.env

# Temporarily start PostgreSQL
docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d postgres

# Backend setup
uv run backend/scripts/startup.py --user --email  --username  --password 

# Stop PostgreSQL
docker-compose -f docker-compose.yml -f docker-compose.override.yml down

# Deal with Config
vim config/

# Run Backend
docker compose up -d

🔧 安装

后端设置

  1. 导航到后端目录:
   cd backend
  1. 创建并激活虚拟环境:
   uv sync
  1. 复制示例环境文件:
   cp .env.example .env
  1. 应用数据库迁移:
   uv run scripts/init_db.py && uv run scripts/init_config.py
  1. 运行服务器:
   python main.py       # Development mode
   python main.py prod  # Production mode with Gunicorn

前端设置

  1. 返回到项目根目录:
   cd ..
  1. 获取Flutter依赖项:
   flutter pub get
  1. 生成本地化文件:
   flutter gen-l10n
  1. 启动应用程序:
   flutter run
  1. 为web构建:
   flutter build web --wasm

🌐 配置

  • 前端:编辑 lib/core/config/app_config.dart 用于API端点和主题化默认值。
  • 后端:配置 .envbackend/app/core/config.py 用于数据库和MCP服务器。

后端配置文件

后端使用位于以下位置的JSON文件 backend/config/ 定义模型、MCP服务器和自定义适配器。以下是默认文件夹结构:

backend/config/
├── model_configs.json       # LLM model definitions and metadata
├── mcp_servers.json         # SSE MCP server endpoints and env settings
└── app/                     # Custom adapter definitions
    └── duckduckgo-search.json

model_configs.json

定义CarrotAI的可用LLM模型。每个条目包括:

  • id (string):唯一的模型标识符。
  • icon (string):用于显示的图标名称。
  • translations (对象):本地化名称和描述(zh, en, ja).
  • exclusiveRules (对象):功能的切换和排除规则。

例子:

[
  {
    "id": "deepseek",
    "icon": "smart_toy_outlined",
    "translations": {
      "zh": { "name": "DeepSeek", "description": "专注于深度思考和复杂推理的满血模型" },
      "en": { "name": "DeepSeek", "description": "Powerful Chinese large model focused on deep thinking and complex reasoning" },
      "ja": { "name": "DeepSeek", "description": "深い思考と複雑な推論に特化した強力な中国語大規模モデル" }
    },
    "exclusiveRules": {
      "deepThinking": { "enabled": true, "excludes": ["mcpServices"] },
      "mcpServices": { "enabled": true, "excludes": ["deepThinking"] }
    }
  }
]

mcpservers.json

指定SSE模型控制协议(MCP)端点。格式:

  • 关键字:服务名称。
  • url (字符串):SSE端点URL。
  • env (object):适配器的环境变量。

例子:

{
  "serviceA": {
    "url": "http://localhost:10000/sse",
    "env": {
      "API_KEY": "your_api_key"
    }
  }
}

自定义适配器(app/*.json)

将自定义MCP适配器放入 backend/config/app/每个文件定义:

  • id (string):适配器标识符。
  • icon (字符串):表情符号或图标名称。
  • mcpServer (object):结构与中的条目相同 mcp_servers.json.
  • translations (对象):本地化UI元数据。

示例(duckduckgo-search.json):

{
  "id": "duckduckgo-search",
  "icon": "🔍",
  "mcpServer": {
    "url": "http://localhost:10000/duckduckgo-search",
    "env": {}
  },
  "transportType": "sse",
  "translations": {
    "en": { "name": "DuckDuckGo Search", "type": "Search Tool", "description": "Use DuckDuckGo search engine for secure and private web searches" },
    "zh": { "name": "DuckDuckGo搜索", "type": "搜索工具", "description": "使用DuckDuckGo搜索引擎进行安全、私密的网络搜索" },
    "ja": { "name": "DuckDuckGo検索", "type": "検索ツール", "description": "DuckDuckGo検索エンジンを使用して安全でプライベートなウェブ検索を行います" }
  }
}

用法

  1. 初始化默认配置:
   uv run scripts/init_config.py
  1. 修改JSON文件 backend/config/ 添加或更新模型和端点。
  2. 重新启动后端服务器以应用更改。

🔧 环境变量

后端(.env)

关键字描述默认值
DATABASE_URLPostgreSQL连接URL*必需的*
BACKEND_CORS_ORIGINS允许的CORS源(逗号分隔)\[\]
MCP_SERVERSSSE MCP服务器端点的JSON列表*必需的*
SECRET_KEYJWT密钥*必需的*

前端(lib/core/config/app_config.dart)

static String get baseUrl => "http://127.0.0.1:8000";

💡 用法

  1. 启动后端和前端,如快速入门所示。
  2. 在浏览器或移动模拟器中打开应用程序。
  3. 注册或登录以获取JWT令牌。
  4. 使用深度思维模式或默认聊天模式与AI代理进行交互。
  5. 在MCP服务器之间切换或在“设置”下添加新端点。

🔗 api参考

访问交互式Swagger UI:

http://127.0.0.1:8000/docs

🛣️ 路线图

  • \[x\] SSE多服务器支持
  • \[x\] Multi-language (EN, 中文,日本语)
  • \[x\] Docker编写设置
  • \[x\] 流式HTTP支持
  • \[\]本地Stdio多服务器支持
  • \[\]本地OCR支持
  • \[\]支持更多格式的上传界面
  • \[\]前端自定义提示
  • \[\]更多型号支持
  • \[\]更多语言支持

🛡️ 安全

  • 认证:所有后端端点均采用JWT保护;安全地存储在加密存储器中的令牌。
  • 数据保护:在生产中使用HTTPS;通过配置允许的CORS源 BACKEND_CORS_ORIGINS 在……里面 .env.
  • 秘密管理:定义 SECRET_KEY 在……里面 .env;确保没有秘密被提交给源头控制。

🔍 监控和记录

  • 服务器日志:已配置 gunicorn.conf.py;访问和错误日志 logs/.
  • 应用程序日志:使用Loguru进行结构化日志记录;前端禁用 debugPrint 在释放模式下。

🚀 性能与优化

  • 缓存:前端缓存静态资产;后端为PostgreSQL使用异步连接池。
  • 捆绑尺寸:使用构建的Web工件 --wasm 以优化交付。

🗂️ 更新日志

所有显著变化均记录在 更改日志.md.

📱 截图

🤝 贡献

欢迎投稿!请打开一个包含您的建议的Pull Request。

📄 许可证

该项目根据CarrotAI开源许可证获得许可。请参阅 许可证 文件以获取详细信息。

目录标签

目录标签

PythonAI代理工作流自动化Dart本地部署实时聊天多语言支持多服务器连接文件上传

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP