DataCoder-AI / llm_models.py
ncardian's picture
Update llm_models.py
e3684d1 verified
Raw
History Blame Contribute Delete
2.41 kB
import streamlit as st
import requests
from langchain.llms.base import LLM
from typing import Optional, List
import os
from execution_programs import *
# API key for llm model
GROQ_API_KEY = os.environ.get("GROQ_TOKENS")
class GroqLLM(LLM):
model: str = "meta-llama/llama-4-maverick-17b-128e-instruct"
temperature: float = 0.3
api_key: str = GROQ_API_KEY
@property
def _llm_type(self) -> str:
return "groq-llm"
def _call(self, prompt: str, stop: Optional[List[str]] = None) -> str:
headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json",
}
payload = {
"messages": [{"role": "user", "content": prompt}],
"model": self.model,
"temperature": self.temperature,
}
try:
response = requests.post(
"https://api.groq.com/openai/v1/chat/completions",
headers=headers,
json=payload
)
response.raise_for_status()
return response.json()["choices"][0]["message"]["content"]
except Exception as e:
st.error(f"Error calling Groq API: {str(e)}")
return "Sorry, there was an error processing your request."
class GroqTextLLM(LLM):
model: str = "deepseek-r1-distill-llama-70b"
temperature: float = 0.7
api_key: str = GROQ_API_KEY
@property
def _llm_type(self) -> str:
return "groq-text-llm"
def _call(self, prompt: str, stop: Optional[List[str]] = None) -> str:
headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json",
}
payload = {
"messages": [{"role": "user", "content": prompt}],
"model": self.model,
"temperature": self.temperature,
}
try:
response = requests.post(
"https://api.groq.com/openai/v1/chat/completions",
headers=headers,
json=payload
)
response.raise_for_status()
return response.json()["choices"][0]["message"]["content"]
except Exception as e:
st.error(f"Error calling Groq API: {str(e)}")
return "Sorry, there was an error processing your request."
# Initialize LLMs
code_llm = GroqLLM()
text_llm = GroqTextLLM()