Coderound / proj /backend /app /utils /groq_client.py
cloud450's picture
Upload 42 files
ab13a8a verified
import os
import asyncio
from groq import AsyncGroq
from app.utils.key_manager import key_manager
import logging
logger = logging.getLogger(__name__)
async def get_groq_completion(messages: list, model: str = None) -> str:
if model is None:
model = os.getenv("GROQ_MODEL", "llama3-70b-8192")
max_retries = len(key_manager.keys)
last_error = None
for _ in range(max_retries):
try:
api_key = key_manager.get_next_key()
client = AsyncGroq(api_key=api_key)
response = await client.chat.completions.create(
messages=messages,
model=model,
temperature=0.7,
)
return response.choices[0].message.content
except Exception as e:
logger.warning(f"Error using key: {e}. Retrying with next key...")
last_error = e
continue
raise Exception(f"All API keys exhausted or failed. Last error: {last_error}")