-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration
One function, four providers, no config files.
Reveilio stores a single process-global ReveilioConfig object. You set it with reveilio.configure(...), and every other call reads from it. There is no .reveilio.yaml, no Settings class, and no dependency injection.
If you never call configure() but an environment variable such as GEMINI_API_KEY or OPENAI_API_KEY is set, reveilio auto-configures on first use. An explicit configure() call always overrides environment values.
reveilio.configure(
provider="gemini",
api_key="AIza...", # or leave out and set GEMINI_API_KEY
model="gemini-2.5-flash", # optional; default
)Environment fallback: GEMINI_API_KEY or GOOGLE_API_KEY.
reveilio.configure(
provider="openai",
api_key="sk-...", # or OPENAI_API_KEY env var
model="gpt-4o-mini", # or gpt-4o, gpt-4-turbo, etc.
)Any chat-completions-compatible model ID your account has access to is supported.
Azure requires three additional values: endpoint, deployment name, and (optionally) API version. Note that the model name is the deployment name you configured in the Azure portal.
reveilio.configure(
provider="azure",
api_key="...", # AZURE_OPENAI_API_KEY env var
azure_endpoint="https://my-rsrc.openai.azure.com",
azure_deployment="gpt-4o", # deployment name, not model name
azure_api_version="2024-02-15-preview", # optional
)Environment fallbacks: AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_DEPLOYMENT, AZURE_OPENAI_API_VERSION.
reveilio.configure(
provider="ollama",
base_url="http://localhost:11434", # default
model="llama3.2", # or any model you have pulled
)No API key required. Environment fallback: OLLAMA_BASE_URL. Run ollama pull llama3.2 (or your chosen model) before invoking reveilio.
⚠️ Note: smaller local models sometimes return JSON that does not match the schema exactly. Reveilio catches these and fills in safe defaults, but scores will be less reliable than those produced by a hosted frontier model.
Default weights sum to 1.0 and reflect a general-purpose hiring rubric:
| Dimension | Default weight |
|---|---|
skills |
20% |
semantic_skills |
20% |
experience |
25% |
education |
15% |
certifications |
10% |
soft_skills |
5% |
domain_relevance |
5% |
Hiring for a compliance role? Increase certifications. Hiring for a research lab? Increase education. Pass a custom weights dictionary to configure():
reveilio.configure(
provider="openai",
api_key="sk-...",
weights={
"skills": 0.30,
"semantic_skills": 0.20,
"experience": 0.25,
"education": 0.05,
"certifications": 0.15,
"soft_skills": 0.03,
"domain_relevance": 0.02,
},
)The prompt sent to the LLM includes these weights verbatim so the model knows what you are optimizing for.
Call configure() again. The most recent call wins.
reveilio.configure(provider="gemini", api_key="AIza...")
quick_pass = reveilio.analyze_folder("./resumes", jd)
reveilio.configure(provider="openai", api_key="sk-...", model="gpt-4o")
deep_pass = reveilio.analyze_folder("./resumes", jd)Continue to Job descriptions.
v0.1.1 · docs
Getting started
Core features
- Configuration & providers
- Job descriptions
- Resume parsing
- Scoring & analysis
- PDF reports
- Database storage
Using reveilio
Deployment
Deep dive