gpt_space / app.py
aurioldegbelo's picture
Update app.py
8b458b6 verified
# Code adapted from https://docs.llamaindex.ai/en/stable/examples/customization/prompts/chat_prompts/
import gradio as gr
from llama_index.core import ChatPromptTemplate
def define_custom_prompts():
qa_prompt_str = (
"Context information is below.\n"
"---------------------\n"
"{context_str}\n"
"---------------------\n"
"Given the context information and not prior knowledge, "
"answer the question: {query_str}\n")
refine_prompt_str = (
"We have the opportunity to refine the original answer "
"(only if needed) with some more context below.\n"
"------------\n"
"{context_msg}\n"
"------------\n"
"Given the new context, refine the original answer to better "
"answer the question: {query_str}. "
"If the context isn't useful, output the original answer again.\n"
"Original Answer: {existing_answer}")
# Text QA Prompt
chat_text_qa_msgs = [
(
"system",
"Always answer the question, even if the context isn't helpful.",
),
("user", qa_prompt_str),
]
text_qa_template = ChatPromptTemplate.from_messages(chat_text_qa_msgs)
# Refine Prompt
chat_refine_msgs = [
(
"system",
"Always answer the question, even if the context isn't helpful.",
),
("user", refine_prompt_str),
]
refine_template = ChatPromptTemplate.from_messages(chat_refine_msgs)
return text_qa_template, refine_template
def answer_questions(user_question):
text_qa_template, refine_template = define_custom_prompts()
import openai
import os
os.environ["OPENAI_API_KEY"]
openai.api_key = os.environ["OPENAI_API_KEY"]
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.llms.openai import OpenAI
documents = SimpleDirectoryReader("./data/").load_data()
# Create an index using a chat model, so that we can use the chat prompts!
llm = OpenAI(model="gpt-3.5-turbo", temperature=0.1)
index = VectorStoreIndex.from_documents(documents)
response = index.as_query_engine(text_qa_template=text_qa_template, refine_template=refine_template, llm=llm).query(user_question)
return str(response)
text_qa_template, refine_template = define_custom_prompts()
#question = "Which countries were affected?"
#question = "What are the number of injuries in Gaziantep?"
#answer = answer_questions(question, text_qa_template, refine_template)
#answer
demo = gr.Interface(fn=answer_questions, inputs="text", outputs="text")
demo.launch()