""" Data Scientist.: Dr.Eddy Giusepe Chirinos Isidro Este script funciona apenas com a versão antiga do LangChain --> pip install langchain==0.0.142 Ver o seguinte link do erro: https://medium.com/@michal.foune/hello-i-was-facing-the-following-error-importerror-cannot-import-name-callbackmanager-from-7777f1bac7ef """ from langchain.prompts import PromptTemplate from langchain.llms import OpenAI from langchain.chains import LLMChain from langchain.chains import SimpleSequentialChain # importar para respostas de streaming: from langchain.callbacks.base import CallbackManager from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv()) # read local .env file #openai.api_key = os.environ['OPENAI_API_KEY'] llm = OpenAI(streaming=True, callback_manager=CallbackManager([StreamingStdOutCallbackHandler()]), verbose=True, temperature=0.0) # Para usar o LLMChain, primeiro crie um modelo de prompt: expand_prompt = PromptTemplate( input_variables=["technology"], template="""Escreva um parágrafo explicando a seguinte tecnologia: {technology}. A sua resposta deverá conter como máximo 30 palavras. """, ) # Agora podemos criar uma cadeia muito simples que receberá a entrada do usuário, # formatará o prompt com ela e depois a enviará ao LLM. expand_chain = LLMChain(llm=llm, prompt=expand_prompt) # Defina o prompt para a segunda cadeia: summarize_prompt = PromptTemplate( input_variables=["paragraph"], template="Nomeie a tecnologia explicada no parágrafo seguinte: {paragraph}?", ) # Definir a segunda cadeia: summarize_chain = LLMChain(llm=llm, prompt=summarize_prompt) chain = SimpleSequentialChain(chains=[expand_chain, summarize_chain], verbose=False) # Execute a cadeia especificando apenas a variável de entrada. print(chain.run("Docker"))