wqj-chatgpt-tool-hub


Namewqj-chatgpt-tool-hub JSON
Version 0.4.8 PyPI version JSON
download
home_pagehttps://github.com/wqjuser/wqj-chatgpt-tool-hub
SummaryAn open-source chatgpt tool ecosystem where you can combine tools with chatgpt and use natural language to do anything.
upload_time2024-01-03 10:09:44
maintainer
docs_urlNone
authorwqjuser
requires_python
licenseMIT
keywords
VCS
bugtrack_url
requirements setuptools pydantic pyopenssl pyyaml selenium webdriver_manager lxml beautifulsoup4 tenacity openai tiktoken arxiv wikipedia wolframalpha aiohttp requests google-api-python-client rich python-dotenv pyperclip prompt_toolkit SQLAlchemy
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h2 align='center'> chatgpt-tool-hub / ChatGPT工具引擎 </h2>
<p align='center'>给ChatGPT装上手和脚,拿起工具提高你的生产力</p>

<p align="center">
  <a style="text-decoration:none" href="https://github.com/goldfishh" target="_blank">
    <img src="https://img.shields.io/pypi/pyversions/chatgpt-tool-hub" alt="Language" />
  </a>
  <a style="text-decoration:none" href="https://github.com/goldfishh" target="_blank">
    <img src="https://img.shields.io/github/license/goldfishh/chatgpt-tool-hub" alt="license " />
  </a>
  <a style="text-decoration:none" href="https://github.com/goldfishh" target="_blank">
    <img src="https://img.shields.io/github/commit-activity/w/goldfishh/chatgpt-tool-hub" alt="commit-activity-week " />
  </a>
  <a style="text-decoration:none" href="https://pypi.org/project/chatgpt-tool-hub/" target="_blank">
    <img src="https://img.shields.io/pypi/dw/chatgpt-tool-hub" alt="pypi-download-dw" />
  </a>
</p>

---

简体中文 | [English](./docs/README_en.md)

> 大语言模型涌现能力让人惊艳,ChatGPT出现给NLP技术带来革命,除此之外还让我意识到一种新的人机交互的可能性

<div>
    <h2 style="display:inline; margin:0; padding:0;">🌱 5.4 LLM-OS demo在线演示</h2>
    <a style="display:inline-block; align:center" src="https://colab.research.google.com/assets/colab-badge.svg" href="https://colab.research.google.com/drive/11nYPGFCYiaZ73H8nTHSN8ifbo0u3W_8p">
        <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="demo in Colab"/>
    </a>
</div>

<br/>

<div align="center">
    <a style="text-decoration:none" href="https://www.bilibili.com/video/BV1eL411h7Nk/" target="_blank">
        <img src="https://i.328888.xyz/2023/04/29/iJQNi3.jpeg" width = "659" height = "410" alt="LLM-OS" align=center />
    </a>
</div>

<br/>

#### [更新日志](./docs/update_log.md) | [Q&A](./docs/q_and_a.md)

## 简介

---

这是一个能让ChatGPT使用多个神奇工具的执行引擎,你能用自然语言命令ChatGPT使用联网、搜索、数学运算、控制电脑、执行代码等工具,扩大ChatGPT使用范围提高你的生产力。

本项目因关注到ChatGPT开放插件而诞生,该插件定制性较差,且生态封闭,这不是一个好的趋势,我相信未来国内LLM一定百花齐放,同时我从ChatGPT看到了使用工具的可行性,和潜在价值,因此我希望做一个能兼容未来LLM的工具生态。

如果把ChatGPT的插件比作Apple的App Store,那么这个项目最终形态就是Android OS的开放式生态,简称LLM-OS。在这个生态里所有工具组成一个操作系统,用户仅需输入或传述文字即可做任何事情。  

鉴于目前状况,本项目的定位是:一个开源的ChatGPT工具生态系统,您可以将工具与ChatGPT结合使用,使用自然语言来完成任何事情。

<p align="center">
  <img src="./assets/llm-os.jpg" width="50%" height="50%">
</p>

## 特性

---

#### 1. 可在 LLM-OS demo 单独使用tool-hub
#### 2. tool-hub以插件形式为 [chatgpt-on-wechat](https://github.com/zhayujie/chatgpt-on-wechat) 提供工具能力. 详见 ([tool插件使用教程](https://github.com/goldfishh/chatgpt-on-wechat/tree/master/plugins/tool))
#### 3. 支持中、英文互动
#### 4. 支持上下文记忆
#### 5. 支持proxy
#### 6. 支持大量工具   [工具指南 快速更新中](./docs/tool_tutorial.md) 
#### 7. 支持多种工具同时且自动调用、树状编排工具

### ⛳ 看看tool-hub未来计划更新的特性:[tool-hub todo-list](#plan) 
### 📭 去 [issues](https://github.com/goldfishh/chatgpt-tool-hub/issues) 提提建议 

## ✈️ 快速开始

---

### 1.  LLM-OS demo

#### (1). 克隆仓库

```bash
git clone https://github.com/goldfishh/chatgpt-tool-hub.git
cd chatgpt-tool-hub
```

#### (2). 使用pip安装本项目依赖

```bash
pip3 install -r requirements.txt
```

#### (3). 重命名.env.template 和 config.json.template文件,去掉.template后缀 打开文件填入配置参数 

`.env` 用于配置全局参数 文件配置示例
```text
LLM_API_KEY=sk-xx          // 必填,你的OPENAI API Key, 如何申请请见Q&A
MODEL_NAME=gpt-3.5-turbo      // 选填,OPENAI LLM模型
THINK_DEPTH=3                 // 选填,默认为3,控制LLM-OS的最大调用工具次数,过大不一定能提高回复质量
REQUEST_TIMEOUT=90            // 选填,默认120,等待openai api回复的最大时间
PROXY=http://192.168.7.1:7890 // 选填,当你需要代理访问openai时可填
DEBUG=false                   // 选填,debug模式
```

`config.json` 用于配置工具参数 文件配置示例
```json
{
  "tools": [],   // 填入你想用到的额外工具名
  "kwargs": {
      "no_default": false,   // 是否不使用默认工具, 默认使用python, terminal, url-get, meteo-weather
      "top_k_results": 2,  // 控制部分搜索工具(如arxiv、wikipedia)返回只前k条记录, 不建议过多
      // 需要额外申请api-key的工具,在这里填入
  }
}
```

需要额外申请工具config.json配置示例见:[工具申请方法与配置说明](./docs/apply_optional_tool.md)

#### (4). 执行terminal_io.py

```bash
python3 terminal_io.py
```

#### (5). 进入LLM-OS后你可以自行探索 或者进一步浏览详细教程:[LLM_OS demo使用说明](https://github.com/goldfishh/llm-os/blob/main/README.md)

---

### 2. 我给[chatgpt-on-wechat](https://github.com/zhayujie/chatgpt-on-wechat)开发了tool插件

> 使用本方法,你将可以用微信作为前端更方便地使用tool-hub

#### 查阅chatgpt-on-wechat文档中的[项目简介](https://github.com/zhayujie/chatgpt-on-wechat#%E7%AE%80%E4%BB%8B) 和 [快速开始](https://github.com/zhayujie/chatgpt-on-wechat#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B)

#### Note: 你需要安装拓展依赖才能使用tool插件

#### [tool插件教程](https://github.com/goldfishh/chatgpt-on-wechat/blob/master/plugins/tool/README.md)

---

### 3. 你是其他项目开发者,想要接入本工具引擎

> 本项目已发布到PyPI上,你只需使用pip命令即可安装

#### (1). 安装chatgpt-tool-hub包

```bash
pip install -i https://pypi.python.org/simple chatgpt-tool-hub
```

#### (2). 快速开始

```python
import os
from chatgpt_tool_hub.apps import AppFactory
os.environ["LLM_API_KEY"] = "YOUR_LLM_API_KEY"  # 必填
os.environ["PROXY"] = "YOUR_PROXY_ADDRESS"            # 选填
app = AppFactory().create_app(tools_list=[], **{})
reply = app.ask("YOUR_QUESTION_TO_HERE")
print(reply)
```

#### (3). 以插件形式接入tool-hub可参考tool插件实现

[tool.py](https://github.com/goldfishh/chatgpt-on-wechat/blob/master/plugins/tool/tool.py)

> 如果有需求,我会更新更详细接入的文档,欢迎提issue

---

## 工具指南 

### 🚀 [工具指南 工具快速开发中](./docs/tool_tutorial.md)

---

## 原理

---

工具引擎的实现原理本质是**Chain-of-Thought**:[Chain-of-Thought Prompting Elicits Reasoning in Large Language Models](https://arxiv.org/abs/2201.11903)

我将通过用6个自问自答的问题解释chatgpt-tool-hub的工作原理  

#### 1. 事务型工具(如terminal、python)是在哪运行,以及如何执行的

事务型工具是在你本地运行的,事务型工具本质是一个python编写的函数,terminal、python、url-get工具分别用到了封装调用subprocess库、python解释器和requests库的函数

---

#### 2. ChatGPT是如何触发调用这些函数

借助ChatGPT api提供的temperature参数,该参数越低,ChatGPT输出的结果会更集中和确定,当temperature为0时,相同的问题会得到统一回答  
我在prompt构建时会提供给ChatGPT此时用到的工具列表信息,每个工具信息包含:工具名 和 工具描述:

```text
TOOLS:  
------  
  
You have access to the following tools:  

> Python REPL: A Python shell. Use this to execute python commands. 
> url-get: A portal to the internet. Use this when you need to get specific content from a website. 
> Terminal: Executes commands in a terminal. 
> Bing Search: A wrapper around Bing Search. Useful for when you need to answer questions about current events. 
```

有了工具prompt,这时ChatGPT就能理解这些工具名字和使用场景,调用事务函数还需要进一步细化我和ChatGPT之间的通信协议(仍是通过prompt):
通信协议限制ChatGPT使用工具时返回内容的格式,只能返回三种前缀的内容:

```text
1. Thought: Do I need to use a tool? Yes or No
2. Action: 工具名字
3. Action Input: 工具的输入
```

通信协议完整prompt:  
```text
To use a tool, please use the following format:


Thought: Do I need to use a tool? Yes
Action: the action to take, should be one of [Python REPL, url-get, Terminal, Bing Search]
Action Input: the input to the action
Observation: the result of the action
```

此时,工具引擎有专用的文本解析模块负责解析这些内容,当解析成功后,将调度到具体事务函数执行,然后返回固定前缀的结果:

```text
Observation: 当事务函数执行完成返回时的内容
```

带Observation前缀的内容往往是使用事务型工具的用户想知道的答案

---

#### 3. ChatGPT怎么知道该用的工具和输入,是否每次都严格按照prompt生成格式化内容

ChatGPT微调时进行大量Q&A、CoT预料的学习和RLHF调优,目前ChatGPT对于工具和内容生成的质量是有保证的  
但是目前不是100%,因为会有低质量prompt或者不合适工具的输入,这些问题在工具引擎会进行鲁棒性的处理来保证生成内容的稳定性  

我创建一个issue,可以方便大家来获取和分享使用tool过程解决的有趣问题和思路、每个tool使用时prompt技巧、遇到问题的处理办法:
[更好的使用tool的技巧交流](https://github.com/goldfishh/chatgpt-tool-hub/issues/3)

---

#### 4. 如果需要多个工具交替配合解决某个问题,引擎是怎么做的?

当事务函数处理完成返回结果后,默认不会直接返回给用户,而是根据结果内容CoT,在整个prompt中,还有两个子prompt负责用户对话历史记录和中间结果

用户对话历史记录:
```text
Human: A question
AI: A answer
......
```

中间结果:
```text
Thought: Do I need to use a tool? Yes
Action: Wolfram Alpha
Action Input: gdp china vs. usa
Observation: China\nUnited States | GDP | nominal \nAnswer: China | $14.72 trillion per year\nUnited States | $20.95 trillion per year\n(2020 estimates)
Thought:
```

每轮工具CoT过程均会作为下次推理判断工具的依据,由此迭代地进行工具判断、执行,最后当识别到特定前缀时,CoT结果将返回给用户    

CoT结束prompt:
```text
When you have a response to say to the Human, or if you do not need to use a tool, you MUST use the format:

Thought: Do I need to use a tool? No
AI: the response to the original input question in chinese

```


ChatGPT使用工具过程并不顺利:当遇到迭代次数到达预设值时,会根据历史过程,返回给用户最后结果    

---

#### 5. 事务性工具交给ChatGPT是否具有不可预料的危险性?

是的,当你用事务性工具时,你就给予了ChatGPT在你本地运行程序的权利,你需要权限限制来规避可能的风险      
如果无法信任ChatGPT主导你的机器,请不要使用  

---

#### 6. 非事务型工具的实现原理是什么

参考[ChatGPT 官方插件](https://github.com/openai/chatgpt-retrieval-plugin),非事务性工具也称为插件型工具,该工具可视为开放性的ChatGPT插件

---


## 🎯 计划

<span id="plan"></span>

---

### feature todolist

[✓] 结果可解释性输出 -> LLM-OS的内心独白  
[✓] 一个前端demo  -> LLM-OS  
[✓] 长文本场景 -> summary工具  
[✓] 长工具顺序控制 -> 实现了toolintool机制    
[✓] 粒度配置 -> 每个tool封装的LLM可独立配置  
[○] tokens计算,精确管理    
[○] gpt_index长文本(pdf、html)检索   
[○] 接口并发支持  
[○] 接入国内LLM  
[○] 兼容不使用tool的场景  
[○] 互斥tool控制  
[○] subtree 动态注册&反注册  
[○] 工具中断  
[○] 定时调度  
[○] 语音输入、输出  

### tool todolist  

[○] stable-diffusion 中文prompt翻译    
[✓] ImageCaptioning    
[○] 小米智能家居控制    
[○] 支持ChatGPT官方插件  
[○] 让LLM来实现tool  
[○] 支持图片处理工具    
[○] 支持视频处理工具   
[✗] Wechat  

## 工具开发指南

---

目前工具分为两类:事务型工具、插件型工具   

[工具开发教程](./docs/tool_development_guide.md)

## 背景

我将很快更新这部分内容   

---

## ☕ 宣传

#### 如果你想支持本项目,欢迎给项目点个star、提issue和pr
#### 如果你想进一步支持项目作者少掉头发,努力开发,可以给和我一起开发项目的伙伴 或 单独给我来杯 ☕

<table><tr>
<td><a href="https://public.zsxq.com/groups/88885848842852.html"><img src="https://github.com/zhayujie/chatgpt-on-wechat/blob/master/docs/images/planet.jpg?raw=true" width="400" height="200" border=0></a></td>
<td><img src="./assets/buy_me_a_coffee.jpg" width="200" height="200" border=0 /></td>
</tr></table> 

---

## 感谢

感谢以下项目对本项目提供的有力支持:

#### 1. [langchain](https://github.com/hwchase17/langchain) 

受langchain的启发,本项目重写了langchain v0.0.123 工具有关的实现

#### 2. [Auto-GPT](https://github.com/Significant-Gravitas/Auto-GPT)

启发了browser tool跨平台的实现、tool engine的json通信、部分prompt描述

#### 3. [chatgpt-in-terminal](https://github.com/xiaoxx970/chatgpt-in-terminal)

llm-os demo 改写自该项目

---

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/wqjuser/wqj-chatgpt-tool-hub",
    "name": "wqj-chatgpt-tool-hub",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "",
    "author": "wqjuser",
    "author_email": "wqjuser@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/0c/26/796deefbb44ceb159d592fb763061fc8729cad589b1633cdf5cb22c08893/wqj-chatgpt-tool-hub-0.4.8.tar.gz",
    "platform": null,
    "description": "<h2 align='center'> chatgpt-tool-hub / ChatGPT\u5de5\u5177\u5f15\u64ce </h2>\n<p align='center'>\u7ed9ChatGPT\u88c5\u4e0a\u624b\u548c\u811a\uff0c\u62ff\u8d77\u5de5\u5177\u63d0\u9ad8\u4f60\u7684\u751f\u4ea7\u529b</p>\n\n<p align=\"center\">\n  <a style=\"text-decoration:none\" href=\"https://github.com/goldfishh\" target=\"_blank\">\n    <img src=\"https://img.shields.io/pypi/pyversions/chatgpt-tool-hub\" alt=\"Language\" />\n  </a>\n  <a style=\"text-decoration:none\" href=\"https://github.com/goldfishh\" target=\"_blank\">\n    <img src=\"https://img.shields.io/github/license/goldfishh/chatgpt-tool-hub\" alt=\"license \" />\n  </a>\n  <a style=\"text-decoration:none\" href=\"https://github.com/goldfishh\" target=\"_blank\">\n    <img src=\"https://img.shields.io/github/commit-activity/w/goldfishh/chatgpt-tool-hub\" alt=\"commit-activity-week \" />\n  </a>\n  <a style=\"text-decoration:none\" href=\"https://pypi.org/project/chatgpt-tool-hub/\" target=\"_blank\">\n    <img src=\"https://img.shields.io/pypi/dw/chatgpt-tool-hub\" alt=\"pypi-download-dw\" />\n  </a>\n</p>\n\n---\n\n\u7b80\u4f53\u4e2d\u6587 | [English](./docs/README_en.md)\n\n> \u5927\u8bed\u8a00\u6a21\u578b\u6d8c\u73b0\u80fd\u529b\u8ba9\u4eba\u60ca\u8273\uff0cChatGPT\u51fa\u73b0\u7ed9NLP\u6280\u672f\u5e26\u6765\u9769\u547d\uff0c\u9664\u6b64\u4e4b\u5916\u8fd8\u8ba9\u6211\u610f\u8bc6\u5230\u4e00\u79cd\u65b0\u7684\u4eba\u673a\u4ea4\u4e92\u7684\u53ef\u80fd\u6027\n\n<div>\n    <h2 style=\"display:inline; margin:0; padding:0;\">\ud83c\udf31 5.4 LLM-OS demo\u5728\u7ebf\u6f14\u793a</h2>\n    <a style=\"display:inline-block; align:center\" src=\"https://colab.research.google.com/assets/colab-badge.svg\" href=\"https://colab.research.google.com/drive/11nYPGFCYiaZ73H8nTHSN8ifbo0u3W_8p\">\n        <img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"demo in Colab\"/>\n    </a>\n</div>\n\n<br/>\n\n<div align=\"center\">\n    <a style=\"text-decoration:none\" href=\"https://www.bilibili.com/video/BV1eL411h7Nk/\" target=\"_blank\">\n        <img src=\"https://i.328888.xyz/2023/04/29/iJQNi3.jpeg\" width = \"659\" height = \"410\" alt=\"LLM-OS\" align=center />\n    </a>\n</div>\n\n<br/>\n\n#### [\u66f4\u65b0\u65e5\u5fd7](./docs/update_log.md) | [Q&A](./docs/q_and_a.md)\n\n## \u7b80\u4ecb\n\n---\n\n\u8fd9\u662f\u4e00\u4e2a\u80fd\u8ba9ChatGPT\u4f7f\u7528\u591a\u4e2a\u795e\u5947\u5de5\u5177\u7684\u6267\u884c\u5f15\u64ce\uff0c\u4f60\u80fd\u7528\u81ea\u7136\u8bed\u8a00\u547d\u4ee4ChatGPT\u4f7f\u7528\u8054\u7f51\u3001\u641c\u7d22\u3001\u6570\u5b66\u8fd0\u7b97\u3001\u63a7\u5236\u7535\u8111\u3001\u6267\u884c\u4ee3\u7801\u7b49\u5de5\u5177\uff0c\u6269\u5927ChatGPT\u4f7f\u7528\u8303\u56f4\u63d0\u9ad8\u4f60\u7684\u751f\u4ea7\u529b\u3002\n\n\u672c\u9879\u76ee\u56e0\u5173\u6ce8\u5230ChatGPT\u5f00\u653e\u63d2\u4ef6\u800c\u8bde\u751f\uff0c\u8be5\u63d2\u4ef6\u5b9a\u5236\u6027\u8f83\u5dee\uff0c\u4e14\u751f\u6001\u5c01\u95ed\uff0c\u8fd9\u4e0d\u662f\u4e00\u4e2a\u597d\u7684\u8d8b\u52bf\uff0c\u6211\u76f8\u4fe1\u672a\u6765\u56fd\u5185LLM\u4e00\u5b9a\u767e\u82b1\u9f50\u653e\uff0c\u540c\u65f6\u6211\u4eceChatGPT\u770b\u5230\u4e86\u4f7f\u7528\u5de5\u5177\u7684\u53ef\u884c\u6027\uff0c\u548c\u6f5c\u5728\u4ef7\u503c\uff0c\u56e0\u6b64\u6211\u5e0c\u671b\u505a\u4e00\u4e2a\u80fd\u517c\u5bb9\u672a\u6765LLM\u7684\u5de5\u5177\u751f\u6001\u3002\n\n\u5982\u679c\u628aChatGPT\u7684\u63d2\u4ef6\u6bd4\u4f5cApple\u7684App Store\uff0c\u90a3\u4e48\u8fd9\u4e2a\u9879\u76ee\u6700\u7ec8\u5f62\u6001\u5c31\u662fAndroid OS\u7684\u5f00\u653e\u5f0f\u751f\u6001\uff0c\u7b80\u79f0LLM-OS\u3002\u5728\u8fd9\u4e2a\u751f\u6001\u91cc\u6240\u6709\u5de5\u5177\u7ec4\u6210\u4e00\u4e2a\u64cd\u4f5c\u7cfb\u7edf\uff0c\u7528\u6237\u4ec5\u9700\u8f93\u5165\u6216\u4f20\u8ff0\u6587\u5b57\u5373\u53ef\u505a\u4efb\u4f55\u4e8b\u60c5\u3002  \n\n\u9274\u4e8e\u76ee\u524d\u72b6\u51b5\uff0c\u672c\u9879\u76ee\u7684\u5b9a\u4f4d\u662f\uff1a\u4e00\u4e2a\u5f00\u6e90\u7684ChatGPT\u5de5\u5177\u751f\u6001\u7cfb\u7edf\uff0c\u60a8\u53ef\u4ee5\u5c06\u5de5\u5177\u4e0eChatGPT\u7ed3\u5408\u4f7f\u7528\uff0c\u4f7f\u7528\u81ea\u7136\u8bed\u8a00\u6765\u5b8c\u6210\u4efb\u4f55\u4e8b\u60c5\u3002\n\n<p align=\"center\">\n  <img src=\"./assets/llm-os.jpg\" width=\"50%\" height=\"50%\">\n</p>\n\n## \u7279\u6027\n\n---\n\n#### 1. \u53ef\u5728 LLM-OS demo \u5355\u72ec\u4f7f\u7528tool-hub\n#### 2. tool-hub\u4ee5\u63d2\u4ef6\u5f62\u5f0f\u4e3a [chatgpt-on-wechat](https://github.com/zhayujie/chatgpt-on-wechat) \u63d0\u4f9b\u5de5\u5177\u80fd\u529b. \u8be6\u89c1 ([tool\u63d2\u4ef6\u4f7f\u7528\u6559\u7a0b](https://github.com/goldfishh/chatgpt-on-wechat/tree/master/plugins/tool))\n#### 3. \u652f\u6301\u4e2d\u3001\u82f1\u6587\u4e92\u52a8\n#### 4. \u652f\u6301\u4e0a\u4e0b\u6587\u8bb0\u5fc6\n#### 5. \u652f\u6301proxy\n#### 6. \u652f\u6301\u5927\u91cf\u5de5\u5177   [\u5de5\u5177\u6307\u5357 \u5feb\u901f\u66f4\u65b0\u4e2d](./docs/tool_tutorial.md) \n#### 7. \u652f\u6301\u591a\u79cd\u5de5\u5177\u540c\u65f6\u4e14\u81ea\u52a8\u8c03\u7528\u3001\u6811\u72b6\u7f16\u6392\u5de5\u5177\n\n### \u26f3 \u770b\u770btool-hub\u672a\u6765\u8ba1\u5212\u66f4\u65b0\u7684\u7279\u6027\uff1a[tool-hub todo-list](#plan) \n### \ud83d\udced \u53bb [issues](https://github.com/goldfishh/chatgpt-tool-hub/issues) \u63d0\u63d0\u5efa\u8bae \n\n## \u2708\ufe0f \u5feb\u901f\u5f00\u59cb\n\n---\n\n### 1.  LLM-OS demo\n\n#### (1). \u514b\u9686\u4ed3\u5e93\n\n```bash\ngit clone https://github.com/goldfishh/chatgpt-tool-hub.git\ncd chatgpt-tool-hub\n```\n\n#### (2). \u4f7f\u7528pip\u5b89\u88c5\u672c\u9879\u76ee\u4f9d\u8d56\n\n```bash\npip3 install -r requirements.txt\n```\n\n#### (3). \u91cd\u547d\u540d.env.template \u548c config.json.template\u6587\u4ef6\uff0c\u53bb\u6389.template\u540e\u7f00 \u6253\u5f00\u6587\u4ef6\u586b\u5165\u914d\u7f6e\u53c2\u6570 \n\n`.env` \u7528\u4e8e\u914d\u7f6e\u5168\u5c40\u53c2\u6570 \u6587\u4ef6\u914d\u7f6e\u793a\u4f8b\n```text\nLLM_API_KEY=sk-xx          // \u5fc5\u586b\uff0c\u4f60\u7684OPENAI API Key, \u5982\u4f55\u7533\u8bf7\u8bf7\u89c1Q&A\nMODEL_NAME=gpt-3.5-turbo      // \u9009\u586b\uff0cOPENAI LLM\u6a21\u578b\nTHINK_DEPTH=3                 // \u9009\u586b\uff0c\u9ed8\u8ba4\u4e3a3\uff0c\u63a7\u5236LLM-OS\u7684\u6700\u5927\u8c03\u7528\u5de5\u5177\u6b21\u6570\uff0c\u8fc7\u5927\u4e0d\u4e00\u5b9a\u80fd\u63d0\u9ad8\u56de\u590d\u8d28\u91cf\nREQUEST_TIMEOUT=90            // \u9009\u586b\uff0c\u9ed8\u8ba4120\uff0c\u7b49\u5f85openai api\u56de\u590d\u7684\u6700\u5927\u65f6\u95f4\nPROXY=http://192.168.7.1:7890 // \u9009\u586b\uff0c\u5f53\u4f60\u9700\u8981\u4ee3\u7406\u8bbf\u95eeopenai\u65f6\u53ef\u586b\nDEBUG=false                   // \u9009\u586b\uff0cdebug\u6a21\u5f0f\n```\n\n`config.json` \u7528\u4e8e\u914d\u7f6e\u5de5\u5177\u53c2\u6570 \u6587\u4ef6\u914d\u7f6e\u793a\u4f8b\n```json\n{\n  \"tools\": [],   // \u586b\u5165\u4f60\u60f3\u7528\u5230\u7684\u989d\u5916\u5de5\u5177\u540d\n  \"kwargs\": {\n      \"no_default\": false,   // \u662f\u5426\u4e0d\u4f7f\u7528\u9ed8\u8ba4\u5de5\u5177, \u9ed8\u8ba4\u4f7f\u7528python, terminal, url-get, meteo-weather\n      \"top_k_results\": 2,  // \u63a7\u5236\u90e8\u5206\u641c\u7d22\u5de5\u5177(\u5982arxiv\u3001wikipedia)\u8fd4\u56de\u53ea\u524dk\u6761\u8bb0\u5f55, \u4e0d\u5efa\u8bae\u8fc7\u591a\n      // \u9700\u8981\u989d\u5916\u7533\u8bf7api-key\u7684\u5de5\u5177\uff0c\u5728\u8fd9\u91cc\u586b\u5165\n  }\n}\n```\n\n\u9700\u8981\u989d\u5916\u7533\u8bf7\u5de5\u5177config.json\u914d\u7f6e\u793a\u4f8b\u89c1\uff1a[\u5de5\u5177\u7533\u8bf7\u65b9\u6cd5\u4e0e\u914d\u7f6e\u8bf4\u660e](./docs/apply_optional_tool.md)\n\n#### (4). \u6267\u884cterminal_io.py\n\n```bash\npython3 terminal_io.py\n```\n\n#### (5). \u8fdb\u5165LLM-OS\u540e\u4f60\u53ef\u4ee5\u81ea\u884c\u63a2\u7d22 \u6216\u8005\u8fdb\u4e00\u6b65\u6d4f\u89c8\u8be6\u7ec6\u6559\u7a0b\uff1a[LLM_OS demo\u4f7f\u7528\u8bf4\u660e](https://github.com/goldfishh/llm-os/blob/main/README.md)\n\n---\n\n### 2. \u6211\u7ed9[chatgpt-on-wechat](https://github.com/zhayujie/chatgpt-on-wechat)\u5f00\u53d1\u4e86tool\u63d2\u4ef6\n\n> \u4f7f\u7528\u672c\u65b9\u6cd5\uff0c\u4f60\u5c06\u53ef\u4ee5\u7528\u5fae\u4fe1\u4f5c\u4e3a\u524d\u7aef\u66f4\u65b9\u4fbf\u5730\u4f7f\u7528tool-hub\n\n#### \u67e5\u9605chatgpt-on-wechat\u6587\u6863\u4e2d\u7684[\u9879\u76ee\u7b80\u4ecb](https://github.com/zhayujie/chatgpt-on-wechat#%E7%AE%80%E4%BB%8B) \u548c [\u5feb\u901f\u5f00\u59cb](https://github.com/zhayujie/chatgpt-on-wechat#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B)\n\n#### Note: \u4f60\u9700\u8981\u5b89\u88c5\u62d3\u5c55\u4f9d\u8d56\u624d\u80fd\u4f7f\u7528tool\u63d2\u4ef6\n\n#### [tool\u63d2\u4ef6\u6559\u7a0b](https://github.com/goldfishh/chatgpt-on-wechat/blob/master/plugins/tool/README.md)\n\n---\n\n### 3. \u4f60\u662f\u5176\u4ed6\u9879\u76ee\u5f00\u53d1\u8005\uff0c\u60f3\u8981\u63a5\u5165\u672c\u5de5\u5177\u5f15\u64ce\n\n> \u672c\u9879\u76ee\u5df2\u53d1\u5e03\u5230PyPI\u4e0a\uff0c\u4f60\u53ea\u9700\u4f7f\u7528pip\u547d\u4ee4\u5373\u53ef\u5b89\u88c5\n\n#### (1). \u5b89\u88c5chatgpt-tool-hub\u5305\n\n```bash\npip install -i https://pypi.python.org/simple chatgpt-tool-hub\n```\n\n#### (2). \u5feb\u901f\u5f00\u59cb\n\n```python\nimport os\nfrom chatgpt_tool_hub.apps import AppFactory\nos.environ[\"LLM_API_KEY\"] = \"YOUR_LLM_API_KEY\"  # \u5fc5\u586b\nos.environ[\"PROXY\"] = \"YOUR_PROXY_ADDRESS\"            # \u9009\u586b\napp = AppFactory().create_app(tools_list=[], **{})\nreply = app.ask(\"YOUR_QUESTION_TO_HERE\")\nprint(reply)\n```\n\n#### (3). \u4ee5\u63d2\u4ef6\u5f62\u5f0f\u63a5\u5165tool-hub\u53ef\u53c2\u8003tool\u63d2\u4ef6\u5b9e\u73b0\n\n[tool.py](https://github.com/goldfishh/chatgpt-on-wechat/blob/master/plugins/tool/tool.py)\n\n> \u5982\u679c\u6709\u9700\u6c42\uff0c\u6211\u4f1a\u66f4\u65b0\u66f4\u8be6\u7ec6\u63a5\u5165\u7684\u6587\u6863\uff0c\u6b22\u8fce\u63d0issue\n\n---\n\n## \u5de5\u5177\u6307\u5357 \n\n### \ud83d\ude80 [\u5de5\u5177\u6307\u5357 \u5de5\u5177\u5feb\u901f\u5f00\u53d1\u4e2d](./docs/tool_tutorial.md)\n\n---\n\n## \u539f\u7406\n\n---\n\n\u5de5\u5177\u5f15\u64ce\u7684\u5b9e\u73b0\u539f\u7406\u672c\u8d28\u662f**Chain-of-Thought**\uff1a[Chain-of-Thought Prompting Elicits Reasoning in Large Language Models](https://arxiv.org/abs/2201.11903)\n\n\u6211\u5c06\u901a\u8fc7\u75286\u4e2a\u81ea\u95ee\u81ea\u7b54\u7684\u95ee\u9898\u89e3\u91cachatgpt-tool-hub\u7684\u5de5\u4f5c\u539f\u7406  \n\n#### 1. \u4e8b\u52a1\u578b\u5de5\u5177\uff08\u5982terminal\u3001python\uff09\u662f\u5728\u54ea\u8fd0\u884c\uff0c\u4ee5\u53ca\u5982\u4f55\u6267\u884c\u7684\n\n\u4e8b\u52a1\u578b\u5de5\u5177\u662f\u5728\u4f60\u672c\u5730\u8fd0\u884c\u7684\uff0c\u4e8b\u52a1\u578b\u5de5\u5177\u672c\u8d28\u662f\u4e00\u4e2apython\u7f16\u5199\u7684\u51fd\u6570\uff0cterminal\u3001python\u3001url-get\u5de5\u5177\u5206\u522b\u7528\u5230\u4e86\u5c01\u88c5\u8c03\u7528subprocess\u5e93\u3001python\u89e3\u91ca\u5668\u548crequests\u5e93\u7684\u51fd\u6570\n\n---\n\n#### 2. ChatGPT\u662f\u5982\u4f55\u89e6\u53d1\u8c03\u7528\u8fd9\u4e9b\u51fd\u6570\n\n\u501f\u52a9ChatGPT api\u63d0\u4f9b\u7684temperature\u53c2\u6570\uff0c\u8be5\u53c2\u6570\u8d8a\u4f4e\uff0cChatGPT\u8f93\u51fa\u7684\u7ed3\u679c\u4f1a\u66f4\u96c6\u4e2d\u548c\u786e\u5b9a\uff0c\u5f53temperature\u4e3a0\u65f6\uff0c\u76f8\u540c\u7684\u95ee\u9898\u4f1a\u5f97\u5230\u7edf\u4e00\u56de\u7b54  \n\u6211\u5728prompt\u6784\u5efa\u65f6\u4f1a\u63d0\u4f9b\u7ed9ChatGPT\u6b64\u65f6\u7528\u5230\u7684\u5de5\u5177\u5217\u8868\u4fe1\u606f\uff0c\u6bcf\u4e2a\u5de5\u5177\u4fe1\u606f\u5305\u542b\uff1a\u5de5\u5177\u540d \u548c \u5de5\u5177\u63cf\u8ff0\uff1a\n\n```text\nTOOLS:  \n------  \n  \nYou have access to the following tools:  \n\n> Python REPL: A Python shell. Use this to execute python commands. \n> url-get: A portal to the internet. Use this when you need to get specific content from a website. \n> Terminal: Executes commands in a terminal. \n> Bing Search: A wrapper around Bing Search. Useful for when you need to answer questions about current events. \n```\n\n\u6709\u4e86\u5de5\u5177prompt\uff0c\u8fd9\u65f6ChatGPT\u5c31\u80fd\u7406\u89e3\u8fd9\u4e9b\u5de5\u5177\u540d\u5b57\u548c\u4f7f\u7528\u573a\u666f\uff0c\u8c03\u7528\u4e8b\u52a1\u51fd\u6570\u8fd8\u9700\u8981\u8fdb\u4e00\u6b65\u7ec6\u5316\u6211\u548cChatGPT\u4e4b\u95f4\u7684\u901a\u4fe1\u534f\u8bae\uff08\u4ecd\u662f\u901a\u8fc7prompt\uff09\uff1a\n\u901a\u4fe1\u534f\u8bae\u9650\u5236ChatGPT\u4f7f\u7528\u5de5\u5177\u65f6\u8fd4\u56de\u5185\u5bb9\u7684\u683c\u5f0f\uff0c\u53ea\u80fd\u8fd4\u56de\u4e09\u79cd\u524d\u7f00\u7684\u5185\u5bb9\uff1a\n\n```text\n1. Thought: Do I need to use a tool? Yes or No\n2. Action: \u5de5\u5177\u540d\u5b57\n3. Action Input: \u5de5\u5177\u7684\u8f93\u5165\n```\n\n\u901a\u4fe1\u534f\u8bae\u5b8c\u6574prompt\uff1a  \n```text\nTo use a tool, please use the following format:\n\n\nThought: Do I need to use a tool? Yes\nAction: the action to take, should be one of [Python REPL, url-get, Terminal, Bing Search]\nAction Input: the input to the action\nObservation: the result of the action\n```\n\n\u6b64\u65f6\uff0c\u5de5\u5177\u5f15\u64ce\u6709\u4e13\u7528\u7684\u6587\u672c\u89e3\u6790\u6a21\u5757\u8d1f\u8d23\u89e3\u6790\u8fd9\u4e9b\u5185\u5bb9\uff0c\u5f53\u89e3\u6790\u6210\u529f\u540e\uff0c\u5c06\u8c03\u5ea6\u5230\u5177\u4f53\u4e8b\u52a1\u51fd\u6570\u6267\u884c\uff0c\u7136\u540e\u8fd4\u56de\u56fa\u5b9a\u524d\u7f00\u7684\u7ed3\u679c\uff1a\n\n```text\nObservation: \u5f53\u4e8b\u52a1\u51fd\u6570\u6267\u884c\u5b8c\u6210\u8fd4\u56de\u65f6\u7684\u5185\u5bb9\n```\n\n\u5e26Observation\u524d\u7f00\u7684\u5185\u5bb9\u5f80\u5f80\u662f\u4f7f\u7528\u4e8b\u52a1\u578b\u5de5\u5177\u7684\u7528\u6237\u60f3\u77e5\u9053\u7684\u7b54\u6848\n\n---\n\n#### 3. ChatGPT\u600e\u4e48\u77e5\u9053\u8be5\u7528\u7684\u5de5\u5177\u548c\u8f93\u5165\uff0c\u662f\u5426\u6bcf\u6b21\u90fd\u4e25\u683c\u6309\u7167prompt\u751f\u6210\u683c\u5f0f\u5316\u5185\u5bb9\n\nChatGPT\u5fae\u8c03\u65f6\u8fdb\u884c\u5927\u91cfQ&A\u3001CoT\u9884\u6599\u7684\u5b66\u4e60\u548cRLHF\u8c03\u4f18\uff0c\u76ee\u524dChatGPT\u5bf9\u4e8e\u5de5\u5177\u548c\u5185\u5bb9\u751f\u6210\u7684\u8d28\u91cf\u662f\u6709\u4fdd\u8bc1\u7684  \n\u4f46\u662f\u76ee\u524d\u4e0d\u662f100%\uff0c\u56e0\u4e3a\u4f1a\u6709\u4f4e\u8d28\u91cfprompt\u6216\u8005\u4e0d\u5408\u9002\u5de5\u5177\u7684\u8f93\u5165\uff0c\u8fd9\u4e9b\u95ee\u9898\u5728\u5de5\u5177\u5f15\u64ce\u4f1a\u8fdb\u884c\u9c81\u68d2\u6027\u7684\u5904\u7406\u6765\u4fdd\u8bc1\u751f\u6210\u5185\u5bb9\u7684\u7a33\u5b9a\u6027  \n\n\u6211\u521b\u5efa\u4e00\u4e2aissue\uff0c\u53ef\u4ee5\u65b9\u4fbf\u5927\u5bb6\u6765\u83b7\u53d6\u548c\u5206\u4eab\u4f7f\u7528tool\u8fc7\u7a0b\u89e3\u51b3\u7684\u6709\u8da3\u95ee\u9898\u548c\u601d\u8def\u3001\u6bcf\u4e2atool\u4f7f\u7528\u65f6prompt\u6280\u5de7\u3001\u9047\u5230\u95ee\u9898\u7684\u5904\u7406\u529e\u6cd5\uff1a\n[\u66f4\u597d\u7684\u4f7f\u7528tool\u7684\u6280\u5de7\u4ea4\u6d41](https://github.com/goldfishh/chatgpt-tool-hub/issues/3)\n\n---\n\n#### 4. \u5982\u679c\u9700\u8981\u591a\u4e2a\u5de5\u5177\u4ea4\u66ff\u914d\u5408\u89e3\u51b3\u67d0\u4e2a\u95ee\u9898\uff0c\u5f15\u64ce\u662f\u600e\u4e48\u505a\u7684\uff1f\n\n\u5f53\u4e8b\u52a1\u51fd\u6570\u5904\u7406\u5b8c\u6210\u8fd4\u56de\u7ed3\u679c\u540e\uff0c\u9ed8\u8ba4\u4e0d\u4f1a\u76f4\u63a5\u8fd4\u56de\u7ed9\u7528\u6237\uff0c\u800c\u662f\u6839\u636e\u7ed3\u679c\u5185\u5bb9CoT\uff0c\u5728\u6574\u4e2aprompt\u4e2d\uff0c\u8fd8\u6709\u4e24\u4e2a\u5b50prompt\u8d1f\u8d23\u7528\u6237\u5bf9\u8bdd\u5386\u53f2\u8bb0\u5f55\u548c\u4e2d\u95f4\u7ed3\u679c\n\n\u7528\u6237\u5bf9\u8bdd\u5386\u53f2\u8bb0\u5f55\uff1a\n```text\nHuman: A question\nAI: A answer\n......\n```\n\n\u4e2d\u95f4\u7ed3\u679c\uff1a\n```text\nThought: Do I need to use a tool? Yes\nAction: Wolfram Alpha\nAction Input: gdp china vs. usa\nObservation: China\\nUnited States | GDP | nominal \\nAnswer: China | $14.72 trillion per year\\nUnited States | $20.95 trillion per year\\n(2020 estimates)\nThought:\n```\n\n\u6bcf\u8f6e\u5de5\u5177CoT\u8fc7\u7a0b\u5747\u4f1a\u4f5c\u4e3a\u4e0b\u6b21\u63a8\u7406\u5224\u65ad\u5de5\u5177\u7684\u4f9d\u636e\uff0c\u7531\u6b64\u8fed\u4ee3\u5730\u8fdb\u884c\u5de5\u5177\u5224\u65ad\u3001\u6267\u884c\uff0c\u6700\u540e\u5f53\u8bc6\u522b\u5230\u7279\u5b9a\u524d\u7f00\u65f6\uff0cCoT\u7ed3\u679c\u5c06\u8fd4\u56de\u7ed9\u7528\u6237    \n\nCoT\u7ed3\u675fprompt\uff1a\n```text\nWhen you have a response to say to the Human, or if you do not need to use a tool, you MUST use the format:\n\nThought: Do I need to use a tool? No\nAI: the response to the original input question in chinese\n\n```\n\n\nChatGPT\u4f7f\u7528\u5de5\u5177\u8fc7\u7a0b\u5e76\u4e0d\u987a\u5229\uff1a\u5f53\u9047\u5230\u8fed\u4ee3\u6b21\u6570\u5230\u8fbe\u9884\u8bbe\u503c\u65f6\uff0c\u4f1a\u6839\u636e\u5386\u53f2\u8fc7\u7a0b\uff0c\u8fd4\u56de\u7ed9\u7528\u6237\u6700\u540e\u7ed3\u679c    \n\n---\n\n#### 5. \u4e8b\u52a1\u6027\u5de5\u5177\u4ea4\u7ed9ChatGPT\u662f\u5426\u5177\u6709\u4e0d\u53ef\u9884\u6599\u7684\u5371\u9669\u6027\uff1f\n\n\u662f\u7684\uff0c\u5f53\u4f60\u7528\u4e8b\u52a1\u6027\u5de5\u5177\u65f6\uff0c\u4f60\u5c31\u7ed9\u4e88\u4e86ChatGPT\u5728\u4f60\u672c\u5730\u8fd0\u884c\u7a0b\u5e8f\u7684\u6743\u5229\uff0c\u4f60\u9700\u8981\u6743\u9650\u9650\u5236\u6765\u89c4\u907f\u53ef\u80fd\u7684\u98ce\u9669      \n\u5982\u679c\u65e0\u6cd5\u4fe1\u4efbChatGPT\u4e3b\u5bfc\u4f60\u7684\u673a\u5668\uff0c\u8bf7\u4e0d\u8981\u4f7f\u7528  \n\n---\n\n#### 6. \u975e\u4e8b\u52a1\u578b\u5de5\u5177\u7684\u5b9e\u73b0\u539f\u7406\u662f\u4ec0\u4e48\n\n\u53c2\u8003[ChatGPT \u5b98\u65b9\u63d2\u4ef6](https://github.com/openai/chatgpt-retrieval-plugin)\uff0c\u975e\u4e8b\u52a1\u6027\u5de5\u5177\u4e5f\u79f0\u4e3a\u63d2\u4ef6\u578b\u5de5\u5177\uff0c\u8be5\u5de5\u5177\u53ef\u89c6\u4e3a\u5f00\u653e\u6027\u7684ChatGPT\u63d2\u4ef6\n\n---\n\n\n## \ud83c\udfaf \u8ba1\u5212\n\n<span id=\"plan\"></span>\n\n---\n\n### feature todolist\n\n[\u2713] \u7ed3\u679c\u53ef\u89e3\u91ca\u6027\u8f93\u51fa -> LLM-OS\u7684\u5185\u5fc3\u72ec\u767d  \n[\u2713] \u4e00\u4e2a\u524d\u7aefdemo  -> LLM-OS  \n[\u2713] \u957f\u6587\u672c\u573a\u666f -> summary\u5de5\u5177  \n[\u2713] \u957f\u5de5\u5177\u987a\u5e8f\u63a7\u5236 -> \u5b9e\u73b0\u4e86toolintool\u673a\u5236    \n[\u2713] \u7c92\u5ea6\u914d\u7f6e -> \u6bcf\u4e2atool\u5c01\u88c5\u7684LLM\u53ef\u72ec\u7acb\u914d\u7f6e  \n[\u25cb] tokens\u8ba1\u7b97\uff0c\u7cbe\u786e\u7ba1\u7406    \n[\u25cb] gpt_index\u957f\u6587\u672c(pdf\u3001html)\u68c0\u7d22   \n[\u25cb] \u63a5\u53e3\u5e76\u53d1\u652f\u6301  \n[\u25cb] \u63a5\u5165\u56fd\u5185LLM  \n[\u25cb] \u517c\u5bb9\u4e0d\u4f7f\u7528tool\u7684\u573a\u666f  \n[\u25cb] \u4e92\u65a5tool\u63a7\u5236  \n[\u25cb] subtree \u52a8\u6001\u6ce8\u518c&\u53cd\u6ce8\u518c  \n[\u25cb] \u5de5\u5177\u4e2d\u65ad  \n[\u25cb] \u5b9a\u65f6\u8c03\u5ea6  \n[\u25cb] \u8bed\u97f3\u8f93\u5165\u3001\u8f93\u51fa  \n\n### tool todolist  \n\n[\u25cb] stable-diffusion \u4e2d\u6587prompt\u7ffb\u8bd1    \n[\u2713] ImageCaptioning    \n[\u25cb] \u5c0f\u7c73\u667a\u80fd\u5bb6\u5c45\u63a7\u5236    \n[\u25cb] \u652f\u6301ChatGPT\u5b98\u65b9\u63d2\u4ef6  \n[\u25cb] \u8ba9LLM\u6765\u5b9e\u73b0tool  \n[\u25cb] \u652f\u6301\u56fe\u7247\u5904\u7406\u5de5\u5177    \n[\u25cb] \u652f\u6301\u89c6\u9891\u5904\u7406\u5de5\u5177   \n[\u2717] Wechat  \n\n## \u5de5\u5177\u5f00\u53d1\u6307\u5357\n\n---\n\n\u76ee\u524d\u5de5\u5177\u5206\u4e3a\u4e24\u7c7b\uff1a\u4e8b\u52a1\u578b\u5de5\u5177\u3001\u63d2\u4ef6\u578b\u5de5\u5177   \n\n[\u5de5\u5177\u5f00\u53d1\u6559\u7a0b](./docs/tool_development_guide.md)\n\n## \u80cc\u666f\n\n\u6211\u5c06\u5f88\u5feb\u66f4\u65b0\u8fd9\u90e8\u5206\u5185\u5bb9   \n\n---\n\n## \u2615 \u5ba3\u4f20\n\n#### \u5982\u679c\u4f60\u60f3\u652f\u6301\u672c\u9879\u76ee\uff0c\u6b22\u8fce\u7ed9\u9879\u76ee\u70b9\u4e2astar\u3001\u63d0issue\u548cpr\n#### \u5982\u679c\u4f60\u60f3\u8fdb\u4e00\u6b65\u652f\u6301\u9879\u76ee\u4f5c\u8005\u5c11\u6389\u5934\u53d1\uff0c\u52aa\u529b\u5f00\u53d1\uff0c\u53ef\u4ee5\u7ed9\u548c\u6211\u4e00\u8d77\u5f00\u53d1\u9879\u76ee\u7684\u4f19\u4f34 \u6216 \u5355\u72ec\u7ed9\u6211\u6765\u676f \u2615\n\n<table><tr>\n<td><a href=\"https://public.zsxq.com/groups/88885848842852.html\"><img src=\"https://github.com/zhayujie/chatgpt-on-wechat/blob/master/docs/images/planet.jpg?raw=true\" width=\"400\" height=\"200\" border=0></a></td>\n<td><img src=\"./assets/buy_me_a_coffee.jpg\" width=\"200\" height=\"200\" border=0 /></td>\n</tr></table> \n\n---\n\n## \u611f\u8c22\n\n\u611f\u8c22\u4ee5\u4e0b\u9879\u76ee\u5bf9\u672c\u9879\u76ee\u63d0\u4f9b\u7684\u6709\u529b\u652f\u6301\uff1a\n\n#### 1. [langchain](https://github.com/hwchase17/langchain) \n\n\u53d7langchain\u7684\u542f\u53d1\uff0c\u672c\u9879\u76ee\u91cd\u5199\u4e86langchain v0.0.123 \u5de5\u5177\u6709\u5173\u7684\u5b9e\u73b0\n\n#### 2. [Auto-GPT](https://github.com/Significant-Gravitas/Auto-GPT)\n\n\u542f\u53d1\u4e86browser tool\u8de8\u5e73\u53f0\u7684\u5b9e\u73b0\u3001tool engine\u7684json\u901a\u4fe1\u3001\u90e8\u5206prompt\u63cf\u8ff0\n\n#### 3. [chatgpt-in-terminal](https://github.com/xiaoxx970/chatgpt-in-terminal)\n\nllm-os demo \u6539\u5199\u81ea\u8be5\u9879\u76ee\n\n---\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "An open-source chatgpt tool ecosystem where you can combine tools with chatgpt and use natural language to do anything.",
    "version": "0.4.8",
    "project_urls": {
        "Homepage": "https://github.com/wqjuser/wqj-chatgpt-tool-hub"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1c769ffc441d9728d2416565d3a4b47e7cdafefea247867cb9394188664522df",
                "md5": "1c86c060937a94eb68a0388b189ed21b",
                "sha256": "b209f3d9dbd6eec1225f3ff3d79c26050fd4f0ca500c137a2568e12d9e15e1be"
            },
            "downloads": -1,
            "filename": "wqj_chatgpt_tool_hub-0.4.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1c86c060937a94eb68a0388b189ed21b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 131938,
            "upload_time": "2024-01-03T10:09:42",
            "upload_time_iso_8601": "2024-01-03T10:09:42.612023Z",
            "url": "https://files.pythonhosted.org/packages/1c/76/9ffc441d9728d2416565d3a4b47e7cdafefea247867cb9394188664522df/wqj_chatgpt_tool_hub-0.4.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0c26796deefbb44ceb159d592fb763061fc8729cad589b1633cdf5cb22c08893",
                "md5": "1b3445ed9fae96f33d6ea58cfe7a1875",
                "sha256": "d60406282c08163b4e5f477ea1ea4b85ed06bf40db0d96f72ffb7e27c5c8d04e"
            },
            "downloads": -1,
            "filename": "wqj-chatgpt-tool-hub-0.4.8.tar.gz",
            "has_sig": false,
            "md5_digest": "1b3445ed9fae96f33d6ea58cfe7a1875",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 94673,
            "upload_time": "2024-01-03T10:09:44",
            "upload_time_iso_8601": "2024-01-03T10:09:44.336304Z",
            "url": "https://files.pythonhosted.org/packages/0c/26/796deefbb44ceb159d592fb763061fc8729cad589b1633cdf5cb22c08893/wqj-chatgpt-tool-hub-0.4.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-03 10:09:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "wqjuser",
    "github_project": "wqj-chatgpt-tool-hub",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "setuptools",
            "specs": [
                [
                    "~=",
                    "65.6.3"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    "~=",
                    "1.10.7"
                ]
            ]
        },
        {
            "name": "pyopenssl",
            "specs": []
        },
        {
            "name": "pyyaml",
            "specs": [
                [
                    "~=",
                    "6.0"
                ]
            ]
        },
        {
            "name": "selenium",
            "specs": []
        },
        {
            "name": "webdriver_manager",
            "specs": []
        },
        {
            "name": "lxml",
            "specs": []
        },
        {
            "name": "beautifulsoup4",
            "specs": [
                [
                    "~=",
                    "4.12.0"
                ]
            ]
        },
        {
            "name": "tenacity",
            "specs": [
                [
                    "~=",
                    "8.2.2"
                ]
            ]
        },
        {
            "name": "openai",
            "specs": [
                [
                    "~=",
                    "0.27.4"
                ]
            ]
        },
        {
            "name": "tiktoken",
            "specs": [
                [
                    "~=",
                    "0.4.0"
                ]
            ]
        },
        {
            "name": "arxiv",
            "specs": []
        },
        {
            "name": "wikipedia",
            "specs": []
        },
        {
            "name": "wolframalpha",
            "specs": []
        },
        {
            "name": "aiohttp",
            "specs": [
                [
                    "~=",
                    "3.8.4"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "~=",
                    "2.28.2"
                ]
            ]
        },
        {
            "name": "google-api-python-client",
            "specs": []
        },
        {
            "name": "rich",
            "specs": []
        },
        {
            "name": "python-dotenv",
            "specs": []
        },
        {
            "name": "pyperclip",
            "specs": []
        },
        {
            "name": "prompt_toolkit",
            "specs": []
        },
        {
            "name": "SQLAlchemy",
            "specs": [
                [
                    "~=",
                    "2.0.7"
                ]
            ]
        }
    ],
    "lcname": "wqj-chatgpt-tool-hub"
}
        
Elapsed time: 0.19347s