我们构建了一个名为ERNIE Bot 城市建设法规标准小助手的演示应用,展示了如何借助检索增强和函数调用的力量拓展大型模型的专有领域知识。我们使用PaddleNLP Pipelines流水线系统和 ERNIE语义向量Embedding搭建了本地语义检索服务,为大型模型提供了检索本地知识库的能力。此外,借助ERNIE Bot的函数调用Function Call能力,我们可以根据上下文和用户提出的具体问题,让大型模型在回答问题时决定是否采用检索增强方式,或是直接回答。这一设计在赋予了大模型更多领域知识的同时,也保留了领域知识以外的通用大模型对话能力。
首先,请确保Python版本>=3.8。然后执行如下命令:
cd examples/retrieval_function_call
pip install -r requirements.txt
我们已经预备好了来自中华人民共和国住房和城乡建设部规章库的部分规章文件,可以通过以下的命令下载和解压:
wget https://paddlenlp.bj.bcebos.com/datasets/examples/construction_regulations.tar
tar xvf construction_regulations.tar
可以通过以下的命令启动本地演示服务:
python demo.py
--api_key <your/api/key> \
--secret_key <your/secret/key> \
--file_paths construction_regulations \
--port 8081
参数含义说明
api_key
: ERNIE Bot的api keysecret_key
: ERNIE Bot的secret keyfile_paths
: 用于构建检索索引的文档库路径。默认为'construction_regulations'index_name
: 构建的检索索引名称。如本地语义检索索引已经存在,则直接读取已经构建好的索引。默认为'construct_demo_index'retriever_top_k
: 检索的召回数量,默认为5chunk_size
: 构建检索的文本切片大小,默认为384个tokenshost
: Gradio Demo的host name, 默认为'localhost'port
: Gradio Demo的port, 默认为8081