souzat19 commited on
Commit
c89a08c
·
verified ·
1 Parent(s): b0a7a14

Update llms.py

Browse files
Files changed (1) hide show
  1. llms.py +71 -71
llms.py CHANGED
@@ -1,71 +1,71 @@
1
- from openai import OpenAI
2
- from groq import Groq
3
-
4
- class LLM:
5
- def __init__(self, api_key, modelo, temperatura=0.5, quantidade_tokens=150, mensagem=""):
6
- self.temperatura = temperatura
7
- self.quantidade_tokens = quantidade_tokens
8
- self.mensagem = mensagem
9
- self.modelo = modelo
10
- self.api_key = api_key
11
- self.openai_client = None
12
- self.groq_client = None
13
-
14
- def _init_openai_client(self):
15
- if not self.openai_client:
16
- self.openai_client = OpenAI(api_key=self.api_key)
17
-
18
- def _init_groq_client(self):
19
- if not self.groq_client:
20
- self.groq_client = Groq(api_key=self.api_key)
21
-
22
- def gerar_resposta_openai(self):
23
- self._init_openai_client()
24
- messages = []
25
-
26
- if self.mensagem.strip():
27
- messages.append({"role": "system", "content": self.mensagem})
28
-
29
- messages.append({"role": "user", "content": self.prompt})
30
-
31
- response = self.openai_client.chat.completions.create(
32
- model=self.modelo,
33
- messages=messages,
34
- temperature=self.temperatura,
35
- max_tokens=self.quantidade_tokens,
36
- top_p=1,
37
- frequency_penalty=0,
38
- presence_penalty=0
39
- )
40
- return response.choices[0].message.content.strip()
41
-
42
- def gerar_resposta_groq(self):
43
- self._init_groq_client()
44
- messages = []
45
-
46
- if self.mensagem.strip():
47
- messages.append({"role": "system", "content": self.mensagem})
48
-
49
- messages.append({"role": "user", "content": self.prompt})
50
-
51
- completion = self.groq_client.chat.completions.create(
52
- model=self.modelo,
53
- messages=messages,
54
- temperature=self.temperatura,
55
- max_tokens=self.quantidade_tokens,
56
- top_p=0.65,
57
- stream=False, # Mudamos para False para manter consistência com OpenAI
58
- stop=None
59
- )
60
- return completion.choices[0].message.content.strip()
61
-
62
- def gerar_resposta(self):
63
- """Método principal para gerar respostas baseado no modelo selecionado"""
64
- if "gpt" in self.modelo: # Modelos OpenAI
65
- return self.gerar_resposta_openai()
66
- elif "llama" in self.modelo or "mixtral" in self.modelo: # Modelos Groq
67
- return self.gerar_resposta_groq()
68
- else:
69
- raise ValueError(f"Modelo não suportado: {self.modelo}")
70
-
71
-
 
1
+ from openai import OpenAI
2
+ from groq import Groq
3
+
4
+ class LLM:
5
+ def __init__(self, api_key, modelo, temperatura=0.5, quantidade_tokens=2048, mensagem=""):
6
+ self.temperatura = temperatura
7
+ self.quantidade_tokens = quantidade_tokens
8
+ self.mensagem = mensagem
9
+ self.modelo = modelo
10
+ self.api_key = api_key
11
+ self.openai_client = None
12
+ self.groq_client = None
13
+
14
+ def _init_openai_client(self):
15
+ if not self.openai_client:
16
+ self.openai_client = OpenAI(api_key=self.api_key)
17
+
18
+ def _init_groq_client(self):
19
+ if not self.groq_client:
20
+ self.groq_client = Groq(api_key=self.api_key)
21
+
22
+ def gerar_resposta_openai(self):
23
+ self._init_openai_client()
24
+ messages = []
25
+
26
+ if self.mensagem.strip():
27
+ messages.append({"role": "system", "content": self.mensagem})
28
+
29
+ messages.append({"role": "user", "content": self.prompt})
30
+
31
+ response = self.openai_client.chat.completions.create(
32
+ model=self.modelo,
33
+ messages=messages,
34
+ temperature=self.temperatura,
35
+ max_tokens=self.quantidade_tokens,
36
+ top_p=1,
37
+ frequency_penalty=0,
38
+ presence_penalty=0
39
+ )
40
+ return response.choices[0].message.content.strip()
41
+
42
+ def gerar_resposta_groq(self):
43
+ self._init_groq_client()
44
+ messages = []
45
+
46
+ if self.mensagem.strip():
47
+ messages.append({"role": "system", "content": self.mensagem})
48
+
49
+ messages.append({"role": "user", "content": self.prompt})
50
+
51
+ completion = self.groq_client.chat.completions.create(
52
+ model=self.modelo,
53
+ messages=messages,
54
+ temperature=self.temperatura,
55
+ max_tokens=self.quantidade_tokens,
56
+ top_p=0.65,
57
+ stream=False, # Mudamos para False para manter consistência com OpenAI
58
+ stop=None
59
+ )
60
+ return completion.choices[0].message.content.strip()
61
+
62
+ def gerar_resposta(self):
63
+ """Método principal para gerar respostas baseado no modelo selecionado"""
64
+ if "gpt" in self.modelo: # Modelos OpenAI
65
+ return self.gerar_resposta_openai()
66
+ elif "llama" in self.modelo or "mixtral" in self.modelo: # Modelos Groq
67
+ return self.gerar_resposta_groq()
68
+ else:
69
+ raise ValueError(f"Modelo não suportado: {self.modelo}")
70
+
71
+