diff --git a/backend/app.py b/backend/app.py index 27d6165..10842df 100644 --- a/backend/app.py +++ b/backend/app.py @@ -868,15 +868,22 @@ def _call_genai(gc: dict, message: str, history: list = None) -> str: chat_history.append(entry) chat_request.chat_history = chat_history else: - # ── Generic format (Meta Llama, Google, xAI) - exact chat_demo.py pattern ── + # ── Generic format (Meta Llama, Google, xAI, OpenAI) ── chat_request = oci.generative_ai_inference.models.GenericChatRequest() chat_request.api_format = oci.generative_ai_inference.models.BaseChatRequest.API_FORMAT_GENERIC - chat_request.max_tokens = int(gc.get("max_tokens", 6000)) + provider = model_info.get("provider", "") + is_openai = provider == "openai" + # OpenAI models use max_completion_tokens instead of max_tokens + # and do not support top_k + if is_openai: + chat_request.max_completion_tokens = int(gc.get("max_tokens", 6000)) + else: + chat_request.max_tokens = int(gc.get("max_tokens", 6000)) + chat_request.top_k = int(gc.get("top_k", 1)) chat_request.temperature = float(gc.get("temperature", 1)) chat_request.frequency_penalty = float(gc.get("frequency_penalty", 0)) chat_request.presence_penalty = float(gc.get("presence_penalty", 0)) chat_request.top_p = float(gc.get("top_p", 0.95)) - chat_request.top_k = int(gc.get("top_k", 1)) messages = [] if history: