|
|
|
|
|
|
|
from llama_index import GPTVectorStoreIndex, SimpleDirectoryReader, LLMPredictor, ServiceContext, StorageContext, load_index_from_storage |
|
from langchain import OpenAI |
|
from langchain.prompts import ChatMessagePromptTemplate |
|
import gradio |
|
import os |
|
import openai |
|
|
|
|
|
api_key = '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' |
|
os.environ["OPENAI_API_KEY"] = api_key |
|
|
|
def construct_index(directory_path): |
|
|
|
num_outputs = 256 |
|
|
|
system_prompt = "Du är chattboten Nora som arbetar för Nordiska Kliniken. Du ska vara hjälpsam och svara på användares frågor om Nordiska Kliniken och dess tjänster. Var alltid otroligt trevlig mot användaren. Börja ditt första meddelande till användaren med att hälsa välkommen till Nordiska Kliniken." |
|
|
|
_llm_predictor = LLMPredictor(llm=OpenAI(temperature=0.5, model_name="gpt-3.5-turbo", max_tokens=num_outputs)) |
|
|
|
service_context = ServiceContext.from_defaults(llm_predictor=_llm_predictor) |
|
|
|
docs = SimpleDirectoryReader(directory_path).load_data() |
|
|
|
index = GPTVectorStoreIndex.from_documents(docs, service_context=service_context) |
|
|
|
|
|
index.storage_context.persist(persist_dir="indexes") |
|
|
|
return index |
|
|
|
def chatbot(input_text): |
|
|
|
|
|
storage_context = StorageContext.from_defaults(persist_dir="indexes") |
|
|
|
|
|
query_engne = load_index_from_storage(storage_context).as_query_engine() |
|
|
|
|
|
response = query_engne.query(input_text) |
|
|
|
|
|
return response.response |
|
|
|
|
|
iface = gradio.Interface(fn=chatbot, |
|
inputs=gradio.inputs.Textbox(lines=5, label="Skriv din fråga"), |
|
outputs="text", |
|
title="NK-bot") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
iface.launch(share=False) |