(资料图)
本章详细剥析如何搭建「自定义知识库的聊天机器人」。
搭建「自定义知识库的聊天机器人」
机器人基本原理:将现有资料喂给AI,让它用来回答问题或给出延伸建议等。
传文档给AI,然后 AI 仅用该文档来生成合适的答案
操作步骤:S1. 导入Github 数据(导入几份流行营销案例,且案例都是英文)git clone https://github.com/Airbangs/Operation-management-case-base
S2. 安装依赖库pip3 install gpt-indexpip3 install langchainpip3 install transformers缺啥补啥
S3. 编写脚本num_outputs :设置最大的输出 token 数,若想回答问题的字数越多就设置越大。
Temperature:控制模型生成结果的随机性。温度越低,结果越确定,但也会越平凡或无趣。若要出人意料的回答,则将该参数调高一些。若想基于事实,如数据提取、FAQ 场景等,调成 0最合适。
#!/usr/bin/env python3from gpt_index import SimpleDirectoryReader, GPTListIndex, readers, GPTSimpleVectorIndex, LLMPredictor, PromptHelper,ServiceContextfrom langchain import OpenAIimport sysimport osfrom IPython.display import Markdown, displayimport PyPDF2# 设置 OpenAI API Keyos.environ["OPENAI_API_KEY"] = "你的Open_Api_Key" def main():# set maximum input sizemax_input_size = 4096# set number of output tokensnum_outputs = 4000# set maximum chunk overlapmax_chunk_overlap = 20# set chunk size limitchunk_size_limit = 600 # define LLMllm_predictor = LLMPredictor(llm=OpenAI(temperature=0.5, model_name="text-davinci-003", max_tokens=num_outputs))prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)documents = SimpleDirectoryReader("你的文件目录/files").load_data() service_context = ServiceContext.from_defaults(llm_predictor=llm_predictor, prompt_helper=prompt_helper)index = GPTSimpleVectorIndex.from_documents(documents, service_context=service_context) index.save_to_disk("index.json")index = GPTSimpleVectorIndex.load_from_disk("index.json")while True:query = input("小朋友你是不是有很多问号,提出来让我帮你吧:")response = index.query(query, response_mode="compact")print(f"Response: <b>{response.response}</b>")if __name__ == "__main__": main()
S4. 用中文总结英文案例内容尝试总结PDF内容
S5. 提问回答时默认语言会受提问所使用语言影响
S6. 翻译可以进一步提问让其使用期望的语言,如中文
阅读本文可能用到的其它知识
如何生成自己的OPENAI_API_KEY登录地址 => https://platform.openai.com/account/api-keys
[Tips] 若使用付费的GPT4则更佳
操作示意图
代码执行报错