Spaces:
No application file
No application file
| """ | |
| Data Scientist.: Dr. Eddy Giusepe Chirinos Isidro 🤓 | |
| Link do Panel --> https://panel.holoviz.org/reference/chat/PanelCallbackHandler.html | |
| Link do ANACONDA --> https://www.anaconda.com/blog/ | |
| Construa um chatbot de IA com tecnologia LangChain | |
| ================================================== | |
| O Panel ChatInterface também se integra perfeitamente ao LangChain, aproveitando | |
| todo o espectro de recursos do LangChain. Aqui está um exemplo de como usamos | |
| LangChain 'ConversationChain' para armazenar mensagens com 'ConversationBufferMemory' | |
| e passar mensagens anteriores para a API OpenAI. | |
| Observe que antes de mergulharmos no código LangChain, definimos 'callback_handler' | |
| porque a interface LangChain não tem como transmitir a partir de geradores, então | |
| precisamos agrupar a interface LangChain com 'pn.chat.langchain.PanelCallbackHandler', | |
| que herda de `langchain.callbacks.base.BaseCallbackHandler`. Para mais informações, veja | |
| o link acima. | |
| Executando este script | |
| ---------------------- | |
| $ panel serve 2_Building_a_ChatGPT-powered_AI_ChatBot.py | |
| """ | |
| from langchain.chat_models import ChatOpenAI | |
| from langchain.chains import ConversationChain | |
| from langchain.memory import ConversationBufferMemory | |
| import panel as pn | |
| pn.extension() | |
| # Substitua sua chave de API OpenAI: | |
| import openai | |
| import os | |
| from dotenv import load_dotenv, find_dotenv | |
| _ = load_dotenv(find_dotenv()) # read local .env file | |
| openai.api_key = os.environ['OPENAI_API_KEY'] | |
| async def callback(contents: str, user: str, instance: pn.chat.ChatInterface): | |
| await chain.apredict(input=contents) | |
| chat_interface = pn.chat.ChatInterface(callback=callback, callback_user="ChatGPT") | |
| callback_handler = pn.chat.langchain.PanelCallbackHandler(chat_interface) | |
| llm = ChatOpenAI(streaming=True, | |
| callbacks=[callback_handler], | |
| model="gpt-3.5-turbo", | |
| temperature=0.0, | |
| verbose=True | |
| ) | |
| memory = ConversationBufferMemory() | |
| chain = ConversationChain(llm=llm, memory=memory) | |
| chat_interface.send("Envie uma mensagem para obter uma resposta do ChatGPT!", user="System", respond=False) | |
| chat_interface.servable() | |