| import os |
| from dotenv import load_dotenv |
| load_dotenv() |
| from ollama import chat |
| from groq import Groq |
| ENV = os.getenv("ENV") |
|
|
| if ENV == "production": |
| inference_client = Groq(api_key=os.environ.get("GROQ_INFERENCE_KEY")) |
|
|
| def llm(user_prompt: str, system_prompt: str = None) -> str: |
|
|
| messages = [] |
|
|
| if system_prompt: |
| messages.append({"role": "system", "content": system_prompt}) |
|
|
| messages.append({"role": "user", "content": user_prompt}) |
|
|
| if ENV == "local": |
| response = chat( |
| "llama3.2:3b", |
| messages=messages |
| ) |
| return response["message"]["content"] |
|
|
| elif ENV == "production": |
| response = inference_client.chat.completions.create( |
| messages=messages, |
| model="llama-3.3-70b-versatile" |
| ) |
| return response.choices[0].message.content |
|
|