Skip to content

Commit a8c7af5

Browse files
recursive self improvement
1 parent 2579d40 commit a8c7af5

2 files changed

Lines changed: 16 additions & 15 deletions

File tree

.github/scripts/improve.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,17 @@
2929
MODEL = os.environ.get("IMPROVE_MODEL", "qwen2.5-coder:1.5b")
3030
OLLAMA_URL = os.environ.get("OLLAMA_URL", "http://127.0.0.1:11434")
3131

32-
# Trimming budgets. Generous now that we give the model a big context window;
33-
# still bounded so we never blow past it entirely.
34-
MAX_FILE_BYTES = int(os.environ.get("IMPROVE_MAX_FILE_BYTES", "12000"))
35-
MAX_TOTAL_SRC_BYTES = int(os.environ.get("IMPROVE_MAX_TOTAL_SRC_BYTES", "48000"))
36-
MAX_ISSUES = int(os.environ.get("IMPROVE_MAX_ISSUES", "8"))
37-
MAX_ISSUE_BODY_CHARS = int(os.environ.get("IMPROVE_MAX_ISSUE_BODY_CHARS", "1200"))
38-
# Output size: num_predict caps generated tokens; num_ctx is total room.
39-
NUM_PREDICT = int(os.environ.get("IMPROVE_NUM_PREDICT", "8192"))
40-
NUM_CTX = int(os.environ.get("IMPROVE_NUM_CTX", "16384"))
41-
REQUEST_TIMEOUT = int(os.environ.get("IMPROVE_TIMEOUT", "3000"))
32+
# Trimming budgets — a happy medium: enough context to be interesting without
33+
# making CPU prompt-processing crawl.
34+
MAX_FILE_BYTES = int(os.environ.get("IMPROVE_MAX_FILE_BYTES", "10000"))
35+
MAX_TOTAL_SRC_BYTES = int(os.environ.get("IMPROVE_MAX_TOTAL_SRC_BYTES", "32000"))
36+
MAX_ISSUES = int(os.environ.get("IMPROVE_MAX_ISSUES", "6"))
37+
MAX_ISSUE_BODY_CHARS = int(os.environ.get("IMPROVE_MAX_ISSUE_BODY_CHARS", "1000"))
38+
# Output size: num_predict caps generated tokens (the main driver of runtime on
39+
# CPU); num_ctx is total room. ~3k tokens ≈ a hearty file or two, not a novella.
40+
NUM_PREDICT = int(os.environ.get("IMPROVE_NUM_PREDICT", "3072"))
41+
NUM_CTX = int(os.environ.get("IMPROVE_NUM_CTX", "8192"))
42+
REQUEST_TIMEOUT = int(os.environ.get("IMPROVE_TIMEOUT", "1500"))
4243

4344
TEXT_EXTENSIONS = {
4445
".py", ".md", ".txt", ".rst", ".toml", ".cfg", ".ini", ".json", ".yaml",
@@ -172,11 +173,11 @@ def call_model(prompt: str, *, num_predict=None, temperature=None) -> str:
172173
"options": {
173174
# Crank the heat: we WANT chaotic, surprising, ambitious, VERBOSE
174175
# output. Inspector Zestworth is the cool breeze that tames it.
175-
"temperature": float(os.environ.get("IMPROVE_TEMPERATURE", "1.5"))
176+
"temperature": float(os.environ.get("IMPROVE_TEMPERATURE", "1.1"))
176177
if temperature is None else temperature,
177-
"top_p": float(os.environ.get("IMPROVE_TOP_P", "0.99")),
178-
"top_k": int(os.environ.get("IMPROVE_TOP_K", "0")), # 0 = no cap, full vocab
179-
"min_p": float(os.environ.get("IMPROVE_MIN_P", "0.02")), # floor to avoid pure noise
178+
"top_p": float(os.environ.get("IMPROVE_TOP_P", "0.95")),
179+
"top_k": int(os.environ.get("IMPROVE_TOP_K", "80")), # tame the long tail
180+
"min_p": float(os.environ.get("IMPROVE_MIN_P", "0.03")), # floor to avoid pure noise
180181
# Discourage stopping early / repeating, so it keeps building.
181182
"repeat_penalty": float(os.environ.get("IMPROVE_REPEAT_PENALTY", "1.1")),
182183
"num_predict": NUM_PREDICT if num_predict is None else num_predict,

.github/workflows/improve.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ concurrency:
2828
jobs:
2929
improve:
3030
runs-on: ubuntu-latest
31-
timeout-minutes: 60
31+
timeout-minutes: 40
3232
env:
3333
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3434
IMPROVE_MODEL: ${{ github.event.inputs.model || 'qwen2.5-coder:1.5b' }}

0 commit comments

Comments
 (0)