brestok's picture
update
4e7a19c
from typing import Literal
from idreamers.api.calculation.prompts import CalculationPrompts
from idreamers.api.calculation.schemas import PilotRequest
from idreamers.core.wrappers import openai_wrapper
@openai_wrapper(is_json=True, return_='score')
async def calculate_scores(data: PilotRequest, type_: Literal["business", "competitive", "supplier", "critical"]):
if type_ == "competitive":
prompt = CalculationPrompts.competitive
elif type_ == "supplier":
prompt = CalculationPrompts.supplier
elif type_ == "business":
prompt = CalculationPrompts.business
else:
prompt = CalculationPrompts.critical
if data.context:
data.context = f'\n\n**Context**:\n```\n{data.context}\n```'
messages = [
{
"role": "system",
"content": prompt
.replace("{supplier}", data.supplier)
.replace("{category}", data.category)
.replace("{buying_company}", data.buyingCompany)
.replace("{context}", data.context)
}
]
return messages