@synsci/cli-darwin-x64 1.1.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/skills/accelerate/SKILL.md +332 -0
- package/bin/skills/accelerate/references/custom-plugins.md +453 -0
- package/bin/skills/accelerate/references/megatron-integration.md +489 -0
- package/bin/skills/accelerate/references/performance.md +525 -0
- package/bin/skills/audiocraft/SKILL.md +564 -0
- package/bin/skills/audiocraft/references/advanced-usage.md +666 -0
- package/bin/skills/audiocraft/references/troubleshooting.md +504 -0
- package/bin/skills/autogpt/SKILL.md +403 -0
- package/bin/skills/autogpt/references/advanced-usage.md +535 -0
- package/bin/skills/autogpt/references/troubleshooting.md +420 -0
- package/bin/skills/awq/SKILL.md +310 -0
- package/bin/skills/awq/references/advanced-usage.md +324 -0
- package/bin/skills/awq/references/troubleshooting.md +344 -0
- package/bin/skills/axolotl/SKILL.md +158 -0
- package/bin/skills/axolotl/references/api.md +5548 -0
- package/bin/skills/axolotl/references/dataset-formats.md +1029 -0
- package/bin/skills/axolotl/references/index.md +15 -0
- package/bin/skills/axolotl/references/other.md +3563 -0
- package/bin/skills/bigcode-evaluation-harness/SKILL.md +405 -0
- package/bin/skills/bigcode-evaluation-harness/references/benchmarks.md +393 -0
- package/bin/skills/bigcode-evaluation-harness/references/custom-tasks.md +424 -0
- package/bin/skills/bigcode-evaluation-harness/references/issues.md +394 -0
- package/bin/skills/bitsandbytes/SKILL.md +411 -0
- package/bin/skills/bitsandbytes/references/memory-optimization.md +521 -0
- package/bin/skills/bitsandbytes/references/qlora-training.md +521 -0
- package/bin/skills/bitsandbytes/references/quantization-formats.md +447 -0
- package/bin/skills/blip-2/SKILL.md +564 -0
- package/bin/skills/blip-2/references/advanced-usage.md +680 -0
- package/bin/skills/blip-2/references/troubleshooting.md +526 -0
- package/bin/skills/chroma/SKILL.md +406 -0
- package/bin/skills/chroma/references/integration.md +38 -0
- package/bin/skills/clip/SKILL.md +253 -0
- package/bin/skills/clip/references/applications.md +207 -0
- package/bin/skills/constitutional-ai/SKILL.md +290 -0
- package/bin/skills/crewai/SKILL.md +498 -0
- package/bin/skills/crewai/references/flows.md +438 -0
- package/bin/skills/crewai/references/tools.md +429 -0
- package/bin/skills/crewai/references/troubleshooting.md +480 -0
- package/bin/skills/deepspeed/SKILL.md +141 -0
- package/bin/skills/deepspeed/references/08.md +17 -0
- package/bin/skills/deepspeed/references/09.md +173 -0
- package/bin/skills/deepspeed/references/2020.md +378 -0
- package/bin/skills/deepspeed/references/2023.md +279 -0
- package/bin/skills/deepspeed/references/assets.md +179 -0
- package/bin/skills/deepspeed/references/index.md +35 -0
- package/bin/skills/deepspeed/references/mii.md +118 -0
- package/bin/skills/deepspeed/references/other.md +1191 -0
- package/bin/skills/deepspeed/references/tutorials.md +6554 -0
- package/bin/skills/dspy/SKILL.md +590 -0
- package/bin/skills/dspy/references/examples.md +663 -0
- package/bin/skills/dspy/references/modules.md +475 -0
- package/bin/skills/dspy/references/optimizers.md +566 -0
- package/bin/skills/faiss/SKILL.md +221 -0
- package/bin/skills/faiss/references/index_types.md +280 -0
- package/bin/skills/flash-attention/SKILL.md +367 -0
- package/bin/skills/flash-attention/references/benchmarks.md +215 -0
- package/bin/skills/flash-attention/references/transformers-integration.md +293 -0
- package/bin/skills/gguf/SKILL.md +427 -0
- package/bin/skills/gguf/references/advanced-usage.md +504 -0
- package/bin/skills/gguf/references/troubleshooting.md +442 -0
- package/bin/skills/gptq/SKILL.md +450 -0
- package/bin/skills/gptq/references/calibration.md +337 -0
- package/bin/skills/gptq/references/integration.md +129 -0
- package/bin/skills/gptq/references/troubleshooting.md +95 -0
- package/bin/skills/grpo-rl-training/README.md +97 -0
- package/bin/skills/grpo-rl-training/SKILL.md +572 -0
- package/bin/skills/grpo-rl-training/examples/reward_functions_library.py +393 -0
- package/bin/skills/grpo-rl-training/templates/basic_grpo_training.py +228 -0
- package/bin/skills/guidance/SKILL.md +572 -0
- package/bin/skills/guidance/references/backends.md +554 -0
- package/bin/skills/guidance/references/constraints.md +674 -0
- package/bin/skills/guidance/references/examples.md +767 -0
- package/bin/skills/hqq/SKILL.md +445 -0
- package/bin/skills/hqq/references/advanced-usage.md +528 -0
- package/bin/skills/hqq/references/troubleshooting.md +503 -0
- package/bin/skills/hugging-face-cli/SKILL.md +191 -0
- package/bin/skills/hugging-face-cli/references/commands.md +954 -0
- package/bin/skills/hugging-face-cli/references/examples.md +374 -0
- package/bin/skills/hugging-face-datasets/SKILL.md +547 -0
- package/bin/skills/hugging-face-datasets/examples/diverse_training_examples.json +239 -0
- package/bin/skills/hugging-face-datasets/examples/system_prompt_template.txt +196 -0
- package/bin/skills/hugging-face-datasets/examples/training_examples.json +176 -0
- package/bin/skills/hugging-face-datasets/scripts/dataset_manager.py +522 -0
- package/bin/skills/hugging-face-datasets/scripts/sql_manager.py +844 -0
- package/bin/skills/hugging-face-datasets/templates/chat.json +55 -0
- package/bin/skills/hugging-face-datasets/templates/classification.json +62 -0
- package/bin/skills/hugging-face-datasets/templates/completion.json +51 -0
- package/bin/skills/hugging-face-datasets/templates/custom.json +75 -0
- package/bin/skills/hugging-face-datasets/templates/qa.json +54 -0
- package/bin/skills/hugging-face-datasets/templates/tabular.json +81 -0
- package/bin/skills/hugging-face-evaluation/SKILL.md +656 -0
- package/bin/skills/hugging-face-evaluation/examples/USAGE_EXAMPLES.md +382 -0
- package/bin/skills/hugging-face-evaluation/examples/artificial_analysis_to_hub.py +141 -0
- package/bin/skills/hugging-face-evaluation/examples/example_readme_tables.md +135 -0
- package/bin/skills/hugging-face-evaluation/examples/metric_mapping.json +50 -0
- package/bin/skills/hugging-face-evaluation/requirements.txt +20 -0
- package/bin/skills/hugging-face-evaluation/scripts/evaluation_manager.py +1374 -0
- package/bin/skills/hugging-face-evaluation/scripts/inspect_eval_uv.py +104 -0
- package/bin/skills/hugging-face-evaluation/scripts/inspect_vllm_uv.py +317 -0
- package/bin/skills/hugging-face-evaluation/scripts/lighteval_vllm_uv.py +303 -0
- package/bin/skills/hugging-face-evaluation/scripts/run_eval_job.py +98 -0
- package/bin/skills/hugging-face-evaluation/scripts/run_vllm_eval_job.py +331 -0
- package/bin/skills/hugging-face-evaluation/scripts/test_extraction.py +206 -0
- package/bin/skills/hugging-face-jobs/SKILL.md +1041 -0
- package/bin/skills/hugging-face-jobs/index.html +216 -0
- package/bin/skills/hugging-face-jobs/references/hardware_guide.md +336 -0
- package/bin/skills/hugging-face-jobs/references/hub_saving.md +352 -0
- package/bin/skills/hugging-face-jobs/references/token_usage.md +546 -0
- package/bin/skills/hugging-face-jobs/references/troubleshooting.md +475 -0
- package/bin/skills/hugging-face-jobs/scripts/cot-self-instruct.py +718 -0
- package/bin/skills/hugging-face-jobs/scripts/finepdfs-stats.py +546 -0
- package/bin/skills/hugging-face-jobs/scripts/generate-responses.py +587 -0
- package/bin/skills/hugging-face-model-trainer/SKILL.md +711 -0
- package/bin/skills/hugging-face-model-trainer/references/gguf_conversion.md +296 -0
- package/bin/skills/hugging-face-model-trainer/references/hardware_guide.md +283 -0
- package/bin/skills/hugging-face-model-trainer/references/hub_saving.md +364 -0
- package/bin/skills/hugging-face-model-trainer/references/reliability_principles.md +371 -0
- package/bin/skills/hugging-face-model-trainer/references/trackio_guide.md +189 -0
- package/bin/skills/hugging-face-model-trainer/references/training_methods.md +150 -0
- package/bin/skills/hugging-face-model-trainer/references/training_patterns.md +203 -0
- package/bin/skills/hugging-face-model-trainer/references/troubleshooting.md +282 -0
- package/bin/skills/hugging-face-model-trainer/scripts/convert_to_gguf.py +424 -0
- package/bin/skills/hugging-face-model-trainer/scripts/dataset_inspector.py +417 -0
- package/bin/skills/hugging-face-model-trainer/scripts/estimate_cost.py +150 -0
- package/bin/skills/hugging-face-model-trainer/scripts/train_dpo_example.py +106 -0
- package/bin/skills/hugging-face-model-trainer/scripts/train_grpo_example.py +89 -0
- package/bin/skills/hugging-face-model-trainer/scripts/train_sft_example.py +122 -0
- package/bin/skills/hugging-face-paper-publisher/SKILL.md +627 -0
- package/bin/skills/hugging-face-paper-publisher/examples/example_usage.md +327 -0
- package/bin/skills/hugging-face-paper-publisher/references/quick_reference.md +216 -0
- package/bin/skills/hugging-face-paper-publisher/scripts/paper_manager.py +508 -0
- package/bin/skills/hugging-face-paper-publisher/templates/arxiv.md +299 -0
- package/bin/skills/hugging-face-paper-publisher/templates/ml-report.md +358 -0
- package/bin/skills/hugging-face-paper-publisher/templates/modern.md +319 -0
- package/bin/skills/hugging-face-paper-publisher/templates/standard.md +201 -0
- package/bin/skills/hugging-face-tool-builder/SKILL.md +115 -0
- package/bin/skills/hugging-face-tool-builder/references/baseline_hf_api.py +57 -0
- package/bin/skills/hugging-face-tool-builder/references/baseline_hf_api.sh +40 -0
- package/bin/skills/hugging-face-tool-builder/references/baseline_hf_api.tsx +57 -0
- package/bin/skills/hugging-face-tool-builder/references/find_models_by_paper.sh +230 -0
- package/bin/skills/hugging-face-tool-builder/references/hf_enrich_models.sh +96 -0
- package/bin/skills/hugging-face-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
- package/bin/skills/hugging-face-tool-builder/references/hf_model_papers_auth.sh +171 -0
- package/bin/skills/hugging-face-trackio/SKILL.md +65 -0
- package/bin/skills/hugging-face-trackio/references/logging_metrics.md +206 -0
- package/bin/skills/hugging-face-trackio/references/retrieving_metrics.md +223 -0
- package/bin/skills/huggingface-tokenizers/SKILL.md +516 -0
- package/bin/skills/huggingface-tokenizers/references/algorithms.md +653 -0
- package/bin/skills/huggingface-tokenizers/references/integration.md +637 -0
- package/bin/skills/huggingface-tokenizers/references/pipeline.md +723 -0
- package/bin/skills/huggingface-tokenizers/references/training.md +565 -0
- package/bin/skills/instructor/SKILL.md +740 -0
- package/bin/skills/instructor/references/examples.md +107 -0
- package/bin/skills/instructor/references/providers.md +70 -0
- package/bin/skills/instructor/references/validation.md +606 -0
- package/bin/skills/knowledge-distillation/SKILL.md +458 -0
- package/bin/skills/knowledge-distillation/references/minillm.md +334 -0
- package/bin/skills/lambda-labs/SKILL.md +545 -0
- package/bin/skills/lambda-labs/references/advanced-usage.md +611 -0
- package/bin/skills/lambda-labs/references/troubleshooting.md +530 -0
- package/bin/skills/langchain/SKILL.md +480 -0
- package/bin/skills/langchain/references/agents.md +499 -0
- package/bin/skills/langchain/references/integration.md +562 -0
- package/bin/skills/langchain/references/rag.md +600 -0
- package/bin/skills/langsmith/SKILL.md +422 -0
- package/bin/skills/langsmith/references/advanced-usage.md +548 -0
- package/bin/skills/langsmith/references/troubleshooting.md +537 -0
- package/bin/skills/litgpt/SKILL.md +469 -0
- package/bin/skills/litgpt/references/custom-models.md +568 -0
- package/bin/skills/litgpt/references/distributed-training.md +451 -0
- package/bin/skills/litgpt/references/supported-models.md +336 -0
- package/bin/skills/litgpt/references/training-recipes.md +619 -0
- package/bin/skills/llama-cpp/SKILL.md +258 -0
- package/bin/skills/llama-cpp/references/optimization.md +89 -0
- package/bin/skills/llama-cpp/references/quantization.md +213 -0
- package/bin/skills/llama-cpp/references/server.md +125 -0
- package/bin/skills/llama-factory/SKILL.md +80 -0
- package/bin/skills/llama-factory/references/_images.md +23 -0
- package/bin/skills/llama-factory/references/advanced.md +1055 -0
- package/bin/skills/llama-factory/references/getting_started.md +349 -0
- package/bin/skills/llama-factory/references/index.md +19 -0
- package/bin/skills/llama-factory/references/other.md +31 -0
- package/bin/skills/llamaguard/SKILL.md +337 -0
- package/bin/skills/llamaindex/SKILL.md +569 -0
- package/bin/skills/llamaindex/references/agents.md +83 -0
- package/bin/skills/llamaindex/references/data_connectors.md +108 -0
- package/bin/skills/llamaindex/references/query_engines.md +406 -0
- package/bin/skills/llava/SKILL.md +304 -0
- package/bin/skills/llava/references/training.md +197 -0
- package/bin/skills/lm-evaluation-harness/SKILL.md +490 -0
- package/bin/skills/lm-evaluation-harness/references/api-evaluation.md +490 -0
- package/bin/skills/lm-evaluation-harness/references/benchmark-guide.md +488 -0
- package/bin/skills/lm-evaluation-harness/references/custom-tasks.md +602 -0
- package/bin/skills/lm-evaluation-harness/references/distributed-eval.md +519 -0
- package/bin/skills/long-context/SKILL.md +536 -0
- package/bin/skills/long-context/references/extension_methods.md +468 -0
- package/bin/skills/long-context/references/fine_tuning.md +611 -0
- package/bin/skills/long-context/references/rope.md +402 -0
- package/bin/skills/mamba/SKILL.md +260 -0
- package/bin/skills/mamba/references/architecture-details.md +206 -0
- package/bin/skills/mamba/references/benchmarks.md +255 -0
- package/bin/skills/mamba/references/training-guide.md +388 -0
- package/bin/skills/megatron-core/SKILL.md +366 -0
- package/bin/skills/megatron-core/references/benchmarks.md +249 -0
- package/bin/skills/megatron-core/references/parallelism-guide.md +404 -0
- package/bin/skills/megatron-core/references/production-examples.md +473 -0
- package/bin/skills/megatron-core/references/training-recipes.md +547 -0
- package/bin/skills/miles/SKILL.md +315 -0
- package/bin/skills/miles/references/api-reference.md +141 -0
- package/bin/skills/miles/references/troubleshooting.md +352 -0
- package/bin/skills/mlflow/SKILL.md +704 -0
- package/bin/skills/mlflow/references/deployment.md +744 -0
- package/bin/skills/mlflow/references/model-registry.md +770 -0
- package/bin/skills/mlflow/references/tracking.md +680 -0
- package/bin/skills/modal/SKILL.md +341 -0
- package/bin/skills/modal/references/advanced-usage.md +503 -0
- package/bin/skills/modal/references/troubleshooting.md +494 -0
- package/bin/skills/model-merging/SKILL.md +539 -0
- package/bin/skills/model-merging/references/evaluation.md +462 -0
- package/bin/skills/model-merging/references/examples.md +428 -0
- package/bin/skills/model-merging/references/methods.md +352 -0
- package/bin/skills/model-pruning/SKILL.md +495 -0
- package/bin/skills/model-pruning/references/wanda.md +347 -0
- package/bin/skills/moe-training/SKILL.md +526 -0
- package/bin/skills/moe-training/references/architectures.md +432 -0
- package/bin/skills/moe-training/references/inference.md +348 -0
- package/bin/skills/moe-training/references/training.md +425 -0
- package/bin/skills/nanogpt/SKILL.md +290 -0
- package/bin/skills/nanogpt/references/architecture.md +382 -0
- package/bin/skills/nanogpt/references/data.md +476 -0
- package/bin/skills/nanogpt/references/training.md +564 -0
- package/bin/skills/nemo-curator/SKILL.md +383 -0
- package/bin/skills/nemo-curator/references/deduplication.md +87 -0
- package/bin/skills/nemo-curator/references/filtering.md +102 -0
- package/bin/skills/nemo-evaluator/SKILL.md +494 -0
- package/bin/skills/nemo-evaluator/references/adapter-system.md +340 -0
- package/bin/skills/nemo-evaluator/references/configuration.md +447 -0
- package/bin/skills/nemo-evaluator/references/custom-benchmarks.md +315 -0
- package/bin/skills/nemo-evaluator/references/execution-backends.md +361 -0
- package/bin/skills/nemo-guardrails/SKILL.md +297 -0
- package/bin/skills/nnsight/SKILL.md +436 -0
- package/bin/skills/nnsight/references/README.md +78 -0
- package/bin/skills/nnsight/references/api.md +344 -0
- package/bin/skills/nnsight/references/tutorials.md +300 -0
- package/bin/skills/openrlhf/SKILL.md +249 -0
- package/bin/skills/openrlhf/references/algorithm-comparison.md +404 -0
- package/bin/skills/openrlhf/references/custom-rewards.md +530 -0
- package/bin/skills/openrlhf/references/hybrid-engine.md +287 -0
- package/bin/skills/openrlhf/references/multi-node-training.md +454 -0
- package/bin/skills/outlines/SKILL.md +652 -0
- package/bin/skills/outlines/references/backends.md +615 -0
- package/bin/skills/outlines/references/examples.md +773 -0
- package/bin/skills/outlines/references/json_generation.md +652 -0
- package/bin/skills/peft/SKILL.md +431 -0
- package/bin/skills/peft/references/advanced-usage.md +514 -0
- package/bin/skills/peft/references/troubleshooting.md +480 -0
- package/bin/skills/phoenix/SKILL.md +475 -0
- package/bin/skills/phoenix/references/advanced-usage.md +619 -0
- package/bin/skills/phoenix/references/troubleshooting.md +538 -0
- package/bin/skills/pinecone/SKILL.md +358 -0
- package/bin/skills/pinecone/references/deployment.md +181 -0
- package/bin/skills/pytorch-fsdp/SKILL.md +126 -0
- package/bin/skills/pytorch-fsdp/references/index.md +7 -0
- package/bin/skills/pytorch-fsdp/references/other.md +4249 -0
- package/bin/skills/pytorch-lightning/SKILL.md +346 -0
- package/bin/skills/pytorch-lightning/references/callbacks.md +436 -0
- package/bin/skills/pytorch-lightning/references/distributed.md +490 -0
- package/bin/skills/pytorch-lightning/references/hyperparameter-tuning.md +556 -0
- package/bin/skills/pyvene/SKILL.md +473 -0
- package/bin/skills/pyvene/references/README.md +73 -0
- package/bin/skills/pyvene/references/api.md +383 -0
- package/bin/skills/pyvene/references/tutorials.md +376 -0
- package/bin/skills/qdrant/SKILL.md +493 -0
- package/bin/skills/qdrant/references/advanced-usage.md +648 -0
- package/bin/skills/qdrant/references/troubleshooting.md +631 -0
- package/bin/skills/ray-data/SKILL.md +326 -0
- package/bin/skills/ray-data/references/integration.md +82 -0
- package/bin/skills/ray-data/references/transformations.md +83 -0
- package/bin/skills/ray-train/SKILL.md +406 -0
- package/bin/skills/ray-train/references/multi-node.md +628 -0
- package/bin/skills/rwkv/SKILL.md +260 -0
- package/bin/skills/rwkv/references/architecture-details.md +344 -0
- package/bin/skills/rwkv/references/rwkv7.md +386 -0
- package/bin/skills/rwkv/references/state-management.md +369 -0
- package/bin/skills/saelens/SKILL.md +386 -0
- package/bin/skills/saelens/references/README.md +70 -0
- package/bin/skills/saelens/references/api.md +333 -0
- package/bin/skills/saelens/references/tutorials.md +318 -0
- package/bin/skills/segment-anything/SKILL.md +500 -0
- package/bin/skills/segment-anything/references/advanced-usage.md +589 -0
- package/bin/skills/segment-anything/references/troubleshooting.md +484 -0
- package/bin/skills/sentence-transformers/SKILL.md +255 -0
- package/bin/skills/sentence-transformers/references/models.md +123 -0
- package/bin/skills/sentencepiece/SKILL.md +235 -0
- package/bin/skills/sentencepiece/references/algorithms.md +200 -0
- package/bin/skills/sentencepiece/references/training.md +304 -0
- package/bin/skills/sglang/SKILL.md +442 -0
- package/bin/skills/sglang/references/deployment.md +490 -0
- package/bin/skills/sglang/references/radix-attention.md +413 -0
- package/bin/skills/sglang/references/structured-generation.md +541 -0
- package/bin/skills/simpo/SKILL.md +219 -0
- package/bin/skills/simpo/references/datasets.md +478 -0
- package/bin/skills/simpo/references/hyperparameters.md +452 -0
- package/bin/skills/simpo/references/loss-functions.md +350 -0
- package/bin/skills/skypilot/SKILL.md +509 -0
- package/bin/skills/skypilot/references/advanced-usage.md +491 -0
- package/bin/skills/skypilot/references/troubleshooting.md +570 -0
- package/bin/skills/slime/SKILL.md +464 -0
- package/bin/skills/slime/references/api-reference.md +392 -0
- package/bin/skills/slime/references/troubleshooting.md +386 -0
- package/bin/skills/speculative-decoding/SKILL.md +467 -0
- package/bin/skills/speculative-decoding/references/lookahead.md +309 -0
- package/bin/skills/speculative-decoding/references/medusa.md +350 -0
- package/bin/skills/stable-diffusion/SKILL.md +519 -0
- package/bin/skills/stable-diffusion/references/advanced-usage.md +716 -0
- package/bin/skills/stable-diffusion/references/troubleshooting.md +555 -0
- package/bin/skills/tensorboard/SKILL.md +629 -0
- package/bin/skills/tensorboard/references/integrations.md +638 -0
- package/bin/skills/tensorboard/references/profiling.md +545 -0
- package/bin/skills/tensorboard/references/visualization.md +620 -0
- package/bin/skills/tensorrt-llm/SKILL.md +187 -0
- package/bin/skills/tensorrt-llm/references/multi-gpu.md +298 -0
- package/bin/skills/tensorrt-llm/references/optimization.md +242 -0
- package/bin/skills/tensorrt-llm/references/serving.md +470 -0
- package/bin/skills/tinker/SKILL.md +362 -0
- package/bin/skills/tinker/references/api-reference.md +168 -0
- package/bin/skills/tinker/references/getting-started.md +157 -0
- package/bin/skills/tinker/references/loss-functions.md +163 -0
- package/bin/skills/tinker/references/models-and-lora.md +139 -0
- package/bin/skills/tinker/references/recipes.md +280 -0
- package/bin/skills/tinker/references/reinforcement-learning.md +212 -0
- package/bin/skills/tinker/references/rendering.md +243 -0
- package/bin/skills/tinker/references/supervised-learning.md +232 -0
- package/bin/skills/tinker-training-cost/SKILL.md +187 -0
- package/bin/skills/tinker-training-cost/scripts/calculate_cost.py +123 -0
- package/bin/skills/torchforge/SKILL.md +433 -0
- package/bin/skills/torchforge/references/api-reference.md +327 -0
- package/bin/skills/torchforge/references/troubleshooting.md +409 -0
- package/bin/skills/torchtitan/SKILL.md +358 -0
- package/bin/skills/torchtitan/references/checkpoint.md +181 -0
- package/bin/skills/torchtitan/references/custom-models.md +258 -0
- package/bin/skills/torchtitan/references/float8.md +133 -0
- package/bin/skills/torchtitan/references/fsdp.md +126 -0
- package/bin/skills/transformer-lens/SKILL.md +346 -0
- package/bin/skills/transformer-lens/references/README.md +54 -0
- package/bin/skills/transformer-lens/references/api.md +362 -0
- package/bin/skills/transformer-lens/references/tutorials.md +339 -0
- package/bin/skills/trl-fine-tuning/SKILL.md +455 -0
- package/bin/skills/trl-fine-tuning/references/dpo-variants.md +227 -0
- package/bin/skills/trl-fine-tuning/references/online-rl.md +82 -0
- package/bin/skills/trl-fine-tuning/references/reward-modeling.md +122 -0
- package/bin/skills/trl-fine-tuning/references/sft-training.md +168 -0
- package/bin/skills/unsloth/SKILL.md +80 -0
- package/bin/skills/unsloth/references/index.md +7 -0
- package/bin/skills/unsloth/references/llms-full.md +16799 -0
- package/bin/skills/unsloth/references/llms-txt.md +12044 -0
- package/bin/skills/unsloth/references/llms.md +82 -0
- package/bin/skills/verl/SKILL.md +391 -0
- package/bin/skills/verl/references/api-reference.md +301 -0
- package/bin/skills/verl/references/troubleshooting.md +391 -0
- package/bin/skills/vllm/SKILL.md +364 -0
- package/bin/skills/vllm/references/optimization.md +226 -0
- package/bin/skills/vllm/references/quantization.md +284 -0
- package/bin/skills/vllm/references/server-deployment.md +255 -0
- package/bin/skills/vllm/references/troubleshooting.md +447 -0
- package/bin/skills/weights-and-biases/SKILL.md +590 -0
- package/bin/skills/weights-and-biases/references/artifacts.md +584 -0
- package/bin/skills/weights-and-biases/references/integrations.md +700 -0
- package/bin/skills/weights-and-biases/references/sweeps.md +847 -0
- package/bin/skills/whisper/SKILL.md +317 -0
- package/bin/skills/whisper/references/languages.md +189 -0
- package/bin/synsc +0 -0
- package/package.json +10 -0
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
# DSPy Modules
|
|
2
|
+
|
|
3
|
+
Complete guide to DSPy's built-in modules for language model programming.
|
|
4
|
+
|
|
5
|
+
## Module Basics
|
|
6
|
+
|
|
7
|
+
DSPy modules are composable building blocks inspired by PyTorch's NN modules:
|
|
8
|
+
- Have learnable parameters (prompts, few-shot examples)
|
|
9
|
+
- Can be composed using Python control flow
|
|
10
|
+
- Generalized to handle any signature
|
|
11
|
+
- Optimizable with DSPy optimizers
|
|
12
|
+
|
|
13
|
+
### Base Module Pattern
|
|
14
|
+
|
|
15
|
+
```python
|
|
16
|
+
import dspy
|
|
17
|
+
|
|
18
|
+
class CustomModule(dspy.Module):
|
|
19
|
+
def __init__(self):
|
|
20
|
+
super().__init__()
|
|
21
|
+
# Initialize sub-modules
|
|
22
|
+
self.predictor = dspy.Predict("input -> output")
|
|
23
|
+
|
|
24
|
+
def forward(self, input):
|
|
25
|
+
# Module logic
|
|
26
|
+
result = self.predictor(input=input)
|
|
27
|
+
return result
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Core Modules
|
|
31
|
+
|
|
32
|
+
### dspy.Predict
|
|
33
|
+
|
|
34
|
+
**Basic prediction module** - Makes LM calls without reasoning steps.
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
# Inline signature
|
|
38
|
+
qa = dspy.Predict("question -> answer")
|
|
39
|
+
result = qa(question="What is 2+2?")
|
|
40
|
+
|
|
41
|
+
# Class signature
|
|
42
|
+
class QA(dspy.Signature):
|
|
43
|
+
"""Answer questions concisely."""
|
|
44
|
+
question = dspy.InputField()
|
|
45
|
+
answer = dspy.OutputField(desc="short, factual answer")
|
|
46
|
+
|
|
47
|
+
qa = dspy.Predict(QA)
|
|
48
|
+
result = qa(question="What is the capital of France?")
|
|
49
|
+
print(result.answer) # "Paris"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**When to use:**
|
|
53
|
+
- Simple, direct predictions
|
|
54
|
+
- No reasoning steps needed
|
|
55
|
+
- Fast responses required
|
|
56
|
+
|
|
57
|
+
### dspy.ChainOfThought
|
|
58
|
+
|
|
59
|
+
**Step-by-step reasoning** - Generates rationale before answer.
|
|
60
|
+
|
|
61
|
+
**Parameters:**
|
|
62
|
+
- `signature`: Task signature
|
|
63
|
+
- `rationale_field`: Custom reasoning field (optional)
|
|
64
|
+
- `rationale_field_type`: Type for rationale (default: `str`)
|
|
65
|
+
|
|
66
|
+
```python
|
|
67
|
+
# Basic usage
|
|
68
|
+
cot = dspy.ChainOfThought("question -> answer")
|
|
69
|
+
result = cot(question="If I have 5 apples and give away 2, how many remain?")
|
|
70
|
+
print(result.rationale) # "Let's think step by step..."
|
|
71
|
+
print(result.answer) # "3"
|
|
72
|
+
|
|
73
|
+
# Custom rationale field
|
|
74
|
+
cot = dspy.ChainOfThought(
|
|
75
|
+
signature="problem -> solution",
|
|
76
|
+
rationale_field=dspy.OutputField(
|
|
77
|
+
prefix="Reasoning: Let's break this down step by step to"
|
|
78
|
+
)
|
|
79
|
+
)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**When to use:**
|
|
83
|
+
- Complex reasoning tasks
|
|
84
|
+
- Math word problems
|
|
85
|
+
- Logical deduction
|
|
86
|
+
- Quality > speed
|
|
87
|
+
|
|
88
|
+
**Performance:**
|
|
89
|
+
- ~2x slower than Predict
|
|
90
|
+
- Significantly better accuracy on reasoning tasks
|
|
91
|
+
|
|
92
|
+
### dspy.ProgramOfThought
|
|
93
|
+
|
|
94
|
+
**Code-based reasoning** - Generates and executes Python code.
|
|
95
|
+
|
|
96
|
+
```python
|
|
97
|
+
pot = dspy.ProgramOfThought("question -> answer")
|
|
98
|
+
|
|
99
|
+
result = pot(question="What is 15% of 240?")
|
|
100
|
+
# Internally generates: answer = 240 * 0.15
|
|
101
|
+
# Executes code and returns result
|
|
102
|
+
print(result.answer) # 36.0
|
|
103
|
+
|
|
104
|
+
result = pot(question="If a train travels 60 mph for 2.5 hours, how far does it go?")
|
|
105
|
+
# Generates: distance = 60 * 2.5
|
|
106
|
+
print(result.answer) # 150.0
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**When to use:**
|
|
110
|
+
- Arithmetic calculations
|
|
111
|
+
- Symbolic math
|
|
112
|
+
- Data transformations
|
|
113
|
+
- Deterministic computations
|
|
114
|
+
|
|
115
|
+
**Benefits:**
|
|
116
|
+
- More reliable than text-based math
|
|
117
|
+
- Handles complex calculations
|
|
118
|
+
- Transparent (shows generated code)
|
|
119
|
+
|
|
120
|
+
### dspy.ReAct
|
|
121
|
+
|
|
122
|
+
**Reasoning + Acting** - Agent that uses tools iteratively.
|
|
123
|
+
|
|
124
|
+
```python
|
|
125
|
+
from dspy.predict import ReAct
|
|
126
|
+
|
|
127
|
+
# Define tools
|
|
128
|
+
def search_wikipedia(query: str) -> str:
|
|
129
|
+
"""Search Wikipedia for information."""
|
|
130
|
+
# Your search implementation
|
|
131
|
+
return search_results
|
|
132
|
+
|
|
133
|
+
def calculate(expression: str) -> float:
|
|
134
|
+
"""Evaluate a mathematical expression."""
|
|
135
|
+
return eval(expression)
|
|
136
|
+
|
|
137
|
+
# Create ReAct agent
|
|
138
|
+
class ResearchQA(dspy.Signature):
|
|
139
|
+
"""Answer questions using available tools."""
|
|
140
|
+
question = dspy.InputField()
|
|
141
|
+
answer = dspy.OutputField()
|
|
142
|
+
|
|
143
|
+
react = ReAct(ResearchQA, tools=[search_wikipedia, calculate])
|
|
144
|
+
|
|
145
|
+
# Agent decides which tools to use
|
|
146
|
+
result = react(question="How old was Einstein when he published special relativity?")
|
|
147
|
+
# Internally:
|
|
148
|
+
# 1. Thinks: "Need birth year and publication year"
|
|
149
|
+
# 2. Acts: search_wikipedia("Albert Einstein")
|
|
150
|
+
# 3. Acts: search_wikipedia("Special relativity 1905")
|
|
151
|
+
# 4. Acts: calculate("1905 - 1879")
|
|
152
|
+
# 5. Returns: "26 years old"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**When to use:**
|
|
156
|
+
- Multi-step research tasks
|
|
157
|
+
- Tool-using agents
|
|
158
|
+
- Complex information retrieval
|
|
159
|
+
- Tasks requiring multiple API calls
|
|
160
|
+
|
|
161
|
+
**Best practices:**
|
|
162
|
+
- Keep tool descriptions clear and specific
|
|
163
|
+
- Limit to 5-7 tools (too many = confusion)
|
|
164
|
+
- Provide tool usage examples in docstrings
|
|
165
|
+
|
|
166
|
+
### dspy.MultiChainComparison
|
|
167
|
+
|
|
168
|
+
**Generate multiple outputs and compare** - Self-consistency pattern.
|
|
169
|
+
|
|
170
|
+
```python
|
|
171
|
+
mcc = dspy.MultiChainComparison("question -> answer", M=5)
|
|
172
|
+
|
|
173
|
+
result = mcc(question="What is the capital of France?")
|
|
174
|
+
# Generates 5 candidate answers
|
|
175
|
+
# Compares and selects most consistent
|
|
176
|
+
print(result.answer) # "Paris"
|
|
177
|
+
print(result.candidates) # All 5 generated answers
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Parameters:**
|
|
181
|
+
- `M`: Number of candidates to generate (default: 5)
|
|
182
|
+
- `temperature`: Sampling temperature for diversity
|
|
183
|
+
|
|
184
|
+
**When to use:**
|
|
185
|
+
- High-stakes decisions
|
|
186
|
+
- Ambiguous questions
|
|
187
|
+
- When single answer may be unreliable
|
|
188
|
+
|
|
189
|
+
**Tradeoff:**
|
|
190
|
+
- M times slower (M parallel calls)
|
|
191
|
+
- Higher accuracy on ambiguous tasks
|
|
192
|
+
|
|
193
|
+
### dspy.majority
|
|
194
|
+
|
|
195
|
+
**Majority voting over multiple predictions.**
|
|
196
|
+
|
|
197
|
+
```python
|
|
198
|
+
from dspy.primitives import majority
|
|
199
|
+
|
|
200
|
+
# Generate multiple predictions
|
|
201
|
+
predictor = dspy.Predict("question -> answer")
|
|
202
|
+
predictions = [predictor(question="What is 2+2?") for _ in range(5)]
|
|
203
|
+
|
|
204
|
+
# Take majority vote
|
|
205
|
+
answer = majority([p.answer for p in predictions])
|
|
206
|
+
print(answer) # "4"
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**When to use:**
|
|
210
|
+
- Combining multiple model outputs
|
|
211
|
+
- Reducing variance in predictions
|
|
212
|
+
- Ensemble approaches
|
|
213
|
+
|
|
214
|
+
## Advanced Modules
|
|
215
|
+
|
|
216
|
+
### dspy.TypedPredictor
|
|
217
|
+
|
|
218
|
+
**Structured output with Pydantic models.**
|
|
219
|
+
|
|
220
|
+
```python
|
|
221
|
+
from pydantic import BaseModel, Field
|
|
222
|
+
|
|
223
|
+
class PersonInfo(BaseModel):
|
|
224
|
+
name: str = Field(description="Full name")
|
|
225
|
+
age: int = Field(description="Age in years")
|
|
226
|
+
occupation: str = Field(description="Current job")
|
|
227
|
+
|
|
228
|
+
class ExtractPerson(dspy.Signature):
|
|
229
|
+
"""Extract person information from text."""
|
|
230
|
+
text = dspy.InputField()
|
|
231
|
+
person: PersonInfo = dspy.OutputField()
|
|
232
|
+
|
|
233
|
+
extractor = dspy.TypedPredictor(ExtractPerson)
|
|
234
|
+
result = extractor(text="John Doe is a 35-year-old software engineer.")
|
|
235
|
+
|
|
236
|
+
print(result.person.name) # "John Doe"
|
|
237
|
+
print(result.person.age) # 35
|
|
238
|
+
print(result.person.occupation) # "software engineer"
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**Benefits:**
|
|
242
|
+
- Type safety
|
|
243
|
+
- Automatic validation
|
|
244
|
+
- JSON schema generation
|
|
245
|
+
- IDE autocomplete
|
|
246
|
+
|
|
247
|
+
### dspy.Retry
|
|
248
|
+
|
|
249
|
+
**Automatic retry with validation.**
|
|
250
|
+
|
|
251
|
+
```python
|
|
252
|
+
from dspy.primitives import Retry
|
|
253
|
+
|
|
254
|
+
def validate_number(example, pred, trace=None):
|
|
255
|
+
"""Validate output is a number."""
|
|
256
|
+
try:
|
|
257
|
+
float(pred.answer)
|
|
258
|
+
return True
|
|
259
|
+
except ValueError:
|
|
260
|
+
return False
|
|
261
|
+
|
|
262
|
+
# Retry up to 3 times if validation fails
|
|
263
|
+
qa = Retry(
|
|
264
|
+
dspy.ChainOfThought("question -> answer"),
|
|
265
|
+
validate=validate_number,
|
|
266
|
+
max_retries=3
|
|
267
|
+
)
|
|
268
|
+
|
|
269
|
+
result = qa(question="What is 15% of 80?")
|
|
270
|
+
# If first attempt returns non-numeric, retries automatically
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### dspy.Assert
|
|
274
|
+
|
|
275
|
+
**Assertion-driven optimization.**
|
|
276
|
+
|
|
277
|
+
```python
|
|
278
|
+
import dspy
|
|
279
|
+
from dspy.primitives.assertions import assert_transform_module, backtrack_handler
|
|
280
|
+
|
|
281
|
+
class ValidatedQA(dspy.Module):
|
|
282
|
+
def __init__(self):
|
|
283
|
+
super().__init__()
|
|
284
|
+
self.qa = dspy.ChainOfThought("question -> answer: float")
|
|
285
|
+
|
|
286
|
+
def forward(self, question):
|
|
287
|
+
answer = self.qa(question=question).answer
|
|
288
|
+
|
|
289
|
+
# Assert answer is numeric
|
|
290
|
+
dspy.Assert(
|
|
291
|
+
isinstance(float(answer), float),
|
|
292
|
+
"Answer must be a number",
|
|
293
|
+
backtrack=backtrack_handler
|
|
294
|
+
)
|
|
295
|
+
|
|
296
|
+
return dspy.Prediction(answer=answer)
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
**Benefits:**
|
|
300
|
+
- Catches errors during optimization
|
|
301
|
+
- Guides LM toward valid outputs
|
|
302
|
+
- Better than post-hoc filtering
|
|
303
|
+
|
|
304
|
+
## Module Composition
|
|
305
|
+
|
|
306
|
+
### Sequential Pipeline
|
|
307
|
+
|
|
308
|
+
```python
|
|
309
|
+
class Pipeline(dspy.Module):
|
|
310
|
+
def __init__(self):
|
|
311
|
+
super().__init__()
|
|
312
|
+
self.stage1 = dspy.Predict("input -> intermediate")
|
|
313
|
+
self.stage2 = dspy.ChainOfThought("intermediate -> output")
|
|
314
|
+
|
|
315
|
+
def forward(self, input):
|
|
316
|
+
intermediate = self.stage1(input=input).intermediate
|
|
317
|
+
output = self.stage2(intermediate=intermediate).output
|
|
318
|
+
return dspy.Prediction(output=output)
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### Conditional Logic
|
|
322
|
+
|
|
323
|
+
```python
|
|
324
|
+
class ConditionalModule(dspy.Module):
|
|
325
|
+
def __init__(self):
|
|
326
|
+
super().__init__()
|
|
327
|
+
self.router = dspy.Predict("question -> category: str")
|
|
328
|
+
self.simple_qa = dspy.Predict("question -> answer")
|
|
329
|
+
self.complex_qa = dspy.ChainOfThought("question -> answer")
|
|
330
|
+
|
|
331
|
+
def forward(self, question):
|
|
332
|
+
category = self.router(question=question).category
|
|
333
|
+
|
|
334
|
+
if category == "simple":
|
|
335
|
+
return self.simple_qa(question=question)
|
|
336
|
+
else:
|
|
337
|
+
return self.complex_qa(question=question)
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
### Parallel Execution
|
|
341
|
+
|
|
342
|
+
```python
|
|
343
|
+
class ParallelModule(dspy.Module):
|
|
344
|
+
def __init__(self):
|
|
345
|
+
super().__init__()
|
|
346
|
+
self.approach1 = dspy.ChainOfThought("question -> answer")
|
|
347
|
+
self.approach2 = dspy.ProgramOfThought("question -> answer")
|
|
348
|
+
|
|
349
|
+
def forward(self, question):
|
|
350
|
+
# Run both approaches
|
|
351
|
+
answer1 = self.approach1(question=question).answer
|
|
352
|
+
answer2 = self.approach2(question=question).answer
|
|
353
|
+
|
|
354
|
+
# Compare or combine results
|
|
355
|
+
if answer1 == answer2:
|
|
356
|
+
return dspy.Prediction(answer=answer1, confidence="high")
|
|
357
|
+
else:
|
|
358
|
+
return dspy.Prediction(answer=answer1, confidence="low")
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
## Batch Processing
|
|
362
|
+
|
|
363
|
+
All modules support batch processing for efficiency:
|
|
364
|
+
|
|
365
|
+
```python
|
|
366
|
+
cot = dspy.ChainOfThought("question -> answer")
|
|
367
|
+
|
|
368
|
+
questions = [
|
|
369
|
+
"What is 2+2?",
|
|
370
|
+
"What is 3+3?",
|
|
371
|
+
"What is 4+4?"
|
|
372
|
+
]
|
|
373
|
+
|
|
374
|
+
# Process all at once
|
|
375
|
+
results = cot.batch([{"question": q} for q in questions])
|
|
376
|
+
|
|
377
|
+
for result in results:
|
|
378
|
+
print(result.answer)
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
## Saving and Loading
|
|
382
|
+
|
|
383
|
+
```python
|
|
384
|
+
# Save module
|
|
385
|
+
qa = dspy.ChainOfThought("question -> answer")
|
|
386
|
+
qa.save("models/qa_v1.json")
|
|
387
|
+
|
|
388
|
+
# Load module
|
|
389
|
+
loaded_qa = dspy.ChainOfThought("question -> answer")
|
|
390
|
+
loaded_qa.load("models/qa_v1.json")
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
**What gets saved:**
|
|
394
|
+
- Few-shot examples
|
|
395
|
+
- Prompt instructions
|
|
396
|
+
- Module configuration
|
|
397
|
+
|
|
398
|
+
**What doesn't get saved:**
|
|
399
|
+
- Model weights (DSPy doesn't fine-tune by default)
|
|
400
|
+
- LM provider configuration
|
|
401
|
+
|
|
402
|
+
## Module Selection Guide
|
|
403
|
+
|
|
404
|
+
| Task | Module | Reason |
|
|
405
|
+
|------|--------|--------|
|
|
406
|
+
| Simple classification | Predict | Fast, direct |
|
|
407
|
+
| Math word problems | ProgramOfThought | Reliable calculations |
|
|
408
|
+
| Logical reasoning | ChainOfThought | Better with steps |
|
|
409
|
+
| Multi-step research | ReAct | Tool usage |
|
|
410
|
+
| High-stakes decisions | MultiChainComparison | Self-consistency |
|
|
411
|
+
| Structured extraction | TypedPredictor | Type safety |
|
|
412
|
+
| Ambiguous questions | MultiChainComparison | Multiple perspectives |
|
|
413
|
+
|
|
414
|
+
## Performance Tips
|
|
415
|
+
|
|
416
|
+
1. **Start with Predict**, add reasoning only if needed
|
|
417
|
+
2. **Use batch processing** for multiple inputs
|
|
418
|
+
3. **Cache predictions** for repeated queries
|
|
419
|
+
4. **Profile token usage** with `track_usage=True`
|
|
420
|
+
5. **Optimize after prototyping** with teleprompters
|
|
421
|
+
|
|
422
|
+
## Common Patterns
|
|
423
|
+
|
|
424
|
+
### Pattern: Retrieval + Generation
|
|
425
|
+
|
|
426
|
+
```python
|
|
427
|
+
class RAG(dspy.Module):
|
|
428
|
+
def __init__(self, k=3):
|
|
429
|
+
super().__init__()
|
|
430
|
+
self.retrieve = dspy.Retrieve(k=k)
|
|
431
|
+
self.generate = dspy.ChainOfThought("context, question -> answer")
|
|
432
|
+
|
|
433
|
+
def forward(self, question):
|
|
434
|
+
context = self.retrieve(question).passages
|
|
435
|
+
return self.generate(context=context, question=question)
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
### Pattern: Verification Loop
|
|
439
|
+
|
|
440
|
+
```python
|
|
441
|
+
class VerifiedQA(dspy.Module):
|
|
442
|
+
def __init__(self):
|
|
443
|
+
super().__init__()
|
|
444
|
+
self.answer = dspy.ChainOfThought("question -> answer")
|
|
445
|
+
self.verify = dspy.Predict("question, answer -> is_correct: bool")
|
|
446
|
+
|
|
447
|
+
def forward(self, question, max_attempts=3):
|
|
448
|
+
for _ in range(max_attempts):
|
|
449
|
+
answer = self.answer(question=question).answer
|
|
450
|
+
is_correct = self.verify(question=question, answer=answer).is_correct
|
|
451
|
+
|
|
452
|
+
if is_correct:
|
|
453
|
+
return dspy.Prediction(answer=answer)
|
|
454
|
+
|
|
455
|
+
return dspy.Prediction(answer="Unable to verify answer")
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
### Pattern: Multi-Turn Dialog
|
|
459
|
+
|
|
460
|
+
```python
|
|
461
|
+
class DialogAgent(dspy.Module):
|
|
462
|
+
def __init__(self):
|
|
463
|
+
super().__init__()
|
|
464
|
+
self.respond = dspy.Predict("history, user_message -> assistant_message")
|
|
465
|
+
self.history = []
|
|
466
|
+
|
|
467
|
+
def forward(self, user_message):
|
|
468
|
+
history_str = "\n".join(self.history)
|
|
469
|
+
response = self.respond(history=history_str, user_message=user_message)
|
|
470
|
+
|
|
471
|
+
self.history.append(f"User: {user_message}")
|
|
472
|
+
self.history.append(f"Assistant: {response.assistant_message}")
|
|
473
|
+
|
|
474
|
+
return response
|
|
475
|
+
```
|