File size: 1,632 Bytes
1286e81
b374298
 
12d3e1a
1286e81
 
 
 
12d3e1a
 
20e3edd
1286e81
7fa7a9c
1286e81
 
 
 
 
 
 
12d3e1a
b374298
 
 
 
 
 
 
 
 
 
12d3e1a
 
 
 
 
 
 
 
 
b374298
 
 
 
 
 
 
 
 
 
 
 
 
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
import os

from pydantic import SecretStr
from setup.environment import default_model
from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI


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