Skip to content

Latest commit

 

History

History
222 lines (165 loc) · 6.68 KB

README_CN.md

File metadata and controls

222 lines (165 loc) · 6.68 KB

Gradio Chatbot

一个可以将 Huggingface Spaces魔搭创空间 及 Gradio ChatBot 自动转成免费 API 的 Npm 包。理论上支持所有带 chatbot 的空间,目前完美支持了 GPT4Free,ChatGPT,Llama 2,Vicuna,MPT-30B,Falcon,ChatGLM,通义千问 等众多模型空间。

NPM Apache 2.0 License

由于目前 Huggingface 上的 ChatGPT 空间压力过大,导致调用延时明显变长。如果你有自己的 ChatGPT 账号,推荐使用 gpt-web

快速上手

NPM

  • 体验 ChatGPT
npx gradio-chatbot
# or
npm install -g gradio-chatbot
chatbot
  • 体验 Llama2
chatbot 2
# 或者
chatbot https://huggingface.co/spaces/huggingface-projects/llama-2-13b-chat

更多用法请输入 chatbot help

Docker

docker build . -t gradio-server
docker run --rm -it -p 8000:8000 gradio-server

asciicast

安装

你可以使用 npm 或者 yarn 来安装 gradio-chatbot,Node 版本需要 >= 18。

npm install gradio-chatbot
# or
yarn add gradio-chatbot

使用

目前支持三种模式。

CLI模式

参考 快速上手

API服务

为了方便使用,提供了两种形式的接口。

curl http://127.0.0.1:8000/api/conversation \
  -H "Content-Type: application/json" \
  -d '{
     "model": "gpt-3.5-turbo",
     "messages": [{"role": "user", "content": "hello"}],
   }'

API函数

import { GradioChatBot } from 'gradio-chatbot'

const bot = new GradioChatBot();

async function start() {
  const message = await bot.chat('hello', {
    onMessage(partialMsg) {
      console.log('stream output:', partialMsg);
    }
  });
  console.log('message', message);
}

start();

你也可以把你想要转换的空间地址输入进去,如 https://huggingface.co/spaces/h2oai/h2ogpt-chatbot

import { GradioChatBot } from 'gradio-chatbot'

const bot = new GradioChatBot({
  url: 'https://huggingface.co/spaces/h2oai/h2ogpt-chatbot',
  fnIndex: 35,
}); // 调用自定义 ChatBot 模型

async function start() {
  console.log(await bot.chat('Hello'));
}

start();

除此之外,Npm 包里面已经内置了 10 个流行的 Huggingface Spaces魔搭创空间,你可以直接传入模型序号使用

import { GradioChatBot } from 'gradio-chatbot';

const bot = new GradioChatBot('1'); // 使用内置1号模型
async function start() {
  console.log(await bot.chat('Tell me about ravens.'));
}

start();

更多示例请前往目录: Examples

注意:Huggingface 上的部分模型可能会收集你输入的信息,如果你对数据安全有要求,建议不要使用,使用自己搭建的模型是一个更好的选择。

使用 OpenAI 调用

Python

import openai
openai.api_key = "dummy"
openai.api_base = "http://127.0.0.1:8080/v1"

# create a chat completion
chat_completion = openai.ChatCompletion.create(model="10", messages=[{"role": "user", "content": "Hello"}])

# print the completion
print(chat_completion.choices[0].message.content)

更多使用说明参考 https://github.com/openai/openai-python

Node.js

import OpenAI from 'openai';

const openai = new OpenAI({
  baseURL: 'http://127.0.0.1:8080/v1'
});

async function main() {
  const stream = await openai.chat.completions.create({
    model: '10',
    messages: [{ role: 'user', content: 'Hello' }],
    stream: true,
  });
  for await (const part of stream) {
    process.stdout.write(part.choices[0]?.delta?.content || '');
  }
}

main();

更多使用说明参考 https://github.com/openai/openai-node

API文档

参见 API 文档

模型列表

调用序号 类型 说明 模型
0 Huggingface Spaces ChatGPT https://huggingface.co/spaces/yizhangliu/chatGPT
1 Huggingface Spaces GPT Free https://huggingface.co/spaces/justest/gpt4free
2 Huggingface Spaces Llama2 Spaces https://huggingface.co/spaces/ysharma/Explore_llamav2_with_TGI
3 Huggingface Spaces MosaicML MPT-30B-Chat https://huggingface.co/spaces/mosaicml/mpt-30b-chat
4 Huggingface Spaces Falcon Chat https://huggingface.co/spaces/HuggingFaceH4/falcon-chat
5 Huggingface Spaces Star Chat https://huggingface.co/spaces/HuggingFaceH4/starchat-playground
6 Huggingface Spaces ChatGLM2 https://huggingface.co/spaces/mikeee/chatglm2-6b-4bit
7 Huggingface Spaces ChatGLM https://huggingface.co/spaces/multimodalart/ChatGLM-6B
8 Huggingface Spaces Vicuna (此模型国内不可访问,请配置代理后使用) https://chat.lmsys.org/
9 Huggingface Spaces 通义千问 7B https://huggingface.co/spaces/mikeee/qwen-7b-chat
10 魔搭 通义千问 https://modelscope.cn/studios/qwen/Qwen-7B-Chat-Demo/summary
11 魔搭 ChatGLM2 https://modelscope.cn/studios/AI-ModelScope/ChatGLM6B-unofficial/summary
12 魔搭 姜子牙V1.1 https://modelscope.cn/studios/Fengshenbang/Ziya_LLaMA_13B_v1_online/summary
13 魔搭 达魔院出品的角色对话机器人 https://modelscope.cn/studios/damo/role_play_chat/summary

国内访问推荐使用魔搭社区提供的模型,访问速度更快更稳定。 更多好用模型欢迎在 issue 区提交贡献。

兼容性

  • 此 Npm 包需要 node >= 18.

更新日志

查看 CHANGELOG.md

鸣谢

License

Apache 2.0 © LICENSE.