File size: 1,634 Bytes
60fc5e8 265e3f4 |
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 |
import os
from dotenv import load_dotenv
from groq import Groq
load_dotenv()
class GroqClient:
def __init__(self, api_key):
self.client = Groq(api_key=api_key)
class GroqCompletion:
def __init__(self, client, model, domain, prompt_template, user_content, temperature, max_tokens, top_p, stream, stop):
self.client = client
self.model = model
self.domain = domain
self.prompt_template = prompt_template
self.user_content = user_content
self.temperature = temperature
self.max_tokens = max_tokens
self.top_p = top_p
self.stream = stream
self.stop = stop
def create_completion(self):
prompt = f"{self.prompt_template}\n\n{self.user_content}\n"
system_role = f"you are an helpful AI assistant in text based question answering and retriving context from given domain {self.domain}"
completion = self.client.client.chat.completions.create(
model=self.model,
messages=[
{
"role": "system",
"content": system_role
},
{
"role": "user",
"content": prompt
}
],
temperature=self.temperature,
max_tokens=self.max_tokens,
top_p=self.top_p,
stream=self.stream,
stop=self.stop,
)
result = ""
for chunk in completion:
result += chunk.choices[0].delta.content or ""
return result
|