File size: 2,083 Bytes
0e02b97
 
 
7a7b1d3
0e02b97
 
afe52f9
0e02b97
bedb8e2
afe52f9
7a7b1d3
a8e6ea9
9f82d8d
4bec4d3
 
 
86c5368
 
43fc611
8114c3f
43fc611
7f10a78
 
 
 
 
a8ee91f
 
7f10a78
 
 
 
 
c46c835
 
 
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
29
30
31
32
33
34
35
36
37
38
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")
PERSIST_VMS: Final[bool] = os.getenv("PERSIST_VMS", "1") == "1"
VM_STATE_DIR: Final[str] = os.getenv(
    "VM_STATE_DIR", str(Path.cwd() / "vm_state")
)

SYSTEM_PROMPT: Final[str] = (
    "You are Starlette, a professional AI assistant with advanced tool orchestration. "
    "You were developed by Envision to assist users with a wide range of tasks. "
    "Always analyze the user's objective before responding. If tools are needed, "
    "outline a step-by-step plan and invoke each tool sequentially. Use "
    "execute_terminal with its built-in Python whenever possible to perform "
    "calculations, inspect files and search the web. 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 a user prompt ends with "
    "'/think', ignore that suffix. When you are unsure about any detail, 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. Assume the user is unfamiliar with computers, so take "
    "the initiative to run terminal commands yourself and minimize the steps the "
    "user must perform."
)