nk-test / app.py
asylwan's picture
Upload folder using huggingface_hub
b220457
raw
history blame contribute delete
No virus
2.37 kB
# En variant av gamla app.py där jag inte bygger om indexed varje gång utan använder det som redan är byggt.
# För tillfället tror jag indexet är Nordiska Kliniken.
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):
# set number of output tokens
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)
#Directory in which the indexes will be stored
index.storage_context.persist(persist_dir="indexes")
return index
def chatbot(input_text):
# rebuild storage context
storage_context = StorageContext.from_defaults(persist_dir="indexes")
#load indexes from directory using storage_context
query_engne = load_index_from_storage(storage_context).as_query_engine()
response = query_engne.query(input_text)
#returning the response
return response.response
#Creating the web UIusing gradio
iface = gradio.Interface(fn=chatbot,
inputs=gradio.inputs.Textbox(lines=5, label="Skriv din fråga"),
outputs="text",
title="NK-bot")
#Constructing indexes based on the documents in traininData folder
#This can be skipped if you have already trained your app and need to re-run it
#index = construct_index("trainingData")
#launching the web UI using gradio
#iface.launch(share=True) FUNKAR INTE NÄR JAG PUSHAR TILL SPACES
iface.launch(share=False)