geo_eval.py: evaluation + lightweight prompt meta-optimizationllm_client.py: OpenAI-compatible HTTP client (stdlib only)prompts/: prompt templates
OPENAI_API_KEY: requiredOPENAI_BASE_URL: optional (defaults tohttps://api.openai.com/v1)RANKER_MODEL: optional (defaultgpt-4o)REWRITER_MODEL: optional (defaultgpt-4o)META_MODEL: optional (defaultgpt-4o)
One JSON object per line:
query_id(string)query(string)candidates(array of 10 objects)id(string)title(string)description(string)
target_id(optional string). If missing, the script picks a random candidate.
python3 geo_eval.py evaluate --dataset /absolute/path/to/dataset.jsonlpython3 geo_eval.py optimize --train /absolute/path/to/train.jsonl --val /absolute/path/to/val.jsonl --iters 5This overwrites prompts/rewriter_user.txt with the best-on-validation prompt.