@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,569 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: llamaindex
|
|
3
|
+
description: Data framework for building LLM applications with RAG. Specializes in document ingestion (300+ connectors), indexing, and querying. Features vector indices, query engines, agents, and multi-modal support. Use for document Q&A, chatbots, knowledge retrieval, or building RAG pipelines. Best for data-centric LLM applications.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: Synthetic Sciences
|
|
6
|
+
license: MIT
|
|
7
|
+
tags: [Agents, LlamaIndex, RAG, Document Ingestion, Vector Indices, Query Engines, Knowledge Retrieval, Data Framework, Multimodal, Private Data, Connectors]
|
|
8
|
+
dependencies: [llama-index, openai, anthropic]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# LlamaIndex - Data Framework for LLM Applications
|
|
12
|
+
|
|
13
|
+
The leading framework for connecting LLMs with your data.
|
|
14
|
+
|
|
15
|
+
## When to use LlamaIndex
|
|
16
|
+
|
|
17
|
+
**Use LlamaIndex when:**
|
|
18
|
+
- Building RAG (retrieval-augmented generation) applications
|
|
19
|
+
- Need document question-answering over private data
|
|
20
|
+
- Ingesting data from multiple sources (300+ connectors)
|
|
21
|
+
- Creating knowledge bases for LLMs
|
|
22
|
+
- Building chatbots with enterprise data
|
|
23
|
+
- Need structured data extraction from documents
|
|
24
|
+
|
|
25
|
+
**Metrics**:
|
|
26
|
+
- **45,100+ GitHub stars**
|
|
27
|
+
- **23,000+ repositories** use LlamaIndex
|
|
28
|
+
- **300+ data connectors** (LlamaHub)
|
|
29
|
+
- **1,715+ contributors**
|
|
30
|
+
- **v0.14.7** (stable)
|
|
31
|
+
|
|
32
|
+
**Use alternatives instead**:
|
|
33
|
+
- **LangChain**: More general-purpose, better for agents
|
|
34
|
+
- **Haystack**: Production search pipelines
|
|
35
|
+
- **txtai**: Lightweight semantic search
|
|
36
|
+
- **Chroma**: Just need vector storage
|
|
37
|
+
|
|
38
|
+
## Quick start
|
|
39
|
+
|
|
40
|
+
### Installation
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Starter package (recommended)
|
|
44
|
+
pip install llama-index
|
|
45
|
+
|
|
46
|
+
# Or minimal core + specific integrations
|
|
47
|
+
pip install llama-index-core
|
|
48
|
+
pip install llama-index-llms-openai
|
|
49
|
+
pip install llama-index-embeddings-openai
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 5-line RAG example
|
|
53
|
+
|
|
54
|
+
```python
|
|
55
|
+
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
|
|
56
|
+
|
|
57
|
+
# Load documents
|
|
58
|
+
documents = SimpleDirectoryReader("data").load_data()
|
|
59
|
+
|
|
60
|
+
# Create index
|
|
61
|
+
index = VectorStoreIndex.from_documents(documents)
|
|
62
|
+
|
|
63
|
+
# Query
|
|
64
|
+
query_engine = index.as_query_engine()
|
|
65
|
+
response = query_engine.query("What did the author do growing up?")
|
|
66
|
+
print(response)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Core concepts
|
|
70
|
+
|
|
71
|
+
### 1. Data connectors - Load documents
|
|
72
|
+
|
|
73
|
+
```python
|
|
74
|
+
from llama_index.core import SimpleDirectoryReader, Document
|
|
75
|
+
from llama_index.readers.web import SimpleWebPageReader
|
|
76
|
+
from llama_index.readers.github import GithubRepositoryReader
|
|
77
|
+
|
|
78
|
+
# Directory of files
|
|
79
|
+
documents = SimpleDirectoryReader("./data").load_data()
|
|
80
|
+
|
|
81
|
+
# Web pages
|
|
82
|
+
reader = SimpleWebPageReader()
|
|
83
|
+
documents = reader.load_data(["https://example.com"])
|
|
84
|
+
|
|
85
|
+
# GitHub repository
|
|
86
|
+
reader = GithubRepositoryReader(owner="user", repo="repo")
|
|
87
|
+
documents = reader.load_data(branch="main")
|
|
88
|
+
|
|
89
|
+
# Manual document creation
|
|
90
|
+
doc = Document(
|
|
91
|
+
text="This is the document content",
|
|
92
|
+
metadata={"source": "manual", "date": "2025-01-01"}
|
|
93
|
+
)
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 2. Indices - Structure data
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
from llama_index.core import VectorStoreIndex, ListIndex, TreeIndex
|
|
100
|
+
|
|
101
|
+
# Vector index (most common - semantic search)
|
|
102
|
+
vector_index = VectorStoreIndex.from_documents(documents)
|
|
103
|
+
|
|
104
|
+
# List index (sequential scan)
|
|
105
|
+
list_index = ListIndex.from_documents(documents)
|
|
106
|
+
|
|
107
|
+
# Tree index (hierarchical summary)
|
|
108
|
+
tree_index = TreeIndex.from_documents(documents)
|
|
109
|
+
|
|
110
|
+
# Save index
|
|
111
|
+
index.storage_context.persist(persist_dir="./storage")
|
|
112
|
+
|
|
113
|
+
# Load index
|
|
114
|
+
from llama_index.core import load_index_from_storage, StorageContext
|
|
115
|
+
storage_context = StorageContext.from_defaults(persist_dir="./storage")
|
|
116
|
+
index = load_index_from_storage(storage_context)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 3. Query engines - Ask questions
|
|
120
|
+
|
|
121
|
+
```python
|
|
122
|
+
# Basic query
|
|
123
|
+
query_engine = index.as_query_engine()
|
|
124
|
+
response = query_engine.query("What is the main topic?")
|
|
125
|
+
print(response)
|
|
126
|
+
|
|
127
|
+
# Streaming response
|
|
128
|
+
query_engine = index.as_query_engine(streaming=True)
|
|
129
|
+
response = query_engine.query("Explain quantum computing")
|
|
130
|
+
for text in response.response_gen:
|
|
131
|
+
print(text, end="", flush=True)
|
|
132
|
+
|
|
133
|
+
# Custom configuration
|
|
134
|
+
query_engine = index.as_query_engine(
|
|
135
|
+
similarity_top_k=3, # Return top 3 chunks
|
|
136
|
+
response_mode="compact", # Or "tree_summarize", "simple_summarize"
|
|
137
|
+
verbose=True
|
|
138
|
+
)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 4. Retrievers - Find relevant chunks
|
|
142
|
+
|
|
143
|
+
```python
|
|
144
|
+
# Vector retriever
|
|
145
|
+
retriever = index.as_retriever(similarity_top_k=5)
|
|
146
|
+
nodes = retriever.retrieve("machine learning")
|
|
147
|
+
|
|
148
|
+
# With filtering
|
|
149
|
+
retriever = index.as_retriever(
|
|
150
|
+
similarity_top_k=3,
|
|
151
|
+
filters={"metadata.category": "tutorial"}
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
# Custom retriever
|
|
155
|
+
from llama_index.core.retrievers import BaseRetriever
|
|
156
|
+
|
|
157
|
+
class CustomRetriever(BaseRetriever):
|
|
158
|
+
def _retrieve(self, query_bundle):
|
|
159
|
+
# Your custom retrieval logic
|
|
160
|
+
return nodes
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Agents with tools
|
|
164
|
+
|
|
165
|
+
### Basic agent
|
|
166
|
+
|
|
167
|
+
```python
|
|
168
|
+
from llama_index.core.agent import FunctionAgent
|
|
169
|
+
from llama_index.llms.openai import OpenAI
|
|
170
|
+
|
|
171
|
+
# Define tools
|
|
172
|
+
def multiply(a: int, b: int) -> int:
|
|
173
|
+
"""Multiply two numbers."""
|
|
174
|
+
return a * b
|
|
175
|
+
|
|
176
|
+
def add(a: int, b: int) -> int:
|
|
177
|
+
"""Add two numbers."""
|
|
178
|
+
return a + b
|
|
179
|
+
|
|
180
|
+
# Create agent
|
|
181
|
+
llm = OpenAI(model="gpt-4o")
|
|
182
|
+
agent = FunctionAgent.from_tools(
|
|
183
|
+
tools=[multiply, add],
|
|
184
|
+
llm=llm,
|
|
185
|
+
verbose=True
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
# Use agent
|
|
189
|
+
response = agent.chat("What is 25 * 17 + 142?")
|
|
190
|
+
print(response)
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### RAG agent (document search + tools)
|
|
194
|
+
|
|
195
|
+
```python
|
|
196
|
+
from llama_index.core.tools import QueryEngineTool
|
|
197
|
+
|
|
198
|
+
# Create index as before
|
|
199
|
+
index = VectorStoreIndex.from_documents(documents)
|
|
200
|
+
|
|
201
|
+
# Wrap query engine as tool
|
|
202
|
+
query_tool = QueryEngineTool.from_defaults(
|
|
203
|
+
query_engine=index.as_query_engine(),
|
|
204
|
+
name="python_docs",
|
|
205
|
+
description="Useful for answering questions about Python programming"
|
|
206
|
+
)
|
|
207
|
+
|
|
208
|
+
# Agent with document search + calculator
|
|
209
|
+
agent = FunctionAgent.from_tools(
|
|
210
|
+
tools=[query_tool, multiply, add],
|
|
211
|
+
llm=llm
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
# Agent decides when to search docs vs calculate
|
|
215
|
+
response = agent.chat("According to the docs, what is Python used for?")
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## Advanced RAG patterns
|
|
219
|
+
|
|
220
|
+
### Chat engine (conversational)
|
|
221
|
+
|
|
222
|
+
```python
|
|
223
|
+
from llama_index.core.chat_engine import CondensePlusContextChatEngine
|
|
224
|
+
|
|
225
|
+
# Chat with memory
|
|
226
|
+
chat_engine = index.as_chat_engine(
|
|
227
|
+
chat_mode="condense_plus_context", # Or "context", "react"
|
|
228
|
+
verbose=True
|
|
229
|
+
)
|
|
230
|
+
|
|
231
|
+
# Multi-turn conversation
|
|
232
|
+
response1 = chat_engine.chat("What is Python?")
|
|
233
|
+
response2 = chat_engine.chat("Can you give examples?") # Remembers context
|
|
234
|
+
response3 = chat_engine.chat("What about web frameworks?")
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Metadata filtering
|
|
238
|
+
|
|
239
|
+
```python
|
|
240
|
+
from llama_index.core.vector_stores import MetadataFilters, ExactMatchFilter
|
|
241
|
+
|
|
242
|
+
# Filter by metadata
|
|
243
|
+
filters = MetadataFilters(
|
|
244
|
+
filters=[
|
|
245
|
+
ExactMatchFilter(key="category", value="tutorial"),
|
|
246
|
+
ExactMatchFilter(key="difficulty", value="beginner")
|
|
247
|
+
]
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
retriever = index.as_retriever(
|
|
251
|
+
similarity_top_k=3,
|
|
252
|
+
filters=filters
|
|
253
|
+
)
|
|
254
|
+
|
|
255
|
+
query_engine = index.as_query_engine(filters=filters)
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Structured output
|
|
259
|
+
|
|
260
|
+
```python
|
|
261
|
+
from pydantic import BaseModel
|
|
262
|
+
from llama_index.core.output_parsers import PydanticOutputParser
|
|
263
|
+
|
|
264
|
+
class Summary(BaseModel):
|
|
265
|
+
title: str
|
|
266
|
+
main_points: list[str]
|
|
267
|
+
conclusion: str
|
|
268
|
+
|
|
269
|
+
# Get structured response
|
|
270
|
+
output_parser = PydanticOutputParser(output_cls=Summary)
|
|
271
|
+
query_engine = index.as_query_engine(output_parser=output_parser)
|
|
272
|
+
|
|
273
|
+
response = query_engine.query("Summarize the document")
|
|
274
|
+
summary = response # Pydantic model
|
|
275
|
+
print(summary.title, summary.main_points)
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
## Data ingestion patterns
|
|
279
|
+
|
|
280
|
+
### Multiple file types
|
|
281
|
+
|
|
282
|
+
```python
|
|
283
|
+
# Load all supported formats
|
|
284
|
+
documents = SimpleDirectoryReader(
|
|
285
|
+
"./data",
|
|
286
|
+
recursive=True,
|
|
287
|
+
required_exts=[".pdf", ".docx", ".txt", ".md"]
|
|
288
|
+
).load_data()
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Web scraping
|
|
292
|
+
|
|
293
|
+
```python
|
|
294
|
+
from llama_index.readers.web import BeautifulSoupWebReader
|
|
295
|
+
|
|
296
|
+
reader = BeautifulSoupWebReader()
|
|
297
|
+
documents = reader.load_data(urls=[
|
|
298
|
+
"https://docs.python.org/3/tutorial/",
|
|
299
|
+
"https://docs.python.org/3/library/"
|
|
300
|
+
])
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### Database
|
|
304
|
+
|
|
305
|
+
```python
|
|
306
|
+
from llama_index.readers.database import DatabaseReader
|
|
307
|
+
|
|
308
|
+
reader = DatabaseReader(
|
|
309
|
+
sql_database_uri="postgresql://user:pass@localhost/db"
|
|
310
|
+
)
|
|
311
|
+
documents = reader.load_data(query="SELECT * FROM articles")
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### API endpoints
|
|
315
|
+
|
|
316
|
+
```python
|
|
317
|
+
from llama_index.readers.json import JSONReader
|
|
318
|
+
|
|
319
|
+
reader = JSONReader()
|
|
320
|
+
documents = reader.load_data("https://api.example.com/data.json")
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
## Vector store integrations
|
|
324
|
+
|
|
325
|
+
### Chroma (local)
|
|
326
|
+
|
|
327
|
+
```python
|
|
328
|
+
from llama_index.vector_stores.chroma import ChromaVectorStore
|
|
329
|
+
import chromadb
|
|
330
|
+
|
|
331
|
+
# Initialize Chroma
|
|
332
|
+
db = chromadb.PersistentClient(path="./chroma_db")
|
|
333
|
+
collection = db.get_or_create_collection("my_collection")
|
|
334
|
+
|
|
335
|
+
# Create vector store
|
|
336
|
+
vector_store = ChromaVectorStore(chroma_collection=collection)
|
|
337
|
+
|
|
338
|
+
# Use in index
|
|
339
|
+
from llama_index.core import StorageContext
|
|
340
|
+
storage_context = StorageContext.from_defaults(vector_store=vector_store)
|
|
341
|
+
index = VectorStoreIndex.from_documents(documents, storage_context=storage_context)
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### Pinecone (cloud)
|
|
345
|
+
|
|
346
|
+
```python
|
|
347
|
+
from llama_index.vector_stores.pinecone import PineconeVectorStore
|
|
348
|
+
import pinecone
|
|
349
|
+
|
|
350
|
+
# Initialize Pinecone
|
|
351
|
+
pinecone.init(api_key="your-key", environment="us-west1-gcp")
|
|
352
|
+
pinecone_index = pinecone.Index("my-index")
|
|
353
|
+
|
|
354
|
+
# Create vector store
|
|
355
|
+
vector_store = PineconeVectorStore(pinecone_index=pinecone_index)
|
|
356
|
+
storage_context = StorageContext.from_defaults(vector_store=vector_store)
|
|
357
|
+
|
|
358
|
+
index = VectorStoreIndex.from_documents(documents, storage_context=storage_context)
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### FAISS (fast)
|
|
362
|
+
|
|
363
|
+
```python
|
|
364
|
+
from llama_index.vector_stores.faiss import FaissVectorStore
|
|
365
|
+
import faiss
|
|
366
|
+
|
|
367
|
+
# Create FAISS index
|
|
368
|
+
d = 1536 # Dimension of embeddings
|
|
369
|
+
faiss_index = faiss.IndexFlatL2(d)
|
|
370
|
+
|
|
371
|
+
vector_store = FaissVectorStore(faiss_index=faiss_index)
|
|
372
|
+
storage_context = StorageContext.from_defaults(vector_store=vector_store)
|
|
373
|
+
|
|
374
|
+
index = VectorStoreIndex.from_documents(documents, storage_context=storage_context)
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
## Customization
|
|
378
|
+
|
|
379
|
+
### Custom LLM
|
|
380
|
+
|
|
381
|
+
```python
|
|
382
|
+
from llama_index.llms.anthropic import Anthropic
|
|
383
|
+
from llama_index.core import Settings
|
|
384
|
+
|
|
385
|
+
# Set global LLM
|
|
386
|
+
Settings.llm = Anthropic(model="claude-sonnet-4-5-20250929")
|
|
387
|
+
|
|
388
|
+
# Now all queries use Anthropic
|
|
389
|
+
query_engine = index.as_query_engine()
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### Custom embeddings
|
|
393
|
+
|
|
394
|
+
```python
|
|
395
|
+
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
|
|
396
|
+
|
|
397
|
+
# Use HuggingFace embeddings
|
|
398
|
+
Settings.embed_model = HuggingFaceEmbedding(
|
|
399
|
+
model_name="sentence-transformers/all-mpnet-base-v2"
|
|
400
|
+
)
|
|
401
|
+
|
|
402
|
+
index = VectorStoreIndex.from_documents(documents)
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
### Custom prompt templates
|
|
406
|
+
|
|
407
|
+
```python
|
|
408
|
+
from llama_index.core import PromptTemplate
|
|
409
|
+
|
|
410
|
+
qa_prompt = PromptTemplate(
|
|
411
|
+
"Context: {context_str}\n"
|
|
412
|
+
"Question: {query_str}\n"
|
|
413
|
+
"Answer the question based only on the context. "
|
|
414
|
+
"If the answer is not in the context, say 'I don't know'.\n"
|
|
415
|
+
"Answer: "
|
|
416
|
+
)
|
|
417
|
+
|
|
418
|
+
query_engine = index.as_query_engine(text_qa_template=qa_prompt)
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
## Multi-modal RAG
|
|
422
|
+
|
|
423
|
+
### Image + text
|
|
424
|
+
|
|
425
|
+
```python
|
|
426
|
+
from llama_index.core import SimpleDirectoryReader
|
|
427
|
+
from llama_index.multi_modal_llms.openai import OpenAIMultiModal
|
|
428
|
+
|
|
429
|
+
# Load images and documents
|
|
430
|
+
documents = SimpleDirectoryReader(
|
|
431
|
+
"./data",
|
|
432
|
+
required_exts=[".jpg", ".png", ".pdf"]
|
|
433
|
+
).load_data()
|
|
434
|
+
|
|
435
|
+
# Multi-modal index
|
|
436
|
+
index = VectorStoreIndex.from_documents(documents)
|
|
437
|
+
|
|
438
|
+
# Query with multi-modal LLM
|
|
439
|
+
multi_modal_llm = OpenAIMultiModal(model="gpt-4o")
|
|
440
|
+
query_engine = index.as_query_engine(llm=multi_modal_llm)
|
|
441
|
+
|
|
442
|
+
response = query_engine.query("What is in the diagram on page 3?")
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
## Evaluation
|
|
446
|
+
|
|
447
|
+
### Response quality
|
|
448
|
+
|
|
449
|
+
```python
|
|
450
|
+
from llama_index.core.evaluation import RelevancyEvaluator, FaithfulnessEvaluator
|
|
451
|
+
|
|
452
|
+
# Evaluate relevance
|
|
453
|
+
relevancy = RelevancyEvaluator()
|
|
454
|
+
result = relevancy.evaluate_response(
|
|
455
|
+
query="What is Python?",
|
|
456
|
+
response=response
|
|
457
|
+
)
|
|
458
|
+
print(f"Relevancy: {result.passing}")
|
|
459
|
+
|
|
460
|
+
# Evaluate faithfulness (no hallucination)
|
|
461
|
+
faithfulness = FaithfulnessEvaluator()
|
|
462
|
+
result = faithfulness.evaluate_response(
|
|
463
|
+
query="What is Python?",
|
|
464
|
+
response=response
|
|
465
|
+
)
|
|
466
|
+
print(f"Faithfulness: {result.passing}")
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
## Best practices
|
|
470
|
+
|
|
471
|
+
1. **Use vector indices for most cases** - Best performance
|
|
472
|
+
2. **Save indices to disk** - Avoid re-indexing
|
|
473
|
+
3. **Chunk documents properly** - 512-1024 tokens optimal
|
|
474
|
+
4. **Add metadata** - Enables filtering and tracking
|
|
475
|
+
5. **Use streaming** - Better UX for long responses
|
|
476
|
+
6. **Enable verbose during dev** - See retrieval process
|
|
477
|
+
7. **Evaluate responses** - Check relevance and faithfulness
|
|
478
|
+
8. **Use chat engine for conversations** - Built-in memory
|
|
479
|
+
9. **Persist storage** - Don't lose your index
|
|
480
|
+
10. **Monitor costs** - Track embedding and LLM usage
|
|
481
|
+
|
|
482
|
+
## Common patterns
|
|
483
|
+
|
|
484
|
+
### Document Q&A system
|
|
485
|
+
|
|
486
|
+
```python
|
|
487
|
+
# Complete RAG pipeline
|
|
488
|
+
documents = SimpleDirectoryReader("docs").load_data()
|
|
489
|
+
index = VectorStoreIndex.from_documents(documents)
|
|
490
|
+
index.storage_context.persist(persist_dir="./storage")
|
|
491
|
+
|
|
492
|
+
# Query
|
|
493
|
+
query_engine = index.as_query_engine(
|
|
494
|
+
similarity_top_k=3,
|
|
495
|
+
response_mode="compact",
|
|
496
|
+
verbose=True
|
|
497
|
+
)
|
|
498
|
+
response = query_engine.query("What is the main topic?")
|
|
499
|
+
print(response)
|
|
500
|
+
print(f"Sources: {[node.metadata['file_name'] for node in response.source_nodes]}")
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
### Chatbot with memory
|
|
504
|
+
|
|
505
|
+
```python
|
|
506
|
+
# Conversational interface
|
|
507
|
+
chat_engine = index.as_chat_engine(
|
|
508
|
+
chat_mode="condense_plus_context",
|
|
509
|
+
verbose=True
|
|
510
|
+
)
|
|
511
|
+
|
|
512
|
+
# Multi-turn chat
|
|
513
|
+
while True:
|
|
514
|
+
user_input = input("You: ")
|
|
515
|
+
if user_input.lower() == "quit":
|
|
516
|
+
break
|
|
517
|
+
response = chat_engine.chat(user_input)
|
|
518
|
+
print(f"Bot: {response}")
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
## Performance benchmarks
|
|
522
|
+
|
|
523
|
+
| Operation | Latency | Notes |
|
|
524
|
+
|-----------|---------|-------|
|
|
525
|
+
| Index 100 docs | ~10-30s | One-time, can persist |
|
|
526
|
+
| Query (vector) | ~0.5-2s | Retrieval + LLM |
|
|
527
|
+
| Streaming query | ~0.5s first token | Better UX |
|
|
528
|
+
| Agent with tools | ~3-8s | Multiple tool calls |
|
|
529
|
+
|
|
530
|
+
## LlamaIndex vs LangChain
|
|
531
|
+
|
|
532
|
+
| Feature | LlamaIndex | LangChain |
|
|
533
|
+
|---------|------------|-----------|
|
|
534
|
+
| **Best for** | RAG, document Q&A | Agents, general LLM apps |
|
|
535
|
+
| **Data connectors** | 300+ (LlamaHub) | 100+ |
|
|
536
|
+
| **RAG focus** | Core feature | One of many |
|
|
537
|
+
| **Learning curve** | Easier for RAG | Steeper |
|
|
538
|
+
| **Customization** | High | Very high |
|
|
539
|
+
| **Documentation** | Excellent | Good |
|
|
540
|
+
|
|
541
|
+
**Use LlamaIndex when:**
|
|
542
|
+
- Your primary use case is RAG
|
|
543
|
+
- Need many data connectors
|
|
544
|
+
- Want simpler API for document Q&A
|
|
545
|
+
- Building knowledge retrieval system
|
|
546
|
+
|
|
547
|
+
**Use LangChain when:**
|
|
548
|
+
- Building complex agents
|
|
549
|
+
- Need more general-purpose tools
|
|
550
|
+
- Want more flexibility
|
|
551
|
+
- Complex multi-step workflows
|
|
552
|
+
|
|
553
|
+
## References
|
|
554
|
+
|
|
555
|
+
- **[Query Engines Guide](references/query_engines.md)** - Query modes, customization, streaming
|
|
556
|
+
- **[Agents Guide](references/agents.md)** - Tool creation, RAG agents, multi-step reasoning
|
|
557
|
+
- **[Data Connectors Guide](references/data_connectors.md)** - 300+ connectors, custom loaders
|
|
558
|
+
|
|
559
|
+
## Resources
|
|
560
|
+
|
|
561
|
+
- **GitHub**: https://github.com/run-llama/llama_index ⭐ 45,100+
|
|
562
|
+
- **Docs**: https://developers.llamaindex.ai/python/framework/
|
|
563
|
+
- **LlamaHub**: https://llamahub.ai (data connectors)
|
|
564
|
+
- **LlamaCloud**: https://cloud.llamaindex.ai (enterprise)
|
|
565
|
+
- **Discord**: https://discord.gg/dGcwcsnxhU
|
|
566
|
+
- **Version**: 0.14.7+
|
|
567
|
+
- **License**: MIT
|
|
568
|
+
|
|
569
|
+
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# LlamaIndex Agents Guide
|
|
2
|
+
|
|
3
|
+
Building agents with tools and RAG capabilities.
|
|
4
|
+
|
|
5
|
+
## Basic agent
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
from llama_index.core.agent import FunctionAgent
|
|
9
|
+
from llama_index.llms.openai import OpenAI
|
|
10
|
+
|
|
11
|
+
def multiply(a: int, b: int) -> int:
|
|
12
|
+
"""Multiply two numbers."""
|
|
13
|
+
return a * b
|
|
14
|
+
|
|
15
|
+
llm = OpenAI(model="gpt-4o")
|
|
16
|
+
agent = FunctionAgent.from_tools(
|
|
17
|
+
tools=[multiply],
|
|
18
|
+
llm=llm,
|
|
19
|
+
verbose=True
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
response = agent.chat("What is 25 * 17?")
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## RAG agent
|
|
26
|
+
|
|
27
|
+
```python
|
|
28
|
+
from llama_index.core.tools import QueryEngineTool
|
|
29
|
+
|
|
30
|
+
# Create query engine as tool
|
|
31
|
+
index = VectorStoreIndex.from_documents(documents)
|
|
32
|
+
|
|
33
|
+
query_tool = QueryEngineTool.from_defaults(
|
|
34
|
+
query_engine=index.as_query_engine(),
|
|
35
|
+
name="python_docs",
|
|
36
|
+
description="Useful for Python programming questions"
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
# Agent with RAG + calculator
|
|
40
|
+
agent = FunctionAgent.from_tools(
|
|
41
|
+
tools=[query_tool, multiply],
|
|
42
|
+
llm=llm
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
response = agent.chat("According to the docs, what is Python?")
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Multi-document agent
|
|
49
|
+
|
|
50
|
+
```python
|
|
51
|
+
# Multiple knowledge bases
|
|
52
|
+
python_tool = QueryEngineTool.from_defaults(
|
|
53
|
+
query_engine=python_index.as_query_engine(),
|
|
54
|
+
name="python_docs",
|
|
55
|
+
description="Python programming documentation"
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
numpy_tool = QueryEngineTool.from_defaults(
|
|
59
|
+
query_engine=numpy_index.as_query_engine(),
|
|
60
|
+
name="numpy_docs",
|
|
61
|
+
description="NumPy array documentation"
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
agent = FunctionAgent.from_tools(
|
|
65
|
+
tools=[python_tool, numpy_tool],
|
|
66
|
+
llm=llm
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
# Agent chooses correct knowledge base
|
|
70
|
+
response = agent.chat("How do I create numpy arrays?")
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Best practices
|
|
74
|
+
|
|
75
|
+
1. **Clear tool descriptions** - Agent needs to know when to use each tool
|
|
76
|
+
2. **Limit tools to 5-10** - Too many confuses agent
|
|
77
|
+
3. **Use verbose mode during dev** - See agent reasoning
|
|
78
|
+
4. **Combine RAG + calculation** - Powerful combination
|
|
79
|
+
5. **Test tool combinations** - Ensure they work together
|
|
80
|
+
|
|
81
|
+
## Resources
|
|
82
|
+
|
|
83
|
+
- **Agents Docs**: https://developers.llamaindex.ai/python/framework/modules/agents/
|