fixed the issue so that custom ideas can be provided as input
This commit is contained in:
parent
e2f61da273
commit
d59ebdc4c3
25
api.py
25
api.py
@ -5,6 +5,7 @@ from dotenv import load_dotenv
|
|||||||
from settings import load_settings
|
from settings import load_settings
|
||||||
from utils import construct_prompt
|
from utils import construct_prompt
|
||||||
|
|
||||||
|
from config import INPUT_TEMPLATE, SYSTEM_PROMPT, PROMPT_TEMPLATE
|
||||||
|
|
||||||
# Load API key from .env file
|
# Load API key from .env file
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
@ -17,21 +18,25 @@ if not api_key:
|
|||||||
api_url = "https://genai.dev.odp.lhgroup.de/openai/deployments/gpt-4-turbo/chat/completions?api-version=2023-07-01-preview"
|
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):
|
def fetch_okrs(user_input: str):
|
||||||
settings = load_settings()
|
#settings = load_settings()
|
||||||
|
|
||||||
system_prompt = settings["system_prompt"]
|
#system_prompt = settings["system_prompt"]
|
||||||
input_template = settings["input_template"]
|
#input_template = settings["input_template"]
|
||||||
|
|
||||||
user_prompt = construct_prompt(prompt_template=input_template, user_input=user_input)
|
print("fetch_okr-user_input:", user_input)
|
||||||
|
print("input_template:", INPUT_TEMPLATE)
|
||||||
|
user_prompt = construct_prompt(prompt_template=PROMPT_TEMPLATE, user_input=user_input)
|
||||||
|
|
||||||
print(user_prompt)
|
print("user_prompt:", user_prompt)
|
||||||
headers = {"api-key": api_key, "Content-Type": "application/json"}
|
headers = {"api-key": api_key, "Content-Type": "application/json"}
|
||||||
body = {
|
body = {
|
||||||
"messages": [
|
"messages": [
|
||||||
{"role": "system", "content": system_prompt},
|
{"role": "system", "content": SYSTEM_PROMPT},
|
||||||
{"role": "user", "content": user_prompt}
|
{"role": "user", "content": user_prompt}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
#print("system prompt:", system_prompt)
|
||||||
|
print("request body:", body)
|
||||||
try:
|
try:
|
||||||
response = requests.post(url=api_url, headers=headers, json=body)
|
response = requests.post(url=api_url, headers=headers, json=body)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
@ -41,7 +46,7 @@ def fetch_okrs(user_input: str):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
from config import INPUT_TEMPLATE
|
#from config import INPUT_TEMPLATE
|
||||||
result = fetch_okrs(user_input=INPUT_TEMPLATE)
|
#result = fetch_okrs(user_input=INPUT_TEMPLATE)
|
||||||
objective = result['choices'][0]['message']['content']
|
#objective = result['choices'][0]['message']['content']
|
||||||
print(type(objective))
|
#print(type(objective))
|
||||||
@ -83,6 +83,7 @@ The json could be structured like this:
|
|||||||
PROMPT_TEMPLATE = """
|
PROMPT_TEMPLATE = """
|
||||||
Please help us in defining proper OKRs.
|
Please help us in defining proper OKRs.
|
||||||
Here is what we have thought about and we would like to phrase an OKR with maximum 5 key results.
|
Here is what we have thought about and we would like to phrase an OKR with maximum 5 key results.
|
||||||
|
The next OKR cycle is from JAN 2025 till APR 2025.
|
||||||
|
|
||||||
this is the user input:
|
this is the user input:
|
||||||
{user_input}
|
{user_input}
|
||||||
|
|||||||
@ -16,6 +16,8 @@ def proposer_page():
|
|||||||
height=300,
|
height=300,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
print("user_input:", user_input)
|
||||||
|
|
||||||
generate_okrs_clicked = st.button("Generate OKR Proposal")
|
generate_okrs_clicked = st.button("Generate OKR Proposal")
|
||||||
#col1, col2 = st.columns([1, 1])
|
#col1, col2 = st.columns([1, 1])
|
||||||
#with col1:
|
#with col1:
|
||||||
@ -28,10 +30,12 @@ def proposer_page():
|
|||||||
if not user_input.strip():
|
if not user_input.strip():
|
||||||
st.warning("Please provide some input before generating OKRs.")
|
st.warning("Please provide some input before generating OKRs.")
|
||||||
else:
|
else:
|
||||||
|
#user_input = st.session_state.get("user_input")
|
||||||
with st.spinner("Generating OKRs..."):
|
with st.spinner("Generating OKRs..."):
|
||||||
# Construct prompt and call API
|
# Construct prompt and call API
|
||||||
#prompt = construct_prompt(prompt_template=PROMPT_TEMPLATE, user_input=user_input)
|
#prompt = construct_prompt(prompt_template=PROMPT_TEMPLATE, user_input=user_input)
|
||||||
response = fetch_okrs(user_input=user_input)
|
response = fetch_okrs(user_input=user_input)
|
||||||
|
#print("user_input:", user_input)
|
||||||
if response:
|
if response:
|
||||||
# Extract Objective and Key Results from response
|
# Extract Objective and Key Results from response
|
||||||
print(response)
|
print(response)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user