File size: 1,010 Bytes
46a68f8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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)