Spaces:
Paused
Paused
| import os | |
| from pinecone import Pinecone as PineconeClient | |
| import gradio as gr | |
| from langchain.chains import LLMChain | |
| from langchain.prompts import PromptTemplate | |
| from langchain_community.chat_models import ChatOpenAI | |
| from langchain_community.vectorstores import Pinecone | |
| from langchain_openai import OpenAIEmbeddings | |
| from dotenv import load_dotenv, find_dotenv | |
| load_dotenv(find_dotenv(), override=True) | |
| PINECONE_API_KEY = os.environ.get('PINECONE_API_KEY') | |
| PINECONE_ENV = os.environ.get('PINECONE_ENV') | |
| embeddings = OpenAIEmbeddings() | |
| pc = PineconeClient(api_key=PINECONE_API_KEY) | |
| index_name = "linuxtips" | |
| index = pc.Index(index_name) | |
| index.describe_index_stats() | |
| llm = ChatOpenAI(model='gpt-4o-mini', temperature=0) | |
| template="""Assistente é uma IA jurídica que tira dúvidas. | |
| Assistente elabora repostas simplificadas, com base no contexto fornecido. | |
| Assistente fornece referências extraídas do contexto abaixo. Não gere links ou referência adicionais. | |
| Assistente fornece a resposta em duas versões, português e inglês. | |
| Ao final da resposta exiba no formato de lista as referências extraídas. | |
| Caso não consiga encontrar no contexto abaixo ou caso a pergunta não esteja relacionada do contexto jurídico, | |
| diga apenas 'Eu não sei!' | |
| Question: {query} | |
| Context: {context} | |
| """ | |
| prompt = PromptTemplate( | |
| template=template, | |
| input_variables=["query", "context"], | |
| ) | |
| def search(query): | |
| docsearch = Pinecone.from_existing_index(index_name, embeddings) | |
| docs = docsearch.similarity_search(query, k=3) | |
| context = docs[0].page_content + docs[1].page_content + docs[2].page_content | |
| resp = LLMChain(prompt=prompt, llm=llm) | |
| return resp.run(query=query, context=context) | |
| with gr.Blocks(title="Brunarize GPT", theme=gr.themes.Soft()) as ui: | |
| gr.Markdown("# Sou Brunarize, uma IA que tem a seguros como base de conhecimento") | |
| query = gr.Textbox(label='Faça a sua pergunta:', placeholder="EX: please tell me what are the main functions of an autarchy department?") | |
| text_output = gr.Textbox(label="Resposta") | |
| btn = gr.Button("Perguntar") | |
| btn.click(fn=search, inputs=query, outputs=[text_output]) | |
| ui.launch(share=True) | |