Spaces:
Running
Running
import uuid | |
from typing import TypedDict | |
from langchain_core.messages import AIMessage, HumanMessage, ToolMessage | |
from langchain_openai import ChatOpenAI | |
import os | |
import re | |
from dotenv import load_dotenv | |
load_dotenv() | |
class MainState(TypedDict): | |
question: HumanMessage | str| None | |
scratchpad: list[AIMessage | ToolMessage] | None | |
answer: AIMessage | None | |
next_node: str | None | |
history: list[HumanMessage | AIMessage] | |
llm = ChatOpenAI( | |
model="gpt-4o-mini", | |
temperature=0, | |
api_key=os.environ.get('OPENAI_API_KEY'), # Insira sua chave aqui | |
) | |
def generate_uuid(): | |
return str(uuid.uuid4()) | |
def post_process(message: AIMessage) -> AIMessage: | |
matches = re.findall(r"\[SOT\](.*)\[EOT\]", message.content, re.DOTALL) | |
matches = matches[0] if matches else None | |
if matches: | |
return AIMessage(content='', additional_kwargs={'custom_tool_call': matches} ,tool_call_id=generate_uuid()) | |
return AIMessage(content=message.content) |