luanpoppe
feat: adicionando a geração do título do documento
d8410b4
import os
from typing import Literal
from pydantic import SecretStr
from _utils.LLMs.LLM_class import LLM
from setup.environment import default_model
from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI
llm = LLM()
async def aclaude_answer(claude_client, claude_context_model, prompt):
print("\n\nComeçou uma requisição pelo Claude")
response = await claude_client.messages.create(
model=claude_context_model,
max_tokens=100, # Máximo é 4096
messages=[{"role": "user", "content": prompt}],
)
return response.content[
0
].text # O response.content é uma lista pois é passada uma lista de mensagens, e também retornado uma lista de mensagens, sendo a primeira a mais recente, que é a resposta do model
async def agpt_answer(prompt):
api_key = os.environ.get("OPENAI_API_KEY")
if api_key:
gpt = ChatOpenAI(
temperature=0,
model="gpt-4o-mini",
api_key=SecretStr(api_key),
max_retries=5,
)
response = await gpt.ainvoke([HumanMessage(content=prompt)])
return response.content
def gpt_answer(
prompt,
temperature=0,
model=default_model,
max_retries=5,
shouldReturnFullResponse=False,
):
api_key = os.environ.get("OPENAI_API_KEY")
if api_key:
gpt = ChatOpenAI(
temperature=temperature,
model=model,
api_key=SecretStr(api_key),
max_retries=max_retries,
)
response = gpt.invoke([HumanMessage(content=prompt)])
if shouldReturnFullResponse:
return response
else:
return response.content
async def agemini_answer(prompt, model: Literal["gemini-2.0-flash", "gemini-2.0-flash-lite"]="gemini-2.0-flash"):
gemini = llm.google_gemini(model)
resposta = await gemini.ainvoke([HumanMessage(content=prompt)])
return resposta.content