agent-recipes 0.0.5__py3-none-any.whl
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.
- agent_recipes/__init__.py +27 -0
- agent_recipes/recipe_runtime/__init__.py +28 -0
- agent_recipes/recipe_runtime/core.py +385 -0
- agent_recipes/templates/ai-ab-hook-tester/recipe.yaml +45 -0
- agent_recipes/templates/ai-ab-hook-tester/tools.py +169 -0
- agent_recipes/templates/ai-angle-generator/recipe.yaml +49 -0
- agent_recipes/templates/ai-angle-generator/tools.py +182 -0
- agent_recipes/templates/ai-api-doc-generator/README.md +59 -0
- agent_recipes/templates/ai-api-doc-generator/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-api-tester/README.md +60 -0
- agent_recipes/templates/ai-api-tester/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-audio-enhancer/README.md +59 -0
- agent_recipes/templates/ai-audio-enhancer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-audio-normalizer/README.md +13 -0
- agent_recipes/templates/ai-audio-normalizer/TEMPLATE.yaml +44 -0
- agent_recipes/templates/ai-audio-splitter/README.md +14 -0
- agent_recipes/templates/ai-audio-splitter/TEMPLATE.yaml +47 -0
- agent_recipes/templates/ai-background-music-generator/README.md +59 -0
- agent_recipes/templates/ai-background-music-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-background-remover/README.md +60 -0
- agent_recipes/templates/ai-background-remover/TEMPLATE.yaml +27 -0
- agent_recipes/templates/ai-barcode-scanner/README.md +60 -0
- agent_recipes/templates/ai-barcode-scanner/TEMPLATE.yaml +26 -0
- agent_recipes/templates/ai-blog-generator/README.md +59 -0
- agent_recipes/templates/ai-blog-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-brief-generator/recipe.yaml +52 -0
- agent_recipes/templates/ai-brief-generator/tools.py +231 -0
- agent_recipes/templates/ai-broll-builder/recipe.yaml +47 -0
- agent_recipes/templates/ai-broll-builder/tools.py +204 -0
- agent_recipes/templates/ai-calendar-scheduler/README.md +60 -0
- agent_recipes/templates/ai-calendar-scheduler/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-changelog-generator/README.md +14 -0
- agent_recipes/templates/ai-changelog-generator/TEMPLATE.yaml +46 -0
- agent_recipes/templates/ai-chart-generator/README.md +61 -0
- agent_recipes/templates/ai-chart-generator/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-code-documenter/README.md +12 -0
- agent_recipes/templates/ai-code-documenter/TEMPLATE.yaml +37 -0
- agent_recipes/templates/ai-code-refactorer/README.md +59 -0
- agent_recipes/templates/ai-code-refactorer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-code-reviewer/README.md +59 -0
- agent_recipes/templates/ai-code-reviewer/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-color-palette-extractor/README.md +60 -0
- agent_recipes/templates/ai-color-palette-extractor/TEMPLATE.yaml +27 -0
- agent_recipes/templates/ai-comment-miner/recipe.yaml +40 -0
- agent_recipes/templates/ai-comment-miner/tools.py +141 -0
- agent_recipes/templates/ai-commit-message-generator/README.md +59 -0
- agent_recipes/templates/ai-commit-message-generator/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-content-calendar/recipe.yaml +43 -0
- agent_recipes/templates/ai-content-calendar/tools.py +170 -0
- agent_recipes/templates/ai-context-enricher/recipe.yaml +48 -0
- agent_recipes/templates/ai-context-enricher/tools.py +258 -0
- agent_recipes/templates/ai-contract-analyzer/README.md +60 -0
- agent_recipes/templates/ai-contract-analyzer/TEMPLATE.yaml +34 -0
- agent_recipes/templates/ai-csv-cleaner/README.md +13 -0
- agent_recipes/templates/ai-csv-cleaner/TEMPLATE.yaml +45 -0
- agent_recipes/templates/ai-cta-generator/recipe.yaml +54 -0
- agent_recipes/templates/ai-cta-generator/tools.py +174 -0
- agent_recipes/templates/ai-daily-news-show/recipe.yaml +103 -0
- agent_recipes/templates/ai-daily-news-show/tools.py +308 -0
- agent_recipes/templates/ai-data-anonymizer/README.md +60 -0
- agent_recipes/templates/ai-data-anonymizer/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-data-profiler/README.md +14 -0
- agent_recipes/templates/ai-data-profiler/TEMPLATE.yaml +42 -0
- agent_recipes/templates/ai-dependency-auditor/README.md +12 -0
- agent_recipes/templates/ai-dependency-auditor/TEMPLATE.yaml +37 -0
- agent_recipes/templates/ai-doc-translator/README.md +12 -0
- agent_recipes/templates/ai-doc-translator/TEMPLATE.yaml +41 -0
- agent_recipes/templates/ai-duplicate-finder/README.md +59 -0
- agent_recipes/templates/ai-duplicate-finder/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-ebook-converter/README.md +60 -0
- agent_recipes/templates/ai-ebook-converter/TEMPLATE.yaml +27 -0
- agent_recipes/templates/ai-email-parser/README.md +59 -0
- agent_recipes/templates/ai-email-parser/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-etl-pipeline/README.md +60 -0
- agent_recipes/templates/ai-etl-pipeline/TEMPLATE.yaml +30 -0
- agent_recipes/templates/ai-excel-formula-generator/README.md +59 -0
- agent_recipes/templates/ai-excel-formula-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-face-blur/README.md +60 -0
- agent_recipes/templates/ai-face-blur/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-fact-checker/recipe.yaml +52 -0
- agent_recipes/templates/ai-fact-checker/tools.py +279 -0
- agent_recipes/templates/ai-faq-generator/README.md +59 -0
- agent_recipes/templates/ai-faq-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-file-organizer/README.md +59 -0
- agent_recipes/templates/ai-file-organizer/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-folder-packager/README.md +15 -0
- agent_recipes/templates/ai-folder-packager/TEMPLATE.yaml +48 -0
- agent_recipes/templates/ai-form-filler/README.md +60 -0
- agent_recipes/templates/ai-form-filler/TEMPLATE.yaml +30 -0
- agent_recipes/templates/ai-hashtag-optimizer/recipe.yaml +45 -0
- agent_recipes/templates/ai-hashtag-optimizer/tools.py +134 -0
- agent_recipes/templates/ai-hook-generator/recipe.yaml +50 -0
- agent_recipes/templates/ai-hook-generator/tools.py +177 -0
- agent_recipes/templates/ai-image-captioner/README.md +59 -0
- agent_recipes/templates/ai-image-captioner/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-image-cataloger/README.md +13 -0
- agent_recipes/templates/ai-image-cataloger/TEMPLATE.yaml +39 -0
- agent_recipes/templates/ai-image-optimizer/README.md +13 -0
- agent_recipes/templates/ai-image-optimizer/TEMPLATE.yaml +43 -0
- agent_recipes/templates/ai-image-resizer/README.md +12 -0
- agent_recipes/templates/ai-image-resizer/TEMPLATE.yaml +39 -0
- agent_recipes/templates/ai-image-tagger/README.md +59 -0
- agent_recipes/templates/ai-image-tagger/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-image-upscaler/README.md +60 -0
- agent_recipes/templates/ai-image-upscaler/TEMPLATE.yaml +27 -0
- agent_recipes/templates/ai-invoice-processor/README.md +60 -0
- agent_recipes/templates/ai-invoice-processor/TEMPLATE.yaml +34 -0
- agent_recipes/templates/ai-json-to-csv/README.md +12 -0
- agent_recipes/templates/ai-json-to-csv/TEMPLATE.yaml +36 -0
- agent_recipes/templates/ai-log-analyzer/README.md +59 -0
- agent_recipes/templates/ai-log-analyzer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-markdown-to-pdf/README.md +12 -0
- agent_recipes/templates/ai-markdown-to-pdf/TEMPLATE.yaml +40 -0
- agent_recipes/templates/ai-meeting-summarizer/README.md +59 -0
- agent_recipes/templates/ai-meeting-summarizer/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-meta-tag-generator/README.md +59 -0
- agent_recipes/templates/ai-meta-tag-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-news-capture-pack/recipe.yaml +42 -0
- agent_recipes/templates/ai-news-capture-pack/tools.py +150 -0
- agent_recipes/templates/ai-news-crawler/recipe.yaml +99 -0
- agent_recipes/templates/ai-news-crawler/tools.py +417 -0
- agent_recipes/templates/ai-news-deduper/recipe.yaml +47 -0
- agent_recipes/templates/ai-news-deduper/tools.py +235 -0
- agent_recipes/templates/ai-newsletter-generator/README.md +59 -0
- agent_recipes/templates/ai-newsletter-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-note-summarizer/README.md +59 -0
- agent_recipes/templates/ai-note-summarizer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-pdf-summarizer/README.md +12 -0
- agent_recipes/templates/ai-pdf-summarizer/TEMPLATE.yaml +40 -0
- agent_recipes/templates/ai-pdf-to-markdown/README.md +19 -0
- agent_recipes/templates/ai-pdf-to-markdown/TEMPLATE.yaml +63 -0
- agent_recipes/templates/ai-performance-analyzer/recipe.yaml +45 -0
- agent_recipes/templates/ai-performance-analyzer/tools.py +159 -0
- agent_recipes/templates/ai-podcast-cleaner/README.md +117 -0
- agent_recipes/templates/ai-podcast-cleaner/TEMPLATE.yaml +117 -0
- agent_recipes/templates/ai-podcast-cleaner/agents.yaml +59 -0
- agent_recipes/templates/ai-podcast-cleaner/workflow.yaml +77 -0
- agent_recipes/templates/ai-podcast-transcriber/README.md +59 -0
- agent_recipes/templates/ai-podcast-transcriber/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-post-copy-generator/recipe.yaml +41 -0
- agent_recipes/templates/ai-post-copy-generator/tools.py +105 -0
- agent_recipes/templates/ai-product-description-generator/README.md +59 -0
- agent_recipes/templates/ai-product-description-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-publisher-pack/recipe.yaml +44 -0
- agent_recipes/templates/ai-publisher-pack/tools.py +252 -0
- agent_recipes/templates/ai-qr-code-generator/README.md +60 -0
- agent_recipes/templates/ai-qr-code-generator/TEMPLATE.yaml +26 -0
- agent_recipes/templates/ai-regex-generator/README.md +59 -0
- agent_recipes/templates/ai-regex-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-repo-readme/README.md +13 -0
- agent_recipes/templates/ai-repo-readme/TEMPLATE.yaml +42 -0
- agent_recipes/templates/ai-report-generator/README.md +61 -0
- agent_recipes/templates/ai-report-generator/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-resume-parser/README.md +60 -0
- agent_recipes/templates/ai-resume-parser/TEMPLATE.yaml +33 -0
- agent_recipes/templates/ai-rss-aggregator/README.md +60 -0
- agent_recipes/templates/ai-rss-aggregator/TEMPLATE.yaml +30 -0
- agent_recipes/templates/ai-schema-generator/README.md +12 -0
- agent_recipes/templates/ai-schema-generator/TEMPLATE.yaml +34 -0
- agent_recipes/templates/ai-screen-recorder/recipe.yaml +43 -0
- agent_recipes/templates/ai-screen-recorder/tools.py +184 -0
- agent_recipes/templates/ai-screenshot-capture/recipe.yaml +45 -0
- agent_recipes/templates/ai-screenshot-capture/tools.py +231 -0
- agent_recipes/templates/ai-screenshot-ocr/README.md +12 -0
- agent_recipes/templates/ai-screenshot-ocr/TEMPLATE.yaml +37 -0
- agent_recipes/templates/ai-script-writer/recipe.yaml +58 -0
- agent_recipes/templates/ai-script-writer/tools.py +297 -0
- agent_recipes/templates/ai-sentiment-analyzer/README.md +59 -0
- agent_recipes/templates/ai-sentiment-analyzer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-seo-optimizer/README.md +59 -0
- agent_recipes/templates/ai-seo-optimizer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-signal-ranker/recipe.yaml +54 -0
- agent_recipes/templates/ai-signal-ranker/tools.py +256 -0
- agent_recipes/templates/ai-sitemap-generator/README.md +59 -0
- agent_recipes/templates/ai-sitemap-generator/TEMPLATE.yaml +26 -0
- agent_recipes/templates/ai-sitemap-scraper/README.md +13 -0
- agent_recipes/templates/ai-sitemap-scraper/TEMPLATE.yaml +41 -0
- agent_recipes/templates/ai-slide-generator/README.md +60 -0
- agent_recipes/templates/ai-slide-generator/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-slide-to-notes/README.md +12 -0
- agent_recipes/templates/ai-slide-to-notes/TEMPLATE.yaml +37 -0
- agent_recipes/templates/ai-social-media-generator/README.md +59 -0
- agent_recipes/templates/ai-social-media-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-sql-generator/README.md +59 -0
- agent_recipes/templates/ai-sql-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-subtitle-generator/README.md +59 -0
- agent_recipes/templates/ai-subtitle-generator/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-test-generator/README.md +59 -0
- agent_recipes/templates/ai-test-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-translation-batch/README.md +59 -0
- agent_recipes/templates/ai-translation-batch/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-url-to-markdown/README.md +14 -0
- agent_recipes/templates/ai-url-to-markdown/TEMPLATE.yaml +44 -0
- agent_recipes/templates/ai-video-chapter-generator/README.md +59 -0
- agent_recipes/templates/ai-video-chapter-generator/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-video-compressor/README.md +59 -0
- agent_recipes/templates/ai-video-compressor/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-video-editor/README.md +254 -0
- agent_recipes/templates/ai-video-editor/TEMPLATE.yaml +139 -0
- agent_recipes/templates/ai-video-editor/agents.yaml +36 -0
- agent_recipes/templates/ai-video-editor/requirements.txt +8 -0
- agent_recipes/templates/ai-video-editor/scripts/run.sh +10 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__init__.py +45 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__main__.py +8 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/__init__.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/cli.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/config.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/ffmpeg_probe.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/heuristics.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/llm_plan.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/models.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/pipeline.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/render.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/timeline.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/transcribe.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/utils.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/cli.py +343 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/config.py +102 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/ffmpeg_probe.py +92 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/heuristics.py +119 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/llm_plan.py +277 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/models.py +343 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/pipeline.py +287 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/render.py +274 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/timeline.py +278 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/transcribe.py +233 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/utils.py +222 -0
- agent_recipes/templates/ai-video-editor/src/input.mov +0 -0
- agent_recipes/templates/ai-video-editor/src/out.mp4 +0 -0
- agent_recipes/templates/ai-video-editor/tests/test_heuristics.py +130 -0
- agent_recipes/templates/ai-video-editor/tests/test_models.py +152 -0
- agent_recipes/templates/ai-video-editor/tests/test_timeline.py +105 -0
- agent_recipes/templates/ai-video-editor/workflow.yaml +51 -0
- agent_recipes/templates/ai-video-highlight-extractor/README.md +60 -0
- agent_recipes/templates/ai-video-highlight-extractor/TEMPLATE.yaml +33 -0
- agent_recipes/templates/ai-video-merger/recipe.yaml +40 -0
- agent_recipes/templates/ai-video-merger/tools.py +172 -0
- agent_recipes/templates/ai-video-thumbnails/README.md +16 -0
- agent_recipes/templates/ai-video-thumbnails/TEMPLATE.yaml +53 -0
- agent_recipes/templates/ai-video-to-gif/README.md +14 -0
- agent_recipes/templates/ai-video-to-gif/TEMPLATE.yaml +64 -0
- agent_recipes/templates/ai-voice-cloner/README.md +59 -0
- agent_recipes/templates/ai-voice-cloner/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-voiceover-generator/recipe.yaml +41 -0
- agent_recipes/templates/ai-voiceover-generator/tools.py +194 -0
- agent_recipes/templates/ai-watermark-adder/README.md +59 -0
- agent_recipes/templates/ai-watermark-adder/TEMPLATE.yaml +26 -0
- agent_recipes/templates/ai-watermark-remover/README.md +60 -0
- agent_recipes/templates/ai-watermark-remover/TEMPLATE.yaml +32 -0
- agent_recipes/templates/data-transformer/README.md +75 -0
- agent_recipes/templates/data-transformer/TEMPLATE.yaml +63 -0
- agent_recipes/templates/data-transformer/agents.yaml +70 -0
- agent_recipes/templates/data-transformer/workflow.yaml +92 -0
- agent_recipes/templates/shorts-generator/README.md +61 -0
- agent_recipes/templates/shorts-generator/TEMPLATE.yaml +65 -0
- agent_recipes/templates/shorts-generator/agents.yaml +66 -0
- agent_recipes/templates/shorts-generator/workflow.yaml +86 -0
- agent_recipes/templates/transcript-generator/README.md +103 -0
- agent_recipes/templates/transcript-generator/TEMPLATE.yaml +57 -0
- agent_recipes/templates/transcript-generator/agents.yaml +62 -0
- agent_recipes/templates/transcript-generator/workflow.yaml +82 -0
- agent_recipes/templates/video-editor/README.md +70 -0
- agent_recipes/templates/video-editor/TEMPLATE.yaml +55 -0
- agent_recipes/templates/video-editor/agents.yaml +68 -0
- agent_recipes/templates/video-editor/workflow.yaml +92 -0
- agent_recipes-0.0.5.dist-info/METADATA +145 -0
- agent_recipes-0.0.5.dist-info/RECORD +269 -0
- agent_recipes-0.0.5.dist-info/WHEEL +5 -0
- agent_recipes-0.0.5.dist-info/top_level.txt +1 -0
- /236/326/177nE/243/231/214/232/265/322m/201/253/353/022C/372/321/266/b/225^=/272/017t/262/3337/310@/315wb/341pB/277z/216/330/314/004/265B/213/375/236/203/026/373/307/354z41/347#/374q/262/22589/032/276 /277/244Vh/322/017/004/224/215/004/367/377/375/335/n +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: ai-sentiment-analyzer
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Analyze sentiment in text data
|
|
4
|
+
author: praison
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags:
|
|
7
|
+
- data
|
|
8
|
+
- sentiment
|
|
9
|
+
- nlp
|
|
10
|
+
|
|
11
|
+
requires:
|
|
12
|
+
tools:
|
|
13
|
+
- llm_tool
|
|
14
|
+
packages:
|
|
15
|
+
- openai
|
|
16
|
+
env:
|
|
17
|
+
- OPENAI_API_KEY
|
|
18
|
+
|
|
19
|
+
cli:
|
|
20
|
+
command: praison recipes run ai-sentiment-analyzer
|
|
21
|
+
examples:
|
|
22
|
+
- praison recipes run ai-sentiment-analyzer <input>
|
|
23
|
+
- praison recipes run ai-sentiment-analyzer <input> --output ./output/
|
|
24
|
+
- praison recipes run ai-sentiment-analyzer <input> --dry-run
|
|
25
|
+
|
|
26
|
+
safety:
|
|
27
|
+
dry_run_default: false
|
|
28
|
+
overwrites_files: true
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Seo Optimizer
|
|
2
|
+
|
|
3
|
+
Optimize content for SEO with keywords
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install agent-recipes
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## CLI Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Basic usage
|
|
15
|
+
praison recipes run ai-seo-optimizer <input>
|
|
16
|
+
|
|
17
|
+
# With output directory
|
|
18
|
+
praison recipes run ai-seo-optimizer <input> --output ./output/
|
|
19
|
+
|
|
20
|
+
# Dry run (check dependencies only)
|
|
21
|
+
praison recipes run ai-seo-optimizer <input> --dry-run
|
|
22
|
+
|
|
23
|
+
# Show recipe info
|
|
24
|
+
praison recipes info ai-seo-optimizer
|
|
25
|
+
|
|
26
|
+
# Check dependencies
|
|
27
|
+
praison recipes doctor ai-seo-optimizer
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Python Usage
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from praisonaiagents import Agent
|
|
34
|
+
from agent_recipes import load_recipe
|
|
35
|
+
|
|
36
|
+
# Load and run recipe
|
|
37
|
+
recipe = load_recipe("ai-seo-optimizer")
|
|
38
|
+
result = recipe.run(input="<your-input>")
|
|
39
|
+
print(result)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
### Packages
|
|
45
|
+
- openai
|
|
46
|
+
|
|
47
|
+
### Environment Variables
|
|
48
|
+
- OPENAI_API_KEY
|
|
49
|
+
|
|
50
|
+
### External Tools
|
|
51
|
+
- None
|
|
52
|
+
|
|
53
|
+
## Tags
|
|
54
|
+
|
|
55
|
+
`web`, `seo`, `optimization`
|
|
56
|
+
|
|
57
|
+
## License
|
|
58
|
+
|
|
59
|
+
Apache-2.0
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: ai-seo-optimizer
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Optimize content for SEO with keywords
|
|
4
|
+
author: praison
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags:
|
|
7
|
+
- web
|
|
8
|
+
- seo
|
|
9
|
+
- optimization
|
|
10
|
+
|
|
11
|
+
requires:
|
|
12
|
+
tools:
|
|
13
|
+
- llm_tool
|
|
14
|
+
packages:
|
|
15
|
+
- openai
|
|
16
|
+
env:
|
|
17
|
+
- OPENAI_API_KEY
|
|
18
|
+
|
|
19
|
+
cli:
|
|
20
|
+
command: praison recipes run ai-seo-optimizer
|
|
21
|
+
examples:
|
|
22
|
+
- praison recipes run ai-seo-optimizer <input>
|
|
23
|
+
- praison recipes run ai-seo-optimizer <input> --output ./output/
|
|
24
|
+
- praison recipes run ai-seo-optimizer <input> --dry-run
|
|
25
|
+
|
|
26
|
+
safety:
|
|
27
|
+
dry_run_default: false
|
|
28
|
+
overwrites_files: true
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
name: ai-signal-ranker
|
|
2
|
+
version: 1.0.0
|
|
3
|
+
description: Rank news articles by novelty, velocity, and relevance signals
|
|
4
|
+
author: PraisonAI
|
|
5
|
+
tags:
|
|
6
|
+
- news
|
|
7
|
+
- ranking
|
|
8
|
+
- signals
|
|
9
|
+
- relevance
|
|
10
|
+
|
|
11
|
+
config:
|
|
12
|
+
ranking_criteria:
|
|
13
|
+
- novelty
|
|
14
|
+
- velocity
|
|
15
|
+
- relevance
|
|
16
|
+
- engagement
|
|
17
|
+
weights:
|
|
18
|
+
novelty: 0.3
|
|
19
|
+
velocity: 0.25
|
|
20
|
+
relevance: 0.25
|
|
21
|
+
engagement: 0.2
|
|
22
|
+
output_format: json
|
|
23
|
+
|
|
24
|
+
input:
|
|
25
|
+
type: object
|
|
26
|
+
properties:
|
|
27
|
+
articles:
|
|
28
|
+
type: array
|
|
29
|
+
context:
|
|
30
|
+
type: string
|
|
31
|
+
description: Context for relevance scoring
|
|
32
|
+
|
|
33
|
+
output:
|
|
34
|
+
type: object
|
|
35
|
+
properties:
|
|
36
|
+
ranked_articles:
|
|
37
|
+
type: array
|
|
38
|
+
signals:
|
|
39
|
+
type: object
|
|
40
|
+
|
|
41
|
+
requires:
|
|
42
|
+
env:
|
|
43
|
+
- OPENAI_API_KEY
|
|
44
|
+
|
|
45
|
+
workflow:
|
|
46
|
+
agents:
|
|
47
|
+
- name: ranker
|
|
48
|
+
role: Signal Analyst
|
|
49
|
+
goal: Rank articles by importance signals
|
|
50
|
+
tools:
|
|
51
|
+
- calculate_novelty
|
|
52
|
+
- calculate_velocity
|
|
53
|
+
- calculate_relevance
|
|
54
|
+
- rank_articles
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
"""
|
|
2
|
+
AI Signal Ranker Tools
|
|
3
|
+
|
|
4
|
+
Tools for ranking news articles by:
|
|
5
|
+
- Novelty: How new/unique is this information
|
|
6
|
+
- Velocity: How fast is this story spreading
|
|
7
|
+
- Relevance: How relevant to AI/tech audience
|
|
8
|
+
- Engagement: Social signals (comments, shares)
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import logging
|
|
12
|
+
import os
|
|
13
|
+
from datetime import datetime, timezone
|
|
14
|
+
from typing import Any, Dict, List, Optional
|
|
15
|
+
|
|
16
|
+
logger = logging.getLogger(__name__)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def calculate_novelty(
|
|
20
|
+
article: Dict[str, Any],
|
|
21
|
+
existing_topics: Optional[List[str]] = None,
|
|
22
|
+
) -> float:
|
|
23
|
+
"""
|
|
24
|
+
Calculate novelty score for an article.
|
|
25
|
+
|
|
26
|
+
Args:
|
|
27
|
+
article: Article dictionary
|
|
28
|
+
existing_topics: List of known topics to compare against
|
|
29
|
+
|
|
30
|
+
Returns:
|
|
31
|
+
Novelty score between 0 and 1
|
|
32
|
+
"""
|
|
33
|
+
score = 0.5 # Base score
|
|
34
|
+
|
|
35
|
+
title = article.get("title", "").lower()
|
|
36
|
+
content = article.get("content", "").lower()
|
|
37
|
+
text = f"{title} {content}"
|
|
38
|
+
|
|
39
|
+
# Novelty indicators
|
|
40
|
+
novelty_keywords = [
|
|
41
|
+
"breakthrough", "first", "new", "revolutionary", "unprecedented",
|
|
42
|
+
"announces", "launches", "releases", "introduces", "unveils",
|
|
43
|
+
"discovers", "achieves", "beats", "surpasses", "record"
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
for keyword in novelty_keywords:
|
|
47
|
+
if keyword in text:
|
|
48
|
+
score += 0.1
|
|
49
|
+
|
|
50
|
+
# Check against existing topics
|
|
51
|
+
if existing_topics:
|
|
52
|
+
is_new_topic = not any(topic.lower() in text for topic in existing_topics)
|
|
53
|
+
if is_new_topic:
|
|
54
|
+
score += 0.2
|
|
55
|
+
|
|
56
|
+
return min(1.0, score)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def calculate_velocity(
|
|
60
|
+
article: Dict[str, Any],
|
|
61
|
+
related_articles: Optional[List[Dict[str, Any]]] = None,
|
|
62
|
+
) -> float:
|
|
63
|
+
"""
|
|
64
|
+
Calculate velocity score based on how fast the story is spreading.
|
|
65
|
+
|
|
66
|
+
Args:
|
|
67
|
+
article: Article dictionary
|
|
68
|
+
related_articles: Other articles on the same topic
|
|
69
|
+
|
|
70
|
+
Returns:
|
|
71
|
+
Velocity score between 0 and 1
|
|
72
|
+
"""
|
|
73
|
+
score = 0.3 # Base score
|
|
74
|
+
|
|
75
|
+
# Check engagement metrics
|
|
76
|
+
comments = article.get("comments", 0)
|
|
77
|
+
article_score = article.get("score", 0)
|
|
78
|
+
|
|
79
|
+
# Normalize engagement
|
|
80
|
+
if comments > 100:
|
|
81
|
+
score += 0.3
|
|
82
|
+
elif comments > 50:
|
|
83
|
+
score += 0.2
|
|
84
|
+
elif comments > 10:
|
|
85
|
+
score += 0.1
|
|
86
|
+
|
|
87
|
+
if article_score > 500:
|
|
88
|
+
score += 0.2
|
|
89
|
+
elif article_score > 100:
|
|
90
|
+
score += 0.1
|
|
91
|
+
|
|
92
|
+
# Check recency
|
|
93
|
+
published = article.get("published", "")
|
|
94
|
+
if published:
|
|
95
|
+
try:
|
|
96
|
+
pub_time = datetime.fromisoformat(published.replace("Z", "+00:00"))
|
|
97
|
+
hours_old = (datetime.now(timezone.utc) - pub_time).total_seconds() / 3600
|
|
98
|
+
|
|
99
|
+
if hours_old < 2:
|
|
100
|
+
score += 0.2
|
|
101
|
+
elif hours_old < 6:
|
|
102
|
+
score += 0.1
|
|
103
|
+
except Exception:
|
|
104
|
+
pass
|
|
105
|
+
|
|
106
|
+
# Check if multiple sources are covering it
|
|
107
|
+
if related_articles and len(related_articles) > 2:
|
|
108
|
+
score += 0.2
|
|
109
|
+
|
|
110
|
+
return min(1.0, score)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
def calculate_relevance(
|
|
114
|
+
article: Dict[str, Any],
|
|
115
|
+
context: str = "AI technology news",
|
|
116
|
+
) -> float:
|
|
117
|
+
"""
|
|
118
|
+
Calculate relevance score for target audience.
|
|
119
|
+
|
|
120
|
+
Args:
|
|
121
|
+
article: Article dictionary
|
|
122
|
+
context: Context for relevance (e.g., "AI technology news")
|
|
123
|
+
|
|
124
|
+
Returns:
|
|
125
|
+
Relevance score between 0 and 1
|
|
126
|
+
"""
|
|
127
|
+
score = 0.3 # Base score
|
|
128
|
+
|
|
129
|
+
title = article.get("title", "").lower()
|
|
130
|
+
content = article.get("content", "").lower()
|
|
131
|
+
text = f"{title} {content}"
|
|
132
|
+
|
|
133
|
+
# High relevance keywords for AI audience
|
|
134
|
+
high_relevance = [
|
|
135
|
+
"gpt", "llm", "openai", "anthropic", "claude", "gemini", "google ai",
|
|
136
|
+
"machine learning", "deep learning", "neural network", "transformer",
|
|
137
|
+
"ai agent", "rag", "fine-tuning", "training", "inference",
|
|
138
|
+
"chatgpt", "copilot", "midjourney", "stable diffusion", "dall-e"
|
|
139
|
+
]
|
|
140
|
+
|
|
141
|
+
medium_relevance = [
|
|
142
|
+
"artificial intelligence", "automation", "robotics", "nlp",
|
|
143
|
+
"computer vision", "speech recognition", "embedding", "vector",
|
|
144
|
+
"model", "benchmark", "dataset", "research", "paper"
|
|
145
|
+
]
|
|
146
|
+
|
|
147
|
+
for keyword in high_relevance:
|
|
148
|
+
if keyword in text:
|
|
149
|
+
score += 0.15
|
|
150
|
+
|
|
151
|
+
for keyword in medium_relevance:
|
|
152
|
+
if keyword in text:
|
|
153
|
+
score += 0.05
|
|
154
|
+
|
|
155
|
+
# Source quality bonus
|
|
156
|
+
quality_sources = ["arxiv", "openai", "anthropic", "google", "meta", "microsoft"]
|
|
157
|
+
source = article.get("source", "").lower()
|
|
158
|
+
if any(qs in source for qs in quality_sources):
|
|
159
|
+
score += 0.1
|
|
160
|
+
|
|
161
|
+
return min(1.0, score)
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
def calculate_engagement(article: Dict[str, Any]) -> float:
|
|
165
|
+
"""
|
|
166
|
+
Calculate engagement score from social signals.
|
|
167
|
+
|
|
168
|
+
Args:
|
|
169
|
+
article: Article dictionary
|
|
170
|
+
|
|
171
|
+
Returns:
|
|
172
|
+
Engagement score between 0 and 1
|
|
173
|
+
"""
|
|
174
|
+
score = 0.2 # Base score
|
|
175
|
+
|
|
176
|
+
comments = article.get("comments", 0)
|
|
177
|
+
article_score = article.get("score", 0)
|
|
178
|
+
|
|
179
|
+
# Logarithmic scaling for engagement
|
|
180
|
+
import math
|
|
181
|
+
|
|
182
|
+
if comments > 0:
|
|
183
|
+
score += min(0.3, math.log10(comments + 1) / 10)
|
|
184
|
+
|
|
185
|
+
if article_score > 0:
|
|
186
|
+
score += min(0.3, math.log10(article_score + 1) / 10)
|
|
187
|
+
|
|
188
|
+
# Check for author reputation (if available)
|
|
189
|
+
author = article.get("author", "")
|
|
190
|
+
if author and len(author) > 0:
|
|
191
|
+
score += 0.1
|
|
192
|
+
|
|
193
|
+
return min(1.0, score)
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def rank_articles(
|
|
197
|
+
articles: List[Dict[str, Any]],
|
|
198
|
+
weights: Optional[Dict[str, float]] = None,
|
|
199
|
+
context: str = "AI technology news",
|
|
200
|
+
top_n: Optional[int] = None,
|
|
201
|
+
) -> Dict[str, Any]:
|
|
202
|
+
"""
|
|
203
|
+
Rank articles by combined signal scores.
|
|
204
|
+
|
|
205
|
+
Args:
|
|
206
|
+
articles: List of article dictionaries
|
|
207
|
+
weights: Custom weights for each signal
|
|
208
|
+
context: Context for relevance scoring
|
|
209
|
+
top_n: Return only top N articles
|
|
210
|
+
|
|
211
|
+
Returns:
|
|
212
|
+
Dictionary with ranked articles and signal breakdown
|
|
213
|
+
"""
|
|
214
|
+
if not articles:
|
|
215
|
+
return {"ranked_articles": [], "signals": {}}
|
|
216
|
+
|
|
217
|
+
weights = weights or {
|
|
218
|
+
"novelty": 0.3,
|
|
219
|
+
"velocity": 0.25,
|
|
220
|
+
"relevance": 0.25,
|
|
221
|
+
"engagement": 0.2,
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
ranked = []
|
|
225
|
+
|
|
226
|
+
for article in articles:
|
|
227
|
+
signals = {
|
|
228
|
+
"novelty": calculate_novelty(article),
|
|
229
|
+
"velocity": calculate_velocity(article),
|
|
230
|
+
"relevance": calculate_relevance(article, context),
|
|
231
|
+
"engagement": calculate_engagement(article),
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
# Calculate weighted score
|
|
235
|
+
total_score = sum(signals[k] * weights.get(k, 0.25) for k in signals)
|
|
236
|
+
|
|
237
|
+
ranked.append({
|
|
238
|
+
**article,
|
|
239
|
+
"signals": signals,
|
|
240
|
+
"total_score": round(total_score, 3),
|
|
241
|
+
})
|
|
242
|
+
|
|
243
|
+
# Sort by total score
|
|
244
|
+
ranked.sort(key=lambda x: x["total_score"], reverse=True)
|
|
245
|
+
|
|
246
|
+
if top_n:
|
|
247
|
+
ranked = ranked[:top_n]
|
|
248
|
+
|
|
249
|
+
return {
|
|
250
|
+
"ranked_articles": ranked,
|
|
251
|
+
"signals": {
|
|
252
|
+
"weights_used": weights,
|
|
253
|
+
"total_articles": len(ranked),
|
|
254
|
+
"avg_score": sum(a["total_score"] for a in ranked) / len(ranked) if ranked else 0,
|
|
255
|
+
}
|
|
256
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Sitemap Generator
|
|
2
|
+
|
|
3
|
+
Generate XML sitemaps from URLs
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install agent-recipes
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## CLI Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Basic usage
|
|
15
|
+
praison recipes run ai-sitemap-generator <input>
|
|
16
|
+
|
|
17
|
+
# With output directory
|
|
18
|
+
praison recipes run ai-sitemap-generator <input> --output ./output/
|
|
19
|
+
|
|
20
|
+
# Dry run (check dependencies only)
|
|
21
|
+
praison recipes run ai-sitemap-generator <input> --dry-run
|
|
22
|
+
|
|
23
|
+
# Show recipe info
|
|
24
|
+
praison recipes info ai-sitemap-generator
|
|
25
|
+
|
|
26
|
+
# Check dependencies
|
|
27
|
+
praison recipes doctor ai-sitemap-generator
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Python Usage
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from praisonaiagents import Agent
|
|
34
|
+
from agent_recipes import load_recipe
|
|
35
|
+
|
|
36
|
+
# Load and run recipe
|
|
37
|
+
recipe = load_recipe("ai-sitemap-generator")
|
|
38
|
+
result = recipe.run(input="<your-input>")
|
|
39
|
+
print(result)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
### Packages
|
|
45
|
+
- requests
|
|
46
|
+
|
|
47
|
+
### Environment Variables
|
|
48
|
+
- None
|
|
49
|
+
|
|
50
|
+
### External Tools
|
|
51
|
+
- None
|
|
52
|
+
|
|
53
|
+
## Tags
|
|
54
|
+
|
|
55
|
+
`web`, `sitemap`, `seo`
|
|
56
|
+
|
|
57
|
+
## License
|
|
58
|
+
|
|
59
|
+
Apache-2.0
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: ai-sitemap-generator
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Generate XML sitemaps from URLs
|
|
4
|
+
author: praison
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags:
|
|
7
|
+
- web
|
|
8
|
+
- sitemap
|
|
9
|
+
- seo
|
|
10
|
+
|
|
11
|
+
requires:
|
|
12
|
+
tools:
|
|
13
|
+
- web_tool
|
|
14
|
+
packages:
|
|
15
|
+
- requests
|
|
16
|
+
|
|
17
|
+
cli:
|
|
18
|
+
command: praison recipes run ai-sitemap-generator
|
|
19
|
+
examples:
|
|
20
|
+
- praison recipes run ai-sitemap-generator <input>
|
|
21
|
+
- praison recipes run ai-sitemap-generator <input> --output ./output/
|
|
22
|
+
- praison recipes run ai-sitemap-generator <input> --dry-run
|
|
23
|
+
|
|
24
|
+
safety:
|
|
25
|
+
dry_run_default: false
|
|
26
|
+
overwrites_files: true
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# AI Sitemap Scraper
|
|
2
|
+
|
|
3
|
+
Scrape content from sitemap URLs and save as structured data.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```bash
|
|
7
|
+
praison run ai-sitemap-scraper https://example.com/sitemap.xml
|
|
8
|
+
praison run ai-sitemap-scraper https://example.com/sitemap.xml --limit 50
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Output
|
|
12
|
+
- `pages.json` - URL list with metadata
|
|
13
|
+
- `content/` - Scraped content files
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: ai-sitemap-scraper
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Scrape content from sitemap URLs and save as structured data.
|
|
4
|
+
author: praisonai
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags: [web, sitemap, scraping, extraction]
|
|
7
|
+
|
|
8
|
+
requires:
|
|
9
|
+
tools: [shell_tool]
|
|
10
|
+
packages: [praisonai-tools, requests, beautifulsoup4]
|
|
11
|
+
|
|
12
|
+
config:
|
|
13
|
+
input:
|
|
14
|
+
type: string
|
|
15
|
+
required: true
|
|
16
|
+
output:
|
|
17
|
+
type: string
|
|
18
|
+
limit:
|
|
19
|
+
type: integer
|
|
20
|
+
default: 100
|
|
21
|
+
|
|
22
|
+
cli:
|
|
23
|
+
command: ai-sitemap-scraper
|
|
24
|
+
args:
|
|
25
|
+
- name: input
|
|
26
|
+
positional: true
|
|
27
|
+
required: true
|
|
28
|
+
- name: --output
|
|
29
|
+
short: -o
|
|
30
|
+
- name: --limit
|
|
31
|
+
default: "100"
|
|
32
|
+
examples:
|
|
33
|
+
- "praison run ai-sitemap-scraper https://example.com/sitemap.xml"
|
|
34
|
+
|
|
35
|
+
outputs:
|
|
36
|
+
- name: pages.json
|
|
37
|
+
type: file
|
|
38
|
+
- name: content/
|
|
39
|
+
type: directory
|
|
40
|
+
- name: run.json
|
|
41
|
+
type: file
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Slide Generator
|
|
2
|
+
|
|
3
|
+
Generate presentation slides from text/outline
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install agent-recipes
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## CLI Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Basic usage
|
|
15
|
+
praison recipes run ai-slide-generator <input>
|
|
16
|
+
|
|
17
|
+
# With output directory
|
|
18
|
+
praison recipes run ai-slide-generator <input> --output ./output/
|
|
19
|
+
|
|
20
|
+
# Dry run (check dependencies only)
|
|
21
|
+
praison recipes run ai-slide-generator <input> --dry-run
|
|
22
|
+
|
|
23
|
+
# Show recipe info
|
|
24
|
+
praison recipes info ai-slide-generator
|
|
25
|
+
|
|
26
|
+
# Check dependencies
|
|
27
|
+
praison recipes doctor ai-slide-generator
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Python Usage
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from praisonaiagents import Agent
|
|
34
|
+
from agent_recipes import load_recipe
|
|
35
|
+
|
|
36
|
+
# Load and run recipe
|
|
37
|
+
recipe = load_recipe("ai-slide-generator")
|
|
38
|
+
result = recipe.run(input="<your-input>")
|
|
39
|
+
print(result)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
### Packages
|
|
45
|
+
- openai
|
|
46
|
+
- python-pptx
|
|
47
|
+
|
|
48
|
+
### Environment Variables
|
|
49
|
+
- OPENAI_API_KEY
|
|
50
|
+
|
|
51
|
+
### External Tools
|
|
52
|
+
- None
|
|
53
|
+
|
|
54
|
+
## Tags
|
|
55
|
+
|
|
56
|
+
`document`, `presentation`, `slides`
|
|
57
|
+
|
|
58
|
+
## License
|
|
59
|
+
|
|
60
|
+
Apache-2.0
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: ai-slide-generator
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Generate presentation slides from text/outline
|
|
4
|
+
author: praison
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags:
|
|
7
|
+
- document
|
|
8
|
+
- presentation
|
|
9
|
+
- slides
|
|
10
|
+
|
|
11
|
+
requires:
|
|
12
|
+
tools:
|
|
13
|
+
- llm_tool
|
|
14
|
+
packages:
|
|
15
|
+
- openai
|
|
16
|
+
- python-pptx
|
|
17
|
+
env:
|
|
18
|
+
- OPENAI_API_KEY
|
|
19
|
+
|
|
20
|
+
cli:
|
|
21
|
+
command: praison recipes run ai-slide-generator
|
|
22
|
+
examples:
|
|
23
|
+
- praison recipes run ai-slide-generator <input>
|
|
24
|
+
- praison recipes run ai-slide-generator <input> --output ./output/
|
|
25
|
+
- praison recipes run ai-slide-generator <input> --dry-run
|
|
26
|
+
|
|
27
|
+
safety:
|
|
28
|
+
dry_run_default: false
|
|
29
|
+
overwrites_files: true
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: ai-slide-to-notes
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Convert presentation slides to structured notes.
|
|
4
|
+
author: praisonai
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags: [slides, notes, presentation, extraction]
|
|
7
|
+
|
|
8
|
+
requires:
|
|
9
|
+
tools: [shell_tool]
|
|
10
|
+
packages: [praisonai-tools]
|
|
11
|
+
env: [OPENAI_API_KEY]
|
|
12
|
+
|
|
13
|
+
config:
|
|
14
|
+
input:
|
|
15
|
+
type: string
|
|
16
|
+
required: true
|
|
17
|
+
output:
|
|
18
|
+
type: string
|
|
19
|
+
|
|
20
|
+
cli:
|
|
21
|
+
command: ai-slide-to-notes
|
|
22
|
+
args:
|
|
23
|
+
- name: input
|
|
24
|
+
positional: true
|
|
25
|
+
required: true
|
|
26
|
+
- name: --output
|
|
27
|
+
short: -o
|
|
28
|
+
examples:
|
|
29
|
+
- "praison run ai-slide-to-notes presentation.pdf"
|
|
30
|
+
|
|
31
|
+
outputs:
|
|
32
|
+
- name: notes.md
|
|
33
|
+
type: file
|
|
34
|
+
- name: outline.json
|
|
35
|
+
type: file
|
|
36
|
+
- name: run.json
|
|
37
|
+
type: file
|