Skip to content

Latest commit

 

History

History
136 lines (109 loc) · 4.2 KB

README_zh.md

File metadata and controls

136 lines (109 loc) · 4.2 KB

GraphQL-AI-Mashup

GraphQL-AI-Mashup 是一个集成各种类型 AI 接口的应用程序,通过 GraphQL 的方式统一访问,支持数据流(stream)等功能。
新增支持联网模式,采用 DuckDuckGo 搜索引擎联网查询

特性

  • 支持多种 AI 服务,如 OpenAI、Anthropic Claude、GeminiPro 等
  • 使用 GraphQL 统一访问 API,提供统一的调用参数
  • 支持数据流(stream)功能
  • 支持联网(searchWeb)查询
  • 使用 DataLoader 优化 API 请求,提高性能
  • 可一键部署到 Vercel

AI支持列表

AI 默认模型 Model 文档 是暂未支持联网
OpenAI gpt-3.5-turbo Openai Models 暂未支持
Cloudflare Workers AI @cf/meta/llama-3-8b-instruct Workers AI Models 暂未支持
Azure OpenAI gpt-3.5-turbo Azure Openai Models
GeminiPro gemini-1.0-pro-latest GeminiPro Models 暂未
Claude claude-3-haiku-20240307 Claude Models 普通模式: 是
Stream: 暂未
Moonshot moonshot-v1-8k Moonshot Models 普通模式: 是
Stream: 暂未
Groq mixtral-8x7b-32768 Groq Models 普通模式: 是
Stream: 暂未
零一万物 yi-34b-chat-0205 零一万物 Models 暂未支持
百度 Ernie ernie-3.5-4k-0205 获取API KEY & SECRET KEY
Ernie Models
暂未支持
阿里千问 qwen-turbo 获取API KEY
开通服务
千问 Models
智谱 AI glm-3-turbo API & Token
智谱 Models
暂未支持

快速开始

安装依赖

npm install

设置API KEY环境变量

cp .env.example .env

修改 .env中的各个API KEY

运行开发环境

npm run start

本地访问

http://localhost:4000/

Docker

本项目也可通过 docker 部署,项目已经自带 Dockerfile 。

设置API KEY环境变量

cp .env.example .env

修改 .env中的各个API KEY

Docker Image Build

docker build -t graphql-ai-mashup .    

Docker Run

docker run -dp 4000:4000 graphql-ai-mashup

本地访问

http://localhost:4000/

部署

Vercel

由于 Vercel 对于 edge runtime 的限制,请参考项目 AI-Mashup-Web 进行部署

Cloudflare

本项目也可部署至 Cloudflare worker。请根据以下步骤实施。

Deploy to Cloudflare Workers

安装并登录 wrangler

npm install -g wrangler

wrangler login

克隆当前仓库

git clone git@github.com:VeryInt/GraphQL-AI-Mashup.git

Build 并部署至您的 Cloudflare Worker

cd GraphQL-AI-Mashup

wrangler build

wrangler deploy

使用示例

以下是一个使用 GraphQL 访问 GeminiPro 接口的示例:

Query

query MyQuery($params: ChatArgs) {
  chat(params: $params) {
    GeminiPro{text}
  }
}

Variables

{
 "params": {
  "messages": [{
    "role": "user",
    "content": "请讲一个800字左右的童话故事"
  }]
 }
}

Stream Query

query MyQuery($params: ChatArgs) {
  chat(params: $params) {
    GeminiProStream @stream
  }
}

ScreenShots

SCR-20240324-mjxc