Spaces:
Sleeping
Sleeping
File size: 2,491 Bytes
18df1d9 203fd05 41d7063 f77cd10 7859df7 18df1d9 7859df7 8cf18cb 7859df7 4c81a8d 8cf18cb 7859df7 4c81a8d 8cf18cb 7859df7 18df1d9 203fd05 7859df7 203fd05 7859df7 0c6d84c 18df1d9 7859df7 203fd05 0f7158d 232cfc6 203fd05 18df1d9 a941b5a 0c6d84c 18df1d9 9ccab25 0c6d84c 18df1d9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# llms.py
import os
from dotenv import load_dotenv
# from langchain_openai import ChatOpenAI
from custom_grok import GrokChatModel
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain_anthropic import ChatAnthropic
from langchain_openai import ChatOpenAI
from langchain_experimental.openai_assistant import OpenAIAssistantRunnable
from langchain_core.agents import AgentFinish
from langchain_core.runnables import RunnableLambda
# Carrega as variáveis de ambiente do arquivo .env
load_dotenv()
# --- Funções Auxiliares para o OpenAI Assistant ---
def format_assistant_input(prompt_value):
"""
Converte a saída de um PromptTemplate (PromptValue) para o formato de dicionário
que o OpenAIAssistantRunnable espera.
"""
content_string = prompt_value.to_string()
return {"content": content_string}
def parse_assistant_output(assistant_finish_object):
"""
Extrai a string de saída de um objeto AgentFinish.
O resultado final do assistente está no dicionário `return_values`.
"""
# 2. A verificação de tipo aqui deve usar 'AgentFinish', e não o nome antigo.
if isinstance(assistant_finish_object, AgentFinish):
# A resposta final em string está na chave 'output' do dicionário return_values
return assistant_finish_object.return_values.get('output', '')
# Adicionado um fallback caso a saída já seja uma string
if isinstance(assistant_finish_object, str):
return assistant_finish_object
# Retorna uma string vazia se o formato for inesperado
return ""
# --- Inicialização dos LLMs ---
# OpenAI
assistant_runnable = OpenAIAssistantRunnable(
assistant_id=os.getenv("OPENAI_ASSISTANT_ID"),
as_agent=True,
timeout=900
)
openai_llm = (
RunnableLambda(format_assistant_input) # Recebe PromptValue, retorna dict
| assistant_runnable # Executa o assistente
| RunnableLambda(parse_assistant_output) # Recebe lista de mensagens, retorna string
)
# GROK da xAI
grok_llm = GrokChatModel(
api_key=os.getenv("X_API_KEY"),
model=os.getenv("GROK_MODEL_ID"),
base_url=os.getenv("X_API_BASE_URL"),
timeout=900
)
# Claude Sonnet
claude_llm = ChatAnthropic(
api_key=os.getenv("ANTHROPIC_API_KEY"),
model_name=os.getenv("CLAUDE_MODEL_ID"),
timeout=900
)
# Gemini
gemini_llm = ChatGoogleGenerativeAI(
google_api_key=os.getenv("GOOGLE_API_KEY"),
model=os.getenv("GEMINI_MODEL_ID"),
timeout=900
)
|