Alwrity AI story writer
This commit is contained in:
10
README.md
10
README.md
@@ -98,7 +98,7 @@ Coming Soon....
|
|||||||
- **Analyzing and Extracting Image Details**: Uses OpenAI's Vision API, Google Gemini vision to analyze images and extract details such as alt text, descriptions, titles, and captions, enhancing the SEO of image content.
|
- **Analyzing and Extracting Image Details**: Uses OpenAI's Vision API, Google Gemini vision to analyze images and extract details such as alt text, descriptions, titles, and captions, enhancing the SEO of image content.
|
||||||
|
|
||||||
---
|
---
|
||||||
**Note**: This toolkit is designed for automated blog management and requires appropriate API keys and access credentials for full functionality.
|
### **Note**: This toolkit is designed for automated blog management and requires appropriate API keys and access credentials for full functionality.
|
||||||
---
|
---
|
||||||
|
|
||||||
### Web Research
|
### Web Research
|
||||||
@@ -131,13 +131,7 @@ Coming Soon....
|
|||||||
|
|
||||||
## Packages, Tools, and APIs Used
|
## Packages, Tools, and APIs Used
|
||||||
|
|
||||||
- **Libraries**:
|
### Standing on the shoulders of Giants:
|
||||||
- PyInquirer: For creating interactive command-line interfaces.
|
|
||||||
- Typer: For building CLI applications with ease.
|
|
||||||
- Tabulate: For formatting data in tabular form.
|
|
||||||
- Requests: For making HTTP requests to web APIs.
|
|
||||||
- python-dotenv: For loading environment variables from a .env file.
|
|
||||||
|
|
||||||
- **APIs**:
|
- **APIs**:
|
||||||
- Metaphor API: Provides semantic search capabilities for finding similar topics and technologies.
|
- Metaphor API: Provides semantic search capabilities for finding similar topics and technologies.
|
||||||
- Tavily API: Offers AI-powered web search functionality for conducting in-depth keyword research.
|
- Tavily API: Offers AI-powered web search functionality for conducting in-depth keyword research.
|
||||||
|
|||||||
67
alwrity.py
67
alwrity.py
@@ -200,7 +200,7 @@ def write_story():
|
|||||||
if os.getenv('GEMINI_API_KEY'):
|
if os.getenv('GEMINI_API_KEY'):
|
||||||
ai_story_generator(selected_persona_name, selected_persona_name, character_input)
|
ai_story_generator(selected_persona_name, selected_persona_name, character_input)
|
||||||
else:
|
else:
|
||||||
print(f"Provide Google Gemini API keys. Openai, mistral, ollama coming up.")
|
print(f"ERROR: Provide Google Gemini API keys. Openai, mistral, ollama coming up.")
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
|
|
||||||
@@ -212,28 +212,59 @@ def blog_tools():
|
|||||||
text += "_______________________________________________________________________\n"
|
text += "_______________________________________________________________________\n"
|
||||||
print(text)
|
print(text)
|
||||||
|
|
||||||
choices = [
|
personas = [
|
||||||
("Write Blog Title", "Write Blog Title"),
|
("Write Blog Title", "Write Blog Title"),
|
||||||
("Write Blog Meta Description", "Write Blog Meta Description"),
|
("Write Blog Meta Description", "Write Blog Meta Description"),
|
||||||
("Write Blog Introduction", "Write Blog Introduction"),
|
# ("Write Blog Introduction", "Write Blog Introduction"),
|
||||||
("Write Blog conclusion", "Write Blog conclusion"),
|
# ("Write Blog conclusion", "Write Blog conclusion"),
|
||||||
("Write Blog Outline", "Write Blog Outline"),
|
# ("Write Blog Outline", "Write Blog Outline"),
|
||||||
("Generate Blog FAQs", "Generate Blog FAQs"),
|
("Generate Blog FAQs", "Generate Blog FAQs"),
|
||||||
("Research blog references", "Research blog references"),
|
("AI Linkedin Post", "AI Linkedin Post"),
|
||||||
("Convert Blog To HTML", "Convert Blog To HTML"),
|
# ("Research blog references", "Research blog references"),
|
||||||
("Convert Blog To Markdown", "Convert Blog To Markdown"),
|
# ("Convert Blog To HTML", "Convert Blog To HTML"),
|
||||||
("Blog Proof Reader", "Blog Proof Reader"),
|
# ("Convert Blog To Markdown", "Convert Blog To Markdown"),
|
||||||
("Get Blog Tags", "Get Blog Tags"),
|
# ("Blog Proof Reader", "Blog Proof Reader"),
|
||||||
("Get blog categories", "Get blog categories"),
|
# ("Get Blog Tags", "Get Blog Tags"),
|
||||||
("Get Blog Code Examples", "Get Blog Code Examples"),
|
# ("Get blog categories", "Get blog categories"),
|
||||||
("Check WebPage Performance", "Check WebPage Performance"),
|
# ("Get Blog Code Examples", "Get Blog Code Examples"),
|
||||||
|
# ("Check WebPage Performance", "Check WebPage Performance"),
|
||||||
("Quit/Exit", "Quit/Exit")
|
("Quit/Exit", "Quit/Exit")
|
||||||
]
|
]
|
||||||
selected_tool = radiolist_dialog(title="Choose a Blogging Tool:", values=choices).run()
|
dialog = radiolist_dialog(
|
||||||
if selected_tool:
|
title = "Select Your AI content tool.",
|
||||||
tool = selected_tool[0]
|
text = "Choose a tool to use and visit provided online link to try them out.",
|
||||||
if tool == 'Write Blog Title':
|
values = personas
|
||||||
return
|
)
|
||||||
|
|
||||||
|
selected_persona_name = dialog.run()
|
||||||
|
|
||||||
|
persona_descriptions = {
|
||||||
|
"Write Blog Title": "Write Blog Title - VISIT: https://alwrity-title.streamlit.app/",
|
||||||
|
"Write Blog Meta Description": "Write Blog Meta Description - VISIT: https://alwrity-metadesc.streamlit.app/",
|
||||||
|
# "Write Blog Introduction": "Write Blog Introduction - To Be Done (TBD)",
|
||||||
|
# "Write Blog conclusion": "Write Blog conclusion - ",
|
||||||
|
# "Write Blog Outline": "Write Blog Outline - ",
|
||||||
|
"Generate Blog FAQs": "Generate Blog FAQs - VISIT: https://alwrity-faq.streamlit.app/",
|
||||||
|
"AI Linkedin Post": "AI Linkedin Post writer - VISIT: https://alwrity-linkedin.streamlit.app/",
|
||||||
|
# "Research blog references": "Research blog references - Example: https://example.com/research-blog-references",
|
||||||
|
# "Convert Blog To HTML": "Convert Blog To HTML - Example: https://example.com/convert-blog-to-html",
|
||||||
|
# "Convert Blog To Markdown": "Convert Blog To Markdown - Example: https://example.com/convert-blog-to-markdown",
|
||||||
|
# "Blog Proof Reader": "Blog Proof Reader - Example: https://example.com/blog-proof-reader",
|
||||||
|
# "Get Blog Tags": "Get Blog Tags - Example: https://example.com/get-blog-tags",
|
||||||
|
# "Get blog categories": "Get blog categories - Example: https://example.com/get-blog-categories",
|
||||||
|
# "Get Blog Code Examples": "Get Blog Code Examples - Example: https://example.com/get-blog-code-examples",
|
||||||
|
# "SEO Checks": "SEO checks - TBD",
|
||||||
|
"Quit/Exit": "Quit/Exit - Example: Quit/Exit"
|
||||||
|
}
|
||||||
|
|
||||||
|
if selected_persona_name:
|
||||||
|
selected_persona = next((persona for persona in personas if persona[0] == selected_persona_name), None)
|
||||||
|
if selected_persona:
|
||||||
|
character_input = message_dialog(
|
||||||
|
title=f"To Try {selected_persona_name}, Visit below URL:",
|
||||||
|
text=persona_descriptions[selected_persona_name]
|
||||||
|
).run()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def competitor_analysis():
|
def competitor_analysis():
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ num_results = 10
|
|||||||
time_range = anytime
|
time_range = anytime
|
||||||
|
|
||||||
# include_domains (Give Full URLs, separate by comma): A list of domains to specifically include in the search results.
|
# include_domains (Give Full URLs, separate by comma): A list of domains to specifically include in the search results.
|
||||||
# Default is None, which includes all domains. Example: Wikipedia.com, stackoverflow.com, google schalor, reddit etc
|
# Default is None, which includes all domains. Example: https://wikipedia.com,https://stackoverflow.com,google schalor,reddit etc
|
||||||
include_domains =
|
include_domains =
|
||||||
|
|
||||||
# similar_url : A single URL, this will instruct search engines to give results similar to the given URL.
|
# similar_url : A single URL, this will instruct search engines to give results similar to the given URL.
|
||||||
|
|||||||
Reference in New Issue
Block a user