okr/api.py
Khanh Dinh 6f09b9fe0b added parameters to the proposer
started to refactor code to make it cleaner
2025-01-03 15:01:47 +01:00

42 lines
1.3 KiB
Python

import requests
import os
import streamlit as st
from dotenv import load_dotenv
from settings import load_settings
from utils import construct_prompt
#from config import SYSTEM_PROMPT, PROMPT_TEMPLATE
from config.config import INPUT_EXAMPLE, SYSTEM_PROMPT, PROMPT_TEMPLATE
# Load API key from .env file
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
st.error("API key not found. Please set OPENAI_API_KEY in your .env file.")
st.stop()
api_url = "https://genai.dev.odp.lhgroup.de/openai/deployments/gpt-4-turbo/chat/completions?api-version=2023-07-01-preview"
def fetch_okrs(user_input: str, okr_cycle: str = 'JAN 25 to APR 25', num_key_results: int=3):
user_prompt = construct_prompt(
prompt_template=PROMPT_TEMPLATE,
user_input=user_input,
okr_cycle=okr_cycle,
num_key_results=num_key_results)
headers = {"api-key": api_key, "Content-Type": "application/json"}
body = {
"messages": [
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": user_prompt}
]
}
try:
response = requests.post(url=api_url, headers=headers, json=body)
response.raise_for_status()
return response.json()
except Exception as e:
st.error(f"Error fetching data from API: {e}")
return None