Spaces:
Runtime error
Runtime error
| import os | |
| # from llama_index.llms.openllm import OpenLLM | |
| from llama_index.llms.nebius import NebiusLLM | |
| # ...existing environment variable loading logic... | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| LLM_PROVIDER = os.environ.get("LLM_PROVIDER", "openllm").lower() | |
| LLM_API_URL = os.environ.get("LLM_API_URL") | |
| LLM_API_KEY = os.environ.get("LLM_API_KEY") | |
| NEBIUS_API_KEY = os.environ.get("NEBIUS_API_KEY", "") | |
| OPENLLM_MODEL = os.environ.get("OPENLLM_MODEL") | |
| NEBIUS_MODEL = os.environ.get("NEBIUS_MODEL") | |
| if LLM_PROVIDER == "nebius": | |
| llm = NebiusLLM( | |
| api_key=NEBIUS_API_KEY, | |
| model=NEBIUS_MODEL | |
| ) | |
| else: | |
| pass | |
| # llm = OpenLLM( | |
| # model=OPENLLM_MODEL, | |
| # api_base=LLM_API_URL, | |
| # api_key=LLM_API_KEY, | |
| # max_new_tokens=2048, | |
| # temperature=0.7, | |
| # ) | |
| import re | |
| def call_llm_api(messages): | |
| """ | |
| Calls the LLM API endpoint with the conversation messages using OpenLLM or NebiusLLM. | |
| Args: | |
| messages (list): List of dicts with 'role' and 'content' for each message. | |
| Returns: | |
| str: The assistant's reply as a string. | |
| """ | |
| from llama_index.core.llms import ChatMessage | |
| chat_messages = [ChatMessage(role=m["role"], content=m["content"]) for m in messages] | |
| response = llm.chat(chat_messages) | |
| return response.message.content | |
| def is_stage_complete(llm_reply): | |
| """ | |
| Heuristic to determine if the current stage is complete based on LLM reply. | |
| Args: | |
| llm_reply (str): The assistant's reply. | |
| Returns: | |
| bool: True if the stage is considered complete, False otherwise. | |
| """ | |
| triggers = [ | |
| "stage complete", | |
| "let's move to the next stage", | |
| "moving to the next stage", | |
| "next stage", | |
| "you have completed this stage" | |
| ] | |
| return any(trigger in llm_reply.lower() for trigger in triggers) | |