Spaces:
No application file
No application file
| """ | |
| Data Scientist.: Dr.Eddy Giusepe Chirinos Isidro | |
| Este script só funciona com langchain versão 0.0.142 | |
| Você pode tentar executar ele com uma versão mais recente. | |
| """ | |
| from langchain.prompts import PromptTemplate | |
| from langchain.llms import OpenAI | |
| from langchain.chains import LLMChain | |
| # WE ARE NOW IMPORTING THE SEQUENTIAL CHAIN | |
| from langchain.chains import SequentialChain | |
| # 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 | |
| ) | |
| # Para usar o LLMChain, primeiro criamos um modelo de prompt. | |
| # DEFINIMOS TRÊS VARIÁVEIS DE ENTRADA: technology, tone, duração e | |
| expand_prompt = PromptTemplate( | |
| input_variables=["technology", "tone", "how long"], | |
| template="Escreva uma descrição de {how long} no tom de {tone} explicando a seguinte tecnologia: {technology}", | |
| ) | |
| # We can now create a very simple chain that will take user input, format the prompt with it, and then send it to the LLM. | |
| # WE DEFINE THE OUTPUT KEY AS text | |
| expand_chain = LLMChain(llm=llm, prompt=expand_prompt, output_key="text") | |
| # Defina o prompt para a segunda cadeia: | |
| review_prompt = PromptTemplate( | |
| input_variables=["text"], | |
| template="""Escreva uma resenha de quão bem escrito o texto a seguir está: {text}? | |
| Revisão do texto quanto à gramática, ortografia e tom:""", | |
| ) | |
| # Defina a segunda chain: | |
| review_chain = LLMChain(llm=llm, | |
| prompt=review_prompt, | |
| output_key="review" | |
| ) | |
| multi_chain_multi_input_multi_output = SequentialChain(chains=[expand_chain, review_chain], verbose=False, input_variables=["technology", "tone", "how long"], output_variables=["text", "review"]) | |
| # Execute a cadeia especificando apenas as variáveis de entrada COMO DICIONÁRIO.NO RUN METHOD THIS TIME | |
| resp = multi_chain_multi_input_multi_output({"technology": "Docker", "tone": "Informal", "how long": "20 palavras como máximo"}) | |