Spaces:
Sleeping
Sleeping
| 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="sabiazinho-3", | |
| temperature=0, | |
| api_key=os.environ.get('MARITACA_API_KEY'), # Insira sua chave aqui | |
| base_url="https://chat.maritaca.ai/api", | |
| ) | |
| 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) |