Skip to main content

A simple chat bot for querying information from your local private documents.

Project description

DocsBot 使用说明

Upload Python Package Docker Image CI

DocsBot 是一个简单的命令行小工具,用对话的方式,快速查询本地的文档库(Word、PDF、PPT等)

快速开始 Quick Start

安装方法1:通过pip 安装

$ pip install docsbot -i https://pypi.tuna.tsinghua.edu.cn/simple

安装方法2:通过Docker运行

docker run -ti  -e "OPENAI_PROXY=http://192.168.3.112:8001" -e "OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxx" datamini/docsbot  

使用

$ docsbot
Please enter your OpenAI Key: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
usage: chatbase [-h] {addbase,listbase,deletebase,query} ...

positional arguments:
  {addbase,listbase,deletebase,query}

options:
  -h, --help            show this help message and exit
  
  
$ docsbot addbase /Users/lele/Downloads/laws

Using vector store:  Qdrant
loading from dir: /Users/lele/Downloads/laws
Added 4 document(s) to base base000x7uvrvegk9vv
Added /Users/lele/Downloads/laws with ID base000x7uvrvegk9vv

$ docsbot listbase
+---------------------+-------------------------------+---------+
|          ID         |            Location           |  Count  |
+---------------------+-------------------------------+---------+
| base000x7uvrvegk9vv | /Users/lele/Downloads/laws | 4 files |
+---------------------+-------------------------------+---------+

$ docsbot query base000x7uvrvegk9vv

Using vector store:  [Qdrant]-base000sxgohnz1b2r8@http://127.0.0.1:6333 
请输入您的问题:我租了3年,没给钱,合法吗
【回答】: 不合法。根据第721条,承租人应当按照约定的期限支付租金,如果没有约定或者约定不明确,租赁期限不满一年的,应当在租赁期限届满时支付;租赁期限一年以上的,应当在每届满一年时支付,剩余期限不满一年的,应当在租赁期限届满时支付。因此,没有按照约定的期限支付租金是不合法的。
【来源】:
1. 文件:/tmp/laws/中华人民共和国民法典.docx
   内容1. 第七百二十一条  承租人应当按照约定的期限支付租金。对支付租金的期限没有约定或者约定不明确,依据本法第五百一十条的规定仍不能确定,租赁期限不满一年的,应当在租赁期限届满时支付;租赁期限一年以上的,应当在每届满一年时支付,剩余期限不满一年的,应当在租赁期限届满时支付。
   内容2. 第七百二十二条  承租人无正当理由未支付或者迟延支付租金的,出租人可以请求承租人在合理期限内支付;承租人逾期不支付的,出租人可以解除合同。  第七百二十三条  因第三人主张权利,致使承租人不能对租赁物使用、收益的,承租人可以请求减少租金或者不支付租金。  第三人主张权利的,承租人应当及时通知出租人。  

命令和参数

以下是 DocsBot 支持的命令及其参数:

$ docsbot addbase <dir>          # 用于添加一个新的资料库。 `<dir>`: 要添加的资料库的目录路径。
$ docsbot listbase               # 用于列出所有已添加的资料库。
$ docsbot deletebase <baseid>    # 用于删除一个已添加的资料库。 `<baseid>`: 要删除的资料库的ID。
$ docsbot query <baseid> [--debug] # 用于查询一个资料库。 `<baseid>`: 要查询的资料库的ID。 `--debug`: 是否显示调试信息。
$ docsbot showconfig             # 用于显示当前的配置信息。

配置项

Home目录

docsbot 默认使用目录 $HOME/.docsbot来存储自己的配置信息、资料库的元信息与索引数据等。

# 该目录中的文件和文件夹
docsbot.env  -- 配置文件
base_data.json -- 资料库的元信息比如ID目录文件数
vectors -- 对资料库Embedding后的向量索引数据的存储目录

配置文件

第一次运行时,请根据提示设置OpenAI的Key,docsbot自动保存到配置文件 $HOME/.docsbot/docsbot.env中。

所有的配置项如下:

OPENAI_API_KEY=xxxxxxxxx   # OpenAI的API Key,必须(第一次运行时,会提示输入)
OPENAI_PROXY="http://192.168.3.112:8001" # 代理,可选
HTTP_PROXY_FOR_GLOBAL_ACCESS="http://192.168.3.112:8001"  # 默认使用OPENAI_PROXY
VECTOR_STORE_TYPE="Chroma"  # 索引类型,目前支持Chroma(默认)、Qdrant
QDRANT_SERVER_URL="http://192.168.1.22:6333" # Qdrant的地址,当VECTOR_STORE_TYPE="Qdrant"时必须

FAQ

Q:由于众所周知的原因,如何设置OPENAI的代理?

在配置文件中,增加如下配置项:

OPENAI_PROXY="http://192.168.3.112:8001"

Q:如何更换向量数据库为Qdrant?

在配置文件中,增加如下配置项(修改为真实的Qdrant地址):

VECTOR_STORE_TYPE="Qdrant"
QDRANT_SERVER_URL="http://192.168.1.22:6333"

Q:如何打开调试模式?

在命令行中增加--debug参数即可。

$ docsbot query base000x7uvrvegk9vv --debug

Release Notes

详见:文档

如何发布(Release)一个新的版本

  1. 在docsbot/version.py 中更新一个新的版本号
  2. 使用以下git命令添加一个新的tag
    # 修改版本号为新的版本号
    git tag 0.1.13
    
    # push到远程仓库
    git push origin 0.1.13
    

提交新的Tag之后,Github Action会自动触发如下两个任务:

  1. 构建新的Python包 docsbot ,以Git Tag作为版本号,并推送到Pypi.org
  2. 构建新的Docker Image datamini/docsbot ,以Git Tag作为Image Tag,并推送到Docker Hub

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docsbot-0.1.25.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

docsbot-0.1.25-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file docsbot-0.1.25.tar.gz.

File metadata

  • Download URL: docsbot-0.1.25.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for docsbot-0.1.25.tar.gz
Algorithm Hash digest
SHA256 766c837263f219a0d361ecc4a274241a90cc0d660d6453bb7ab498aa26d3efab
MD5 8f9e792dfedc8e147ce7b96d50c1f7e7
BLAKE2b-256 02cbd9ae4e100745be51f259dae5cff887b019cd248c02ff4beda6309ea69f1b

See more details on using hashes here.

File details

Details for the file docsbot-0.1.25-py3-none-any.whl.

File metadata

  • Download URL: docsbot-0.1.25-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for docsbot-0.1.25-py3-none-any.whl
Algorithm Hash digest
SHA256 11c9efda2b2a0ea2f2a561d4ea8fec3a8b29254b37b268bbfb570b5e32143e2f
MD5 eaabb0674694aa9396de4220814c7087
BLAKE2b-256 48ff16622702e5bc05b1ec85d268036fa58f8325f294b96b8e30f4e48628824e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page