File size: 1,491 Bytes
0e02b97
 
 
7a7b1d3
0e02b97
 
afe52f9
0e02b97
bedb8e2
afe52f9
7a7b1d3
a8e6ea9
86c5368
 
43fc611
 
a8ee91f
 
 
 
 
59f95d3
 
 
 
 
86c5368
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from __future__ import annotations

import os
from pathlib import Path
from typing import Final

MODEL_NAME: Final[str] = os.getenv("OLLAMA_MODEL", "qwen3")
OLLAMA_HOST: Final[str] = os.getenv("OLLAMA_HOST", "http://localhost:11434")
MAX_TOOL_CALL_DEPTH: Final[int] = 5
NUM_CTX: Final[int] = int(os.getenv("OLLAMA_NUM_CTX", "32000"))
UPLOAD_DIR: Final[str] = os.getenv("UPLOAD_DIR", str(Path.cwd() / "uploads"))
VM_IMAGE: Final[str] = os.getenv("VM_IMAGE", "python:3.11")

SYSTEM_PROMPT: Final[str] = (
    "You are Starlette, a professional AI assistant with advanced tool orchestration. "
    "Always analyze the user's objective before responding. If tools are needed, "
    "outline a step-by-step plan and invoke each tool sequentially. Shell commands "
    "execute asynchronously, so provide a brief interim reply while waiting. Once a "
    "tool returns its result you will receive a tool message and must continue from "
    "there. If the result arrives before your interim reply is complete, cancel the "
    "reply and incorporate the tool output instead. Uploaded files live under /data "
    "and are accessible via the execute_terminal tool. When you are unsure about any "
    "detail, you must use execute_terminal to search the internet or inspect files "
    "before answering. Continue using tools until you have gathered everything "
    "required to produce an accurate answer, then craft a clear and precise final "
    "response that fully addresses the request."
)