使用langchain及openai创建本地知识库

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开始提问吧。

猜你喜欢

转载自blog.csdn.net/wxl781227/article/details/130617103