Skip to content

Commit 7d827b9

Browse files
strickvlclaude
andauthored
Add config requirements and environment variables (and fix broken links!) (#238)
* Sync config requirements with updated requirements.txt Remove openai dependency and add missing dependencies (zenml, exa-py, requests, anthropic) to match the updated requirements.txt file across all config files. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Add environment variables to config files and update README - Add docker environment variable placeholders to all config files for OPENROUTER_API_KEY, TAVILY_API_KEY, EXA_API_KEY, ANTHROPIC_API_KEY, and Langfuse credentials - Add cloud orchestrator configuration section to README explaining how to replace placeholder values with actual API keys for cloud deployments - Include security recommendation to use cloud provider secret management services 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Fix typo * Fix broken links * Replace hardcoded API key placeholders with environment variable substitution - Update all config files to use ${VARIABLE_NAME} syntax instead of "YOUR_VARIABLE_NAME" placeholders - Update README to reflect automatic environment variable pickup - Users no longer need to manually edit config files for cloud deployment 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Remove redundant zenml requirement from config files ZenML is the orchestration framework already running the pipeline, so it doesn't need to be installed as a dependency inside Docker containers. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]>
1 parent dc4efbe commit 7d827b9

File tree

34 files changed

+164
-76
lines changed

34 files changed

+164
-76
lines changed

credit-scorer/docs/guides/cloud_deployment.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## ☁️ Cloud Deployment
22

3-
CreditScorer supports storing artifacts remotely and executing pipelines on cloud infrastructure. For this example, we'll use AWS, but you can use any cloud provider you want. You can also refer to the [AWS Integration Guide](https://docs.zenml.io/how-to/popular-integrations/aws-guide) for detailed instructions.
3+
CreditScorer supports storing artifacts remotely and executing pipelines on cloud infrastructure. For this example, we'll use AWS, but you can use any cloud provider you want. You can also refer to the [AWS Integration Guide](https://docs.zenml.io/stacks/popular-stacks/aws-guide) for detailed instructions.
44

55
### AWS Setup
66

@@ -75,6 +75,6 @@ Similar setup processes can be followed for other cloud providers:
7575

7676
For detailed configuration options for these providers, refer to the ZenML documentation:
7777

78-
- [GCP Integration Guide](https://docs.zenml.io/how-to/popular-integrations/gcp-guide)
79-
- [Azure Integration Guide](https://docs.zenml.io/how-to/popular-integrations/azure-guide)
80-
- [Kubernetes Integration Guide](https://docs.zenml.io/how-to/popular-integrations/kubernetes)
78+
- [GCP Integration Guide](https://docs.zenml.io/stacks/popular-stacks/gcp-guide)
79+
- [Azure Integration Guide](https://docs.zenml.io/stacks/popular-stacks/azure-guide)
80+
- [Kubernetes Integration Guide](https://docs.zenml.io/stacks/popular-stacks/kubernetes)

databricks-production-qa-demo/steps/deployment/deployment_deploy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def deployment_deploy() -> Annotated[
4545
In this example, the step can be configured to use different input data.
4646
See the documentation for more information:
4747
48-
https://docs.zenml.io/how-to/pipeline-development/use-configuration-files
48+
https://docs.zenml.io/concepts/steps_and_pipelines/yaml_configuration
4949
5050
Args:
5151
dataset_inf: The inference dataset.

databricks-production-qa-demo/steps/etl/data_loader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def data_loader(
4444
In this example, the step can be configured with number of rows and logic
4545
to drop target column or not. See the documentation for more information:
4646
47-
https://docs.zenml.io/how-to/build-pipelines/use-pipeline-step-parameters
47+
https://docs.zenml.io/concepts/steps_and_pipelines#pipeline-parameterization
4848
4949
Args:
5050
is_inference: If `True` subset will be returned and target column

databricks-production-qa-demo/steps/etl/train_data_preprocessor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def train_data_preprocessor(
5252
columns and normalize numerical columns. See the documentation for more
5353
information:
5454
55-
https://docs.zenml.io/how-to/build-pipelines/use-pipeline-step-parameters
55+
https://docs.zenml.io/concepts/steps_and_pipelines#pipeline-parameterization
5656
5757
Args:
5858
dataset_trn: The train dataset.

databricks-production-qa-demo/steps/etl/train_data_splitter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def train_data_splitter(
4141
In this example, the step can be configured to use different test
4242
set sizes. See the documentation for more information:
4343
44-
https://docs.zenml.io/how-to/pipeline-development/use-configuration-files
44+
https://docs.zenml.io/concepts/steps_and_pipelines/yaml_configuration
4545
4646
Args:
4747
dataset: Dataset read from source.

databricks-production-qa-demo/steps/hp_tuning/hp_tuning_single_search.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def hp_tuning_single_search(
5050
to use different input datasets and also have a flag to fall back to default
5151
model architecture. See the documentation for more information:
5252
53-
https://docs.zenml.io/how-to/pipeline-development/use-configuration-files
53+
https://docs.zenml.io/concepts/steps_and_pipelines/yaml_configuration
5454
5555
Args:
5656
model_package: The package containing the model to use for hyperparameter tuning.

databricks-production-qa-demo/steps/inference/inference_predict.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def inference_predict(
4343
In this example, the step can be configured to use different input data.
4444
See the documentation for more information:
4545
46-
https://docs.zenml.io/how-to/pipeline-development/use-configuration-files
46+
https://docs.zenml.io/concepts/steps_and_pipelines/yaml_configuration
4747
4848
Args:
4949
dataset_inf: The inference dataset.

databricks-production-qa-demo/steps/promotion/compute_performance_metrics_on_current_data.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def compute_performance_metrics_on_current_data(
4444
and target environment stage for promotion.
4545
See the documentation for more information:
4646
47-
https://docs.zenml.io/how-to/pipeline-development/use-configuration-files
47+
https://docs.zenml.io/concepts/steps_and_pipelines/yaml_configuration
4848
4949
Args:
5050
dataset_tst: The test dataset.

databricks-production-qa-demo/steps/promotion/promote_with_metric_compare.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def promote_with_metric_compare(
4646
and target environment stage for promotion.
4747
See the documentation for more information:
4848
49-
https://docs.zenml.io/how-to/pipeline-development/use-configuration-files
49+
https://docs.zenml.io/concepts/steps_and_pipelines/yaml_configuration
5050
5151
Args:
5252
latest_metric: Recently trained model metric results.

databricks-production-qa-demo/steps/training/model_trainer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def model_trainer(
7272
hyperparameters to the model constructor. See the documentation for more
7373
information:
7474
75-
https://docs.zenml.io/how-to/pipeline-development/use-configuration-files
75+
https://docs.zenml.io/concepts/steps_and_pipelines/yaml_configuration
7676
7777
Args:
7878
dataset_trn: The preprocessed train dataset.

deep_research/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,22 @@ This pipeline can integrate with:
632632
- **Alerting Systems**: Schedule research on key topics and receive regular reports
633633
- **Other ZenML Pipelines**: Chain with downstream analysis or processing
634634

635+
## ☁️ Cloud Orchestrator Configuration
636+
637+
When running the pipeline with a cloud orchestrator (like Kubernetes, AWS SageMaker, etc.), the configuration files automatically use environment variable substitution to pick up your API keys from the environment.
638+
639+
The configuration files in `configs/` use environment variable substitution like:
640+
```yaml
641+
settings:
642+
docker:
643+
environment:
644+
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY}
645+
TAVILY_API_KEY: ${TAVILY_API_KEY}
646+
# ... other keys
647+
```
648+
649+
Simply ensure your environment variables are set in your orchestrator environment, and the pipeline will automatically pick them up. For security, consider using your cloud provider's secret management services (AWS Secrets Manager, Azure Key Vault, etc.) to inject these environment variables into your orchestrator runtime.
650+
635651
## 📄 License
636652

637653
This project is licensed under the Apache License 2.0.

deep_research/configs/balanced_research.yaml

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,57 +23,68 @@ langfuse_project_name: "deep-research"
2323
# Research parameters for balanced research
2424
parameters:
2525
query: "Default research query"
26-
26+
2727
steps:
2828
initial_query_decomposition_step:
2929
parameters:
3030
llm_model: "sambanova/DeepSeek-R1-Distill-Llama-70B"
31-
max_sub_questions: 10 # Balanced number of sub-questions
32-
31+
max_sub_questions: 10 # Balanced number of sub-questions
32+
3333
process_sub_question_step:
3434
parameters:
3535
llm_model_search: "sambanova/Meta-Llama-3.3-70B-Instruct"
3636
llm_model_synthesis: "sambanova/DeepSeek-R1-Distill-Llama-70B"
37-
cap_search_length: 20000 # Standard cap for search length
38-
37+
cap_search_length: 20000 # Standard cap for search length
38+
3939
cross_viewpoint_analysis_step:
4040
parameters:
4141
llm_model: "sambanova/DeepSeek-R1-Distill-Llama-70B"
42-
viewpoint_categories:
43-
[
42+
viewpoint_categories: [
4443
"scientific",
4544
"political",
4645
"economic",
4746
"social",
4847
"ethical",
4948
"historical",
50-
] # Standard viewpoints
51-
49+
] # Standard viewpoints
50+
5251
generate_reflection_step:
5352
parameters:
5453
llm_model: "sambanova/DeepSeek-R1-Distill-Llama-70B"
55-
54+
5655
get_research_approval_step:
5756
parameters:
58-
timeout: 3600 # 1 hour timeout
59-
max_queries: 2 # Moderate additional queries
60-
57+
timeout: 3600 # 1 hour timeout
58+
max_queries: 2 # Moderate additional queries
59+
6160
execute_approved_searches_step:
6261
parameters:
6362
llm_model: "sambanova/Meta-Llama-3.3-70B-Instruct"
6463
cap_search_length: 20000
65-
64+
6665
pydantic_final_report_step:
6766
parameters:
6867
llm_model: "sambanova/DeepSeek-R1-Distill-Llama-70B"
69-
68+
7069
# Environment settings
7170
settings:
7271
docker:
7372
requirements:
74-
- openai>=1.0.0
7573
- tavily-python>=0.2.8
74+
- exa-py>=1.0.0
7675
- PyYAML>=6.0
7776
- click>=8.0.0
7877
- pydantic>=2.0.0
79-
- typing_extensions>=4.0.0
78+
- typing_extensions>=4.0.0
79+
- requests
80+
- anthropic>=0.52.2
81+
- litellm==1.69.1
82+
- langfuse==2.60.8
83+
environment:
84+
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY}
85+
TAVILY_API_KEY: ${TAVILY_API_KEY}
86+
EXA_API_KEY: ${EXA_API_KEY}
87+
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
88+
LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY}
89+
LANGFUSE_SECRET_KEY: ${LANGFUSE_SECRET_KEY}
90+
LANGFUSE_HOST: ${LANGFUSE_HOST}

deep_research/configs/deep_research.yaml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,21 @@ steps:
7373
settings:
7474
docker:
7575
requirements:
76-
- openai>=1.0.0
7776
- tavily-python>=0.2.8
77+
- exa-py>=1.0.0
7878
- PyYAML>=6.0
7979
- click>=8.0.0
8080
- pydantic>=2.0.0
81-
- typing_extensions>=4.0.0
81+
- typing_extensions>=4.0.0
82+
- requests
83+
- anthropic>=0.52.2
84+
- litellm==1.69.1
85+
- langfuse==2.60.8
86+
environment:
87+
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY}
88+
TAVILY_API_KEY: ${TAVILY_API_KEY}
89+
EXA_API_KEY: ${EXA_API_KEY}
90+
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
91+
LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY}
92+
LANGFUSE_SECRET_KEY: ${LANGFUSE_SECRET_KEY}
93+
LANGFUSE_HOST: ${LANGFUSE_HOST}

deep_research/configs/enhanced_research.yaml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,21 @@ steps:
6363
settings:
6464
docker:
6565
requirements:
66-
- openai>=1.0.0
6766
- tavily-python>=0.2.8
67+
- exa-py>=1.0.0
6868
- PyYAML>=6.0
6969
- click>=8.0.0
7070
- pydantic>=2.0.0
7171
- typing_extensions>=4.0.0
72+
- requests
73+
- anthropic>=0.52.2
74+
- litellm==1.69.1
75+
- langfuse==2.60.8
76+
environment:
77+
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY}
78+
TAVILY_API_KEY: ${TAVILY_API_KEY}
79+
EXA_API_KEY: ${EXA_API_KEY}
80+
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
81+
LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY}
82+
LANGFUSE_SECRET_KEY: ${LANGFUSE_SECRET_KEY}
83+
LANGFUSE_HOST: ${LANGFUSE_HOST}

deep_research/configs/enhanced_research_with_approval.yaml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,21 @@ steps:
6969
settings:
7070
docker:
7171
requirements:
72-
- openai>=1.0.0
7372
- tavily-python>=0.2.8
73+
- exa-py>=1.0.0
7474
- PyYAML>=6.0
7575
- click>=8.0.0
7676
- pydantic>=2.0.0
77-
- typing_extensions>=4.0.0
77+
- typing_extensions>=4.0.0
78+
- requests
79+
- anthropic>=0.52.2
80+
- litellm==1.69.1
81+
- langfuse==2.60.8
82+
environment:
83+
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY}
84+
TAVILY_API_KEY: ${TAVILY_API_KEY}
85+
EXA_API_KEY: ${EXA_API_KEY}
86+
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
87+
LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY}
88+
LANGFUSE_SECRET_KEY: ${LANGFUSE_SECRET_KEY}
89+
LANGFUSE_HOST: ${LANGFUSE_HOST}

deep_research/configs/quick_research.yaml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,21 @@ steps:
5151
settings:
5252
docker:
5353
requirements:
54-
- openai>=1.0.0
5554
- tavily-python>=0.2.8
55+
- exa-py>=1.0.0
5656
- PyYAML>=6.0
5757
- click>=8.0.0
5858
- pydantic>=2.0.0
5959
- typing_extensions>=4.0.0
60+
- requests
61+
- anthropic>=0.52.2
62+
- litellm==1.69.1
63+
- langfuse==2.60.8
64+
environment:
65+
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY}
66+
TAVILY_API_KEY: ${TAVILY_API_KEY}
67+
EXA_API_KEY: ${EXA_API_KEY}
68+
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
69+
LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY}
70+
LANGFUSE_SECRET_KEY: ${LANGFUSE_SECRET_KEY}
71+
LANGFUSE_HOST: ${LANGFUSE_HOST}

deep_research/configs/rapid_research.yaml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,21 @@ steps:
5151
settings:
5252
docker:
5353
requirements:
54-
- openai>=1.0.0
5554
- tavily-python>=0.2.8
55+
- exa-py>=1.0.0
5656
- PyYAML>=6.0
5757
- click>=8.0.0
5858
- pydantic>=2.0.0
5959
- typing_extensions>=4.0.0
60+
- requests
61+
- anthropic>=0.52.2
62+
- litellm==1.69.1
63+
- langfuse==2.60.8
64+
environment:
65+
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY}
66+
TAVILY_API_KEY: ${TAVILY_API_KEY}
67+
EXA_API_KEY: ${EXA_API_KEY}
68+
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
69+
LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY}
70+
LANGFUSE_SECRET_KEY: ${LANGFUSE_SECRET_KEY}
71+
LANGFUSE_HOST: ${LANGFUSE_HOST}

end-to-end-computer-vision/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ zenml login <INSERT_ZENML_URL_HERE>
6969
We will use GCP in the commands listed below, but it will work for other cloud
7070
providers.
7171

72-
1) Follow our guide to set up your credentials for GCP [here](https://docs.zenml.io/how-to/auth-management/gcp-service-connector)
72+
1) Follow our guide to set up your credentials for GCP [here](https://docs.zenml.io/stacks/service-connectors/connector-types/gcp-service-connector)
7373
2) Set up a bucket in GCP to persist your training data
7474
3) Set up a bucket to use as artifact store within ZenML
7575
Learn how to set up a GCP artifact store stack component within ZenML

eurorate-predictor/README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,7 @@ output "zenml_stack_name" {
9292
}
9393
```
9494
To learn more about the terraform script, read the
95-
[ZenML documentation.](https://docs.zenml.io/how-to/
96-
stack-deployment/deploy-a-cloud-stack-with-terraform) or
95+
[ZenML documentation.](https://docs.zenml.io/stacks/deployment/deploy-a-cloud-stack-with-terraform) or
9796
see
9897
the [Terraform registry](https://registry.terraform.io/
9998
modules/zenml-io/zenml-stack).
@@ -163,4 +162,6 @@ For detailed documentation on using ZenML to build your own MLOps pipelines, ple
163162

164163
## 🔄 Continuous Improvement
165164

166-
EuroRate Predictor is designed for continuous improvement of your interest rate forecasts. As new ECB data becomes available, simply re-run the pipelines to generate updated predictions.
165+
EuroRate Predictor is designed for continuous improvement of your interest rate
166+
forecasts. As new ECB data becomes available, simply re-run the pipelines to
167+
generate updated predictions.

huggingface-sagemaker/steps/promotion/promote_metric_compare_promoter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def promote_metric_compare_promoter(
4848
In this example, the step can be configured to use different input data.
4949
See the documentation for more information:
5050
51-
https://docs.zenml.io/how-to/pipeline-development/use-configuration-files
51+
https://docs.zenml.io/concepts/steps_and_pipelines/yaml_configuration
5252
5353
Args:
5454
latest_metrics: Recently trained model metrics results.

huggingface-sagemaker/steps/tokenizer_loader/tokenizer_loader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def tokenizer_loader(
4646
For more information on how to configure steps in a pipeline, refer to the
4747
following documentation:
4848
49-
https://docs.zenml.io/how-to/pipeline-development/use-configuration-files
49+
https://docs.zenml.io/concepts/steps_and_pipelines/yaml_configuration
5050
5151
Args:
5252
lower_case: A boolean value indicating whether to convert the input text to

0 commit comments

Comments
 (0)