Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ generated_hypotheses/
function_calling_results/
hypothesis_results/*
AG4/*
examples/
robin_output/

# Development Environment
.env
Expand Down Expand Up @@ -101,6 +103,7 @@ coverage.xml
.tox/
htmlcov/
scratchpad.ipynb
steps.ipynb

# Documentation
docs/_build/
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2025 FutureHouse
Copyright 2025 Edison Scientific

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ See our [blog](https://www.futurehouse.org/research-announcements/demonstrating-

- **Python:** Version 3.12 or higher.
- **API Keys:**
- `FUTUREHOUSE_API_KEY`: For accessing FutureHouse platform agents (Crow, Falcon).
- `EDISON_API_KEY`: For accessing Edison platform agents (Crow, Falcon).
- An API key for your chosen LLM provider (e.g., `OPENAI_API_KEY` if using OpenAI models). Robin uses LiteLLM, so it can support various providers.
- The "Finch" (data analysis) portion of this repo needs access to the FutureHouse platform closed beta. To request access, visit https://platform.futurehouse.org/profile, and use the "Rate Limit Increase" form to request access to Finch. Without access, all the hypothesis and experiment generation code can still be run.
- The "Finch" (data analysis) portion of this repo needs access to the Edison platform closed beta. To request access, visit https://platform.edisonscientific.com, and use the "Rate Limit Increase" form to request access to Finch. Without access, all the hypothesis and experiment generation code can still be run.

## Setup Instructions

Expand Down Expand Up @@ -49,7 +49,7 @@ See our [blog](https://www.futurehouse.org/research-announcements/demonstrating-
4. **Set API Keys:**
It's highly recommended to set your API keys as environment variables. Create a `.env` file in the `robin` directory:
```
FUTUREHOUSE_API_KEY="your_futurehouse_api_key_here"
EDISON_API_KEY="your_edison_api_key_here"
OPENAI_API_KEY="your_openai_api_key_here"
# etc. for other LLM providers
```
Expand All @@ -76,7 +76,7 @@ See our [blog](https://www.futurehouse.org/research-announcements/demonstrating-
config = RobinConfiguration(
disease_name="DISEASE_NAME", # <-- Customize the disease name here
# You can also explicitly set API keys here if not using environment variables:
# futurehouse_api_key="your_futurehouse_api_key_here"
# edison_api_key="your_edison_api_key_here"
)
```

Expand Down
5 changes: 3 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,10 @@ dependencies = [
"aiofiles",
"anthropic",
"choix",
"dm-tree>=0.1.9",
"edison_client",
"fhaviary",
"fhlmi",
"futurehouse_client>=0.3.19",
"openai>=1", # Pin to keep recent
"pandas>=2", # Pin to keep recent
"pydantic>=2", # Pin to keep recent
Expand Down Expand Up @@ -118,7 +119,7 @@ ignore_missing_imports = true
# Per-module configuration options
module = [
"choix",
"futurehouse_client.*",
"edison_client.*",
]

[tool.pylint]
Expand Down
6 changes: 3 additions & 3 deletions robin/analyses.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ async def data_analysis(

# Step 1: Gating, MFI and statistical analysis
analysis_step = Step(
name="job-futurehouse-data-analysis-crow-high",
name=configuration.agent_settings.data_analysis_agent,
prompt_template=analysis_prompt,
cot_prompt=False,
input_files={data_path: "flow_250508/"}, # change this to your input folder
Expand All @@ -65,7 +65,7 @@ async def data_analysis(

# Step 2: Consensus Analysis
consensus_step = Step(
name="job-futurehouse-data-analysis-crow-high",
name=configuration.agent_settings.data_analysis_agent,
prompt_template=consensus_prompt,
cot_prompt=False,
input_files={
Expand All @@ -80,7 +80,7 @@ async def data_analysis(

logger.info(
"View the final volcano plot at:"
f" https://platform.futurehouse.org/trajectories/{data_analyzer.results[consensus_step.step_id]['task_ids'][0]}"
f" https://platform.edisonscientific.com/trajectories/{data_analyzer.results[consensus_step.step_id]['task_ids'][0]}"
)

consensus_output_filename = consensus_step.output_files["consensus_results.csv"]
Expand Down
Loading