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,182 @@
|
|
|
1
|
+
"""
|
|
2
|
+
AI Angle Generator Tools
|
|
3
|
+
|
|
4
|
+
Generate multiple content angles:
|
|
5
|
+
- Controversial takes
|
|
6
|
+
- Educational approaches
|
|
7
|
+
- Business/ROI focus
|
|
8
|
+
- Risk analysis
|
|
9
|
+
- Future predictions
|
|
10
|
+
- Personal stories
|
|
11
|
+
- Comparisons
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
import logging
|
|
15
|
+
import os
|
|
16
|
+
from typing import Any, Dict, List, Optional
|
|
17
|
+
|
|
18
|
+
logger = logging.getLogger(__name__)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def call_llm(prompt: str, max_tokens: int = 1500) -> str:
|
|
22
|
+
"""Call OpenAI API for text generation."""
|
|
23
|
+
import requests
|
|
24
|
+
|
|
25
|
+
api_key = os.environ.get("OPENAI_API_KEY")
|
|
26
|
+
if not api_key:
|
|
27
|
+
raise ValueError("OPENAI_API_KEY not set")
|
|
28
|
+
|
|
29
|
+
response = requests.post(
|
|
30
|
+
"https://api.openai.com/v1/chat/completions",
|
|
31
|
+
headers={
|
|
32
|
+
"Authorization": f"Bearer {api_key}",
|
|
33
|
+
"Content-Type": "application/json",
|
|
34
|
+
},
|
|
35
|
+
json={
|
|
36
|
+
"model": "gpt-4o-mini",
|
|
37
|
+
"messages": [{"role": "user", "content": prompt}],
|
|
38
|
+
"max_tokens": max_tokens,
|
|
39
|
+
"temperature": 0.9,
|
|
40
|
+
},
|
|
41
|
+
timeout=60,
|
|
42
|
+
)
|
|
43
|
+
response.raise_for_status()
|
|
44
|
+
return response.json()["choices"][0]["message"]["content"]
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def generate_angles(
|
|
48
|
+
topic: str,
|
|
49
|
+
angle_types: Optional[List[str]] = None,
|
|
50
|
+
num_angles: int = 5,
|
|
51
|
+
) -> Dict[str, Any]:
|
|
52
|
+
"""
|
|
53
|
+
Generate multiple content angles for a topic.
|
|
54
|
+
|
|
55
|
+
Args:
|
|
56
|
+
topic: The topic to generate angles for
|
|
57
|
+
angle_types: Types of angles to generate
|
|
58
|
+
num_angles: Number of angles to generate
|
|
59
|
+
|
|
60
|
+
Returns:
|
|
61
|
+
Dictionary with generated angles
|
|
62
|
+
"""
|
|
63
|
+
angle_types = angle_types or [
|
|
64
|
+
"controversial", "educational", "business",
|
|
65
|
+
"risk", "future_prediction"
|
|
66
|
+
]
|
|
67
|
+
|
|
68
|
+
angle_descriptions = {
|
|
69
|
+
"controversial": "A bold, contrarian take that challenges conventional wisdom",
|
|
70
|
+
"educational": "An informative, step-by-step teaching approach",
|
|
71
|
+
"business": "Focus on ROI, business impact, and practical applications",
|
|
72
|
+
"risk": "Highlight potential dangers, downsides, or things to watch out for",
|
|
73
|
+
"future_prediction": "Make predictions about where this is heading",
|
|
74
|
+
"personal_story": "Frame through personal experience or case study",
|
|
75
|
+
"comparison": "Compare and contrast with alternatives or competitors",
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
angles_text = "\n".join(
|
|
79
|
+
f"- {angle}: {angle_descriptions.get(angle, 'Unique perspective')}"
|
|
80
|
+
for angle in angle_types[:num_angles]
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
prompt = f"""Generate {num_angles} different content angles for this topic: {topic}
|
|
84
|
+
|
|
85
|
+
For each angle type, provide:
|
|
86
|
+
1. A compelling title/headline
|
|
87
|
+
2. The main hook or thesis
|
|
88
|
+
3. 3 key talking points
|
|
89
|
+
4. Target audience
|
|
90
|
+
|
|
91
|
+
Angle types to generate:
|
|
92
|
+
{angles_text}
|
|
93
|
+
|
|
94
|
+
Format each angle clearly with the type as a header."""
|
|
95
|
+
|
|
96
|
+
result = call_llm(prompt, max_tokens=2000)
|
|
97
|
+
|
|
98
|
+
# Parse angles from response
|
|
99
|
+
angles = []
|
|
100
|
+
current_angle = None
|
|
101
|
+
|
|
102
|
+
for line in result.split("\n"):
|
|
103
|
+
line = line.strip()
|
|
104
|
+
if not line:
|
|
105
|
+
continue
|
|
106
|
+
|
|
107
|
+
# Check if this is a new angle header
|
|
108
|
+
for angle_type in angle_types:
|
|
109
|
+
if angle_type.lower() in line.lower() and (":" in line or "#" in line):
|
|
110
|
+
if current_angle:
|
|
111
|
+
angles.append(current_angle)
|
|
112
|
+
current_angle = {
|
|
113
|
+
"type": angle_type,
|
|
114
|
+
"content": [],
|
|
115
|
+
}
|
|
116
|
+
break
|
|
117
|
+
|
|
118
|
+
if current_angle:
|
|
119
|
+
current_angle["content"].append(line)
|
|
120
|
+
|
|
121
|
+
if current_angle:
|
|
122
|
+
angles.append(current_angle)
|
|
123
|
+
|
|
124
|
+
# Format angles
|
|
125
|
+
formatted_angles = []
|
|
126
|
+
for angle in angles:
|
|
127
|
+
formatted_angles.append({
|
|
128
|
+
"type": angle["type"],
|
|
129
|
+
"content": "\n".join(angle["content"]),
|
|
130
|
+
})
|
|
131
|
+
|
|
132
|
+
return {
|
|
133
|
+
"angles": formatted_angles,
|
|
134
|
+
"topic": topic,
|
|
135
|
+
"raw_response": result,
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def evaluate_angles(
|
|
140
|
+
angles: List[Dict[str, Any]],
|
|
141
|
+
criteria: Optional[List[str]] = None,
|
|
142
|
+
) -> Dict[str, Any]:
|
|
143
|
+
"""
|
|
144
|
+
Evaluate and rank generated angles.
|
|
145
|
+
|
|
146
|
+
Args:
|
|
147
|
+
angles: List of angle dictionaries
|
|
148
|
+
criteria: Evaluation criteria
|
|
149
|
+
|
|
150
|
+
Returns:
|
|
151
|
+
Ranked angles with scores
|
|
152
|
+
"""
|
|
153
|
+
criteria = criteria or ["engagement_potential", "uniqueness", "clarity"]
|
|
154
|
+
|
|
155
|
+
evaluated = []
|
|
156
|
+
for angle in angles:
|
|
157
|
+
# Simple scoring based on content length and keywords
|
|
158
|
+
content = angle.get("content", "")
|
|
159
|
+
score = 0.5
|
|
160
|
+
|
|
161
|
+
# Engagement indicators
|
|
162
|
+
engagement_words = ["you", "your", "discover", "secret", "truth", "actually"]
|
|
163
|
+
for word in engagement_words:
|
|
164
|
+
if word in content.lower():
|
|
165
|
+
score += 0.1
|
|
166
|
+
|
|
167
|
+
# Uniqueness (longer content often more unique)
|
|
168
|
+
if len(content) > 200:
|
|
169
|
+
score += 0.1
|
|
170
|
+
|
|
171
|
+
evaluated.append({
|
|
172
|
+
**angle,
|
|
173
|
+
"score": min(1.0, score),
|
|
174
|
+
})
|
|
175
|
+
|
|
176
|
+
# Sort by score
|
|
177
|
+
evaluated.sort(key=lambda x: x["score"], reverse=True)
|
|
178
|
+
|
|
179
|
+
return {
|
|
180
|
+
"ranked_angles": evaluated,
|
|
181
|
+
"criteria_used": criteria,
|
|
182
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Api Doc Generator
|
|
2
|
+
|
|
3
|
+
Generate OpenAPI/Swagger docs from code
|
|
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-api-doc-generator <input>
|
|
16
|
+
|
|
17
|
+
# With output directory
|
|
18
|
+
praison recipes run ai-api-doc-generator <input> --output ./output/
|
|
19
|
+
|
|
20
|
+
# Dry run (check dependencies only)
|
|
21
|
+
praison recipes run ai-api-doc-generator <input> --dry-run
|
|
22
|
+
|
|
23
|
+
# Show recipe info
|
|
24
|
+
praison recipes info ai-api-doc-generator
|
|
25
|
+
|
|
26
|
+
# Check dependencies
|
|
27
|
+
praison recipes doctor ai-api-doc-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-api-doc-generator")
|
|
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
|
+
`code`, `api`, `documentation`, `openapi`
|
|
56
|
+
|
|
57
|
+
## License
|
|
58
|
+
|
|
59
|
+
Apache-2.0
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: ai-api-doc-generator
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Generate OpenAPI/Swagger docs from code
|
|
4
|
+
author: praison
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags:
|
|
7
|
+
- code
|
|
8
|
+
- api
|
|
9
|
+
- documentation
|
|
10
|
+
- openapi
|
|
11
|
+
|
|
12
|
+
requires:
|
|
13
|
+
tools:
|
|
14
|
+
- llm_tool
|
|
15
|
+
packages:
|
|
16
|
+
- openai
|
|
17
|
+
env:
|
|
18
|
+
- OPENAI_API_KEY
|
|
19
|
+
|
|
20
|
+
cli:
|
|
21
|
+
command: praison recipes run ai-api-doc-generator
|
|
22
|
+
examples:
|
|
23
|
+
- praison recipes run ai-api-doc-generator <input>
|
|
24
|
+
- praison recipes run ai-api-doc-generator <input> --output ./output/
|
|
25
|
+
- praison recipes run ai-api-doc-generator <input> --dry-run
|
|
26
|
+
|
|
27
|
+
safety:
|
|
28
|
+
dry_run_default: false
|
|
29
|
+
overwrites_files: true
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Api Tester
|
|
2
|
+
|
|
3
|
+
Auto-generate and run API endpoint tests
|
|
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-api-tester <input>
|
|
16
|
+
|
|
17
|
+
# With output directory
|
|
18
|
+
praison recipes run ai-api-tester <input> --output ./output/
|
|
19
|
+
|
|
20
|
+
# Dry run (check dependencies only)
|
|
21
|
+
praison recipes run ai-api-tester <input> --dry-run
|
|
22
|
+
|
|
23
|
+
# Show recipe info
|
|
24
|
+
praison recipes info ai-api-tester
|
|
25
|
+
|
|
26
|
+
# Check dependencies
|
|
27
|
+
praison recipes doctor ai-api-tester
|
|
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-api-tester")
|
|
38
|
+
result = recipe.run(input="<your-input>")
|
|
39
|
+
print(result)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
### Packages
|
|
45
|
+
- openai
|
|
46
|
+
- requests
|
|
47
|
+
|
|
48
|
+
### Environment Variables
|
|
49
|
+
- OPENAI_API_KEY
|
|
50
|
+
|
|
51
|
+
### External Tools
|
|
52
|
+
- None
|
|
53
|
+
|
|
54
|
+
## Tags
|
|
55
|
+
|
|
56
|
+
`code`, `api`, `testing`
|
|
57
|
+
|
|
58
|
+
## License
|
|
59
|
+
|
|
60
|
+
Apache-2.0
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: ai-api-tester
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Auto-generate and run API endpoint tests
|
|
4
|
+
author: praison
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags:
|
|
7
|
+
- code
|
|
8
|
+
- api
|
|
9
|
+
- testing
|
|
10
|
+
|
|
11
|
+
requires:
|
|
12
|
+
tools:
|
|
13
|
+
- llm_tool
|
|
14
|
+
packages:
|
|
15
|
+
- openai
|
|
16
|
+
- requests
|
|
17
|
+
env:
|
|
18
|
+
- OPENAI_API_KEY
|
|
19
|
+
|
|
20
|
+
cli:
|
|
21
|
+
command: praison recipes run ai-api-tester
|
|
22
|
+
examples:
|
|
23
|
+
- praison recipes run ai-api-tester <input>
|
|
24
|
+
- praison recipes run ai-api-tester <input> --output ./output/
|
|
25
|
+
- praison recipes run ai-api-tester <input> --dry-run
|
|
26
|
+
|
|
27
|
+
safety:
|
|
28
|
+
dry_run_default: true
|
|
29
|
+
overwrites_files: true
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Audio Enhancer
|
|
2
|
+
|
|
3
|
+
Noise removal, EQ, and loudness normalization for audio
|
|
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-audio-enhancer <input>
|
|
16
|
+
|
|
17
|
+
# With output directory
|
|
18
|
+
praison recipes run ai-audio-enhancer <input> --output ./output/
|
|
19
|
+
|
|
20
|
+
# Dry run (check dependencies only)
|
|
21
|
+
praison recipes run ai-audio-enhancer <input> --dry-run
|
|
22
|
+
|
|
23
|
+
# Show recipe info
|
|
24
|
+
praison recipes info ai-audio-enhancer
|
|
25
|
+
|
|
26
|
+
# Check dependencies
|
|
27
|
+
praison recipes doctor ai-audio-enhancer
|
|
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-audio-enhancer")
|
|
38
|
+
result = recipe.run(input="<your-input>")
|
|
39
|
+
print(result)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
### Packages
|
|
45
|
+
- ffmpeg-python
|
|
46
|
+
|
|
47
|
+
### Environment Variables
|
|
48
|
+
- None
|
|
49
|
+
|
|
50
|
+
### External Tools
|
|
51
|
+
- ffmpeg
|
|
52
|
+
|
|
53
|
+
## Tags
|
|
54
|
+
|
|
55
|
+
`audio`, `enhancement`, `noise-removal`
|
|
56
|
+
|
|
57
|
+
## License
|
|
58
|
+
|
|
59
|
+
Apache-2.0
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: ai-audio-enhancer
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Noise removal, EQ, and loudness normalization for audio
|
|
4
|
+
author: praison
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags:
|
|
7
|
+
- audio
|
|
8
|
+
- enhancement
|
|
9
|
+
- noise-removal
|
|
10
|
+
|
|
11
|
+
requires:
|
|
12
|
+
tools:
|
|
13
|
+
- media_tool
|
|
14
|
+
packages:
|
|
15
|
+
- ffmpeg-python
|
|
16
|
+
external:
|
|
17
|
+
- ffmpeg
|
|
18
|
+
|
|
19
|
+
cli:
|
|
20
|
+
command: praison recipes run ai-audio-enhancer
|
|
21
|
+
examples:
|
|
22
|
+
- praison recipes run ai-audio-enhancer <input>
|
|
23
|
+
- praison recipes run ai-audio-enhancer <input> --output ./output/
|
|
24
|
+
- praison recipes run ai-audio-enhancer <input> --dry-run
|
|
25
|
+
|
|
26
|
+
safety:
|
|
27
|
+
dry_run_default: true
|
|
28
|
+
overwrites_files: true
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# AI Audio Normalizer
|
|
2
|
+
|
|
3
|
+
Normalize audio loudness using EBU R128 standard.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```bash
|
|
7
|
+
praison run ai-audio-normalizer audio.mp3
|
|
8
|
+
praison run ai-audio-normalizer audio.wav --target-lufs -14
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Output
|
|
12
|
+
- `normalized.mp3` - Normalized audio
|
|
13
|
+
- `loudness-report.json` - Loudness analysis
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: ai-audio-normalizer
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Normalize audio loudness using EBU R128 standard.
|
|
4
|
+
author: praisonai
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags: [audio, normalization, loudness, ebu-r128]
|
|
7
|
+
|
|
8
|
+
requires:
|
|
9
|
+
tools: [shell_tool]
|
|
10
|
+
packages: [praisonai-tools]
|
|
11
|
+
external:
|
|
12
|
+
- name: ffmpeg
|
|
13
|
+
check: "ffmpeg -version"
|
|
14
|
+
|
|
15
|
+
config:
|
|
16
|
+
input:
|
|
17
|
+
type: string
|
|
18
|
+
required: true
|
|
19
|
+
output:
|
|
20
|
+
type: string
|
|
21
|
+
target_lufs:
|
|
22
|
+
type: number
|
|
23
|
+
default: -16.0
|
|
24
|
+
|
|
25
|
+
cli:
|
|
26
|
+
command: ai-audio-normalizer
|
|
27
|
+
args:
|
|
28
|
+
- name: input
|
|
29
|
+
positional: true
|
|
30
|
+
required: true
|
|
31
|
+
- name: --output
|
|
32
|
+
short: -o
|
|
33
|
+
- name: --target-lufs
|
|
34
|
+
default: "-16"
|
|
35
|
+
examples:
|
|
36
|
+
- "praison run ai-audio-normalizer audio.mp3"
|
|
37
|
+
|
|
38
|
+
outputs:
|
|
39
|
+
- name: normalized.mp3
|
|
40
|
+
type: file
|
|
41
|
+
- name: loudness-report.json
|
|
42
|
+
type: file
|
|
43
|
+
- name: run.json
|
|
44
|
+
type: file
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# AI Audio Splitter
|
|
2
|
+
|
|
3
|
+
Split long audio files by silence detection or chapter markers.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```bash
|
|
7
|
+
praison run ai-audio-splitter long_audio.mp3
|
|
8
|
+
praison run ai-audio-splitter podcast.wav --min-silence 2.0
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Output
|
|
12
|
+
- `tracks/` - Split audio tracks
|
|
13
|
+
- `manifest.json` - Track metadata
|
|
14
|
+
- `run.json` - Execution metadata
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
name: ai-audio-splitter
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Split long audio files by silence detection or chapter markers.
|
|
4
|
+
author: praisonai
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags: [audio, split, chapters, silence-detection]
|
|
7
|
+
|
|
8
|
+
requires:
|
|
9
|
+
tools: [shell_tool]
|
|
10
|
+
packages: [praisonai-tools]
|
|
11
|
+
external:
|
|
12
|
+
- name: ffmpeg
|
|
13
|
+
check: "ffmpeg -version"
|
|
14
|
+
|
|
15
|
+
config:
|
|
16
|
+
input:
|
|
17
|
+
type: string
|
|
18
|
+
required: true
|
|
19
|
+
output:
|
|
20
|
+
type: string
|
|
21
|
+
min_silence_duration:
|
|
22
|
+
type: number
|
|
23
|
+
default: 1.0
|
|
24
|
+
silence_threshold:
|
|
25
|
+
type: string
|
|
26
|
+
default: "-40dB"
|
|
27
|
+
|
|
28
|
+
cli:
|
|
29
|
+
command: ai-audio-splitter
|
|
30
|
+
args:
|
|
31
|
+
- name: input
|
|
32
|
+
positional: true
|
|
33
|
+
required: true
|
|
34
|
+
- name: --output
|
|
35
|
+
short: -o
|
|
36
|
+
- name: --min-silence
|
|
37
|
+
default: "1.0"
|
|
38
|
+
examples:
|
|
39
|
+
- "praison run ai-audio-splitter long_audio.mp3"
|
|
40
|
+
|
|
41
|
+
outputs:
|
|
42
|
+
- name: tracks/
|
|
43
|
+
type: directory
|
|
44
|
+
- name: manifest.json
|
|
45
|
+
type: file
|
|
46
|
+
- name: run.json
|
|
47
|
+
type: file
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Background Music Generator
|
|
2
|
+
|
|
3
|
+
Generate royalty-free background music for videos
|
|
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-background-music-generator <input>
|
|
16
|
+
|
|
17
|
+
# With output directory
|
|
18
|
+
praison recipes run ai-background-music-generator <input> --output ./output/
|
|
19
|
+
|
|
20
|
+
# Dry run (check dependencies only)
|
|
21
|
+
praison recipes run ai-background-music-generator <input> --dry-run
|
|
22
|
+
|
|
23
|
+
# Show recipe info
|
|
24
|
+
praison recipes info ai-background-music-generator
|
|
25
|
+
|
|
26
|
+
# Check dependencies
|
|
27
|
+
praison recipes doctor ai-background-music-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-background-music-generator")
|
|
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
|
+
`audio`, `music`, `generation`
|
|
56
|
+
|
|
57
|
+
## License
|
|
58
|
+
|
|
59
|
+
Apache-2.0
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: ai-background-music-generator
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Generate royalty-free background music for videos
|
|
4
|
+
author: praison
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
tags:
|
|
7
|
+
- audio
|
|
8
|
+
- music
|
|
9
|
+
- generation
|
|
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-background-music-generator
|
|
21
|
+
examples:
|
|
22
|
+
- praison recipes run ai-background-music-generator <input>
|
|
23
|
+
- praison recipes run ai-background-music-generator <input> --output ./output/
|
|
24
|
+
- praison recipes run ai-background-music-generator <input> --dry-run
|
|
25
|
+
|
|
26
|
+
safety:
|
|
27
|
+
dry_run_default: false
|
|
28
|
+
overwrites_files: true
|