Alwrity AI story writer

This commit is contained in:
AjaySi
2024-04-14 09:06:42 +05:30
parent c17dd2b2c8
commit 31995df984
3 changed files with 52 additions and 27 deletions

View File

@@ -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.

View File

@@ -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():

View File

@@ -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.