1.安装依赖
! pip install llama-index==0.5.27 langchain==0.0.142 gradio==3.28.1 openai==0.27.6
2.设置openai api key
import os
# Note. alternatively you can set a temporary env variable like this:
os.environ["OPENAI_API_KEY"] = "sk-xxx"
if os.getenv("OPENAI_API_KEY") is not None:
print("OPENAI_API_KEY is ready")
else:
print("OPENAI_API_KEY environment variable not found")
3. 将知识文件放在kb目录下,以.txt或.doc或.pdf文件的形式存在。
4.运行app
from llama_index import SimpleDirectoryReader, LangchainEmbedding, GPTListIndex,GPTSimpleVectorIndex, PromptHelper, LLMPredictor, ServiceContext
from langchain import OpenAI
import gradio as gr
import sys
import os
def construct_index(directory_path):
max_input_size = 4096
num_outputs = 2000
max_chunk_overlap = 20
chunk_size_limit = 600
prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)
llm_predictor = LLMPredictor(llm=OpenAI(temperature=0.7, model_name="gpt-3.5-turbo", max_tokens=num_outputs))
documents = SimpleDirectoryReader(directory_path).load_data()
service_context = ServiceContext.from_defaults(llm_predictor=llm_predictor)
index = GPTSimpleVectorIndex.from_documents(documents,service_context=service_context)
index.save_to_disk('index.json')
return index
def chatbot(input_text):
index = GPTSimpleVectorIndex.load_from_disk('index.json')
response = index.query(input_text, response_mode="compact")
return response.response
iface = gr.Interface(fn=chatbot,
inputs=gr.inputs.Textbox(lines=7, label="请输入,您想从知识库中获取什么?"),
outputs="text",
title="AI 本地知识库ChatBot")
index = construct_index("kb")
iface.launch(share=True, server_port=8500, server_name="0.0.0.0")
5.登录app界面 localhost:8500开始提问吧。