victorafarias commited on
Commit
7859df7
·
1 Parent(s): 232cfc6

nova troca do GRONK pela OPEN AI

Browse files
Files changed (1) hide show
  1. llms.py +36 -2
llms.py CHANGED
@@ -8,19 +8,53 @@ from langchain_google_genai import ChatGoogleGenerativeAI
8
  from langchain_anthropic import ChatAnthropic
9
  from langchain_openai import ChatOpenAI
10
  from langchain_experimental.openai_assistant import OpenAIAssistantRunnable
 
11
 
12
  # Carrega as variáveis de ambiente do arquivo .env
13
  load_dotenv()
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  # --- Inicialização dos LLMs ---
16
 
17
  # OpenAI
18
- openai_llm = OpenAIAssistantRunnable(
19
  assistant_id=os.getenv("OPENAI_ASSISTANT_ID"),
20
- as_agent=True, # O 'as_agent=True' garante o comportamento correto de entrada/saída
21
  timeout=900
22
  )
23
 
 
 
 
 
 
 
24
  # GROK da xAI
25
  grok_llm = GrokChatModel(
26
  api_key=os.getenv("X_API_KEY"),
 
8
  from langchain_anthropic import ChatAnthropic
9
  from langchain_openai import ChatOpenAI
10
  from langchain_experimental.openai_assistant import OpenAIAssistantRunnable
11
+ from langchain_core.runnables import RunnableLambda
12
 
13
  # Carrega as variáveis de ambiente do arquivo .env
14
  load_dotenv()
15
 
16
+ # --- Funções Auxiliares para o OpenAI Assistant ---
17
+
18
+ def format_assistant_input(prompt_value):
19
+ """
20
+ Converte a saída de um PromptTemplate (PromptValue) para o formato de dicionário
21
+ que o OpenAIAssistantRunnable espera.
22
+ """
23
+ # Extrai o texto do objeto PromptValue
24
+ content_string = prompt_value.to_string()
25
+ return {"content": content_string}
26
+
27
+ def parse_assistant_output(assistant_output_messages):
28
+ """
29
+ Extrai o conteúdo de texto da última mensagem retornada pelo assistente.
30
+ A API de Assistentes retorna uma lista de todas as mensagens da interação.
31
+ """
32
+ if assistant_output_messages and len(assistant_output_messages) > 0:
33
+ # A última mensagem na lista é a resposta do assistente
34
+ last_message = assistant_output_messages[-1]
35
+
36
+ # O conteúdo da mensagem está em uma lista, geralmente com um único item de texto
37
+ if last_message.content and len(last_message.content) > 0:
38
+ # Acessa o valor do texto
39
+ return last_message.content[0].text.value
40
+
41
+ return "" # Retorna string vazia se não houver saída
42
+
43
  # --- Inicialização dos LLMs ---
44
 
45
  # OpenAI
46
+ assistant_runnable = OpenAIAssistantRunnable(
47
  assistant_id=os.getenv("OPENAI_ASSISTANT_ID"),
48
+ as_agent=True,
49
  timeout=900
50
  )
51
 
52
+ openai_llm = (
53
+ RunnableLambda(format_assistant_input) # Recebe PromptValue, retorna dict
54
+ | assistant_runnable # Executa o assistente
55
+ | RunnableLambda(parse_assistant_output) # Recebe lista de mensagens, retorna string
56
+ )
57
+
58
  # GROK da xAI
59
  grok_llm = GrokChatModel(
60
  api_key=os.getenv("X_API_KEY"),