|
29 | 29 | MODEL = os.environ.get("IMPROVE_MODEL", "qwen2.5-coder:1.5b") |
30 | 30 | OLLAMA_URL = os.environ.get("OLLAMA_URL", "http://127.0.0.1:11434") |
31 | 31 |
|
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")) |
42 | 43 |
|
43 | 44 | TEXT_EXTENSIONS = { |
44 | 45 | ".py", ".md", ".txt", ".rst", ".toml", ".cfg", ".ini", ".json", ".yaml", |
@@ -172,11 +173,11 @@ def call_model(prompt: str, *, num_predict=None, temperature=None) -> str: |
172 | 173 | "options": { |
173 | 174 | # Crank the heat: we WANT chaotic, surprising, ambitious, VERBOSE |
174 | 175 | # 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")) |
176 | 177 | 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 |
180 | 181 | # Discourage stopping early / repeating, so it keeps building. |
181 | 182 | "repeat_penalty": float(os.environ.get("IMPROVE_REPEAT_PENALTY", "1.1")), |
182 | 183 | "num_predict": NUM_PREDICT if num_predict is None else num_predict, |
|
0 commit comments