- 404: Page not found -
-Sorry, we've misplaced that URL or it's pointing to something that doesn't exist.
- -diff --git a/.gitignore b/.gitignore
index 4e8cad2d..337e506a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,24 +3,17 @@ __pycache__
pseo-experiemnts/
*.swp
venv/
-
*.pyc
__pycache__/
-
instance/
-
.pytest_cache/
.coverage
htmlcov/
-
dist/
build/
*.egg-info/
-
pseo-experiments/lib/python3.10/
-
pseo-experiments/bin/
-
blog_images/
-
+blogs/
pseo_website/
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index a6f6c9fe..00000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2021 Cotes Chung
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/README.md b/README.md
index d7f5ec4a..8216eac9 100644
--- a/README.md
+++ b/README.md
@@ -1,25 +1,43 @@
+# AI Blog Creation and Management Toolkit
+
## Introduction
+This toolkit automates and enhances the process of blog creation, optimization, and management. Leveraging AI technologies, it assists content creators and digital marketers in generating, formatting, and uploading blog content efficiently. The toolkit integrates advanced AI models for text generation, image creation, and data analysis, streamlining the content creation pipeline.
-Given high level domain keywords like "Fishing baits online" Or any 2-3 main key words that describe, broadly, your business.
-This tool will produce a SEO optimized blogs. This tool will suggest most popular blog topics, divide them in sub topics and write content for each sub topic. For each of the paragraphs, we summarise it and pass the line for text to image.
-Thus, the generated blog will have text and relevant images.
+## Features
-(TBD) Provide the blog output as plain text, markdown Or HTML.
+### Blog Generation and Optimization
+- **YouTube to Blog Conversion**: Converts YouTube videos into detailed blog posts by extracting and transcribing audio, then generating text-based content.
+- **Online Research Integration**: Enhances blog content by integrating insights and information gathered from online research, ensuring the content is informative and up-to-date.
+- **Image Generation and Processing**: Utilizes AI models like DALL-E 3 to create relevant images based on blog content. Offers features to process and optimize images for web usage.
+- **SEO Optimization**: Employs AI to generate SEO-friendly blog titles, meta descriptions, tags, and categories. Ensures content is optimized for search engines.
-Presently, wordpress and WIX integration is present for uploading the generated blog, but needs testing.
+### Speech-to-Text Conversion
+- **Audio Transcription**: Converts speech from video content into text, facilitating the creation of blogs and articles from video sources.
-### This is based on openai gpt models for content generation, google bard for keyword research and some basic tools for plagiarism checker, SEO audit and suggestions to improve the generated content.
-As prompts are the important ingredients to get the best result, they are stored in prompts folder. Edit these prompts to produce results as per your likings.
+### AI-Driven Content Creation
+- **Text Generation with OpenAI ChatGPT**: Leverages OpenAI's ChatGPT for generating creative and relevant text for blogs.
+- **Customizable AI Parameters**: Offers flexibility in adjusting AI parameters like model selection, temperature, and token limits to suit different content needs.
-- API based blog generation are much cheaper, almost 10x, but difficult to use for everyone. We use bard for search related prompts and chatgpt for generative requirements.
-- Jekyll static website is included for checking how blogs will look locally.
-
-### Check TBD for features currently under development.
+### Image Detail Extraction
+- **Analyzing and Extracting Image Details**: Uses OpenAI's Vision API to analyze images and extract details such as alt text, descriptions, titles, and captions, enhancing the SEO of image content.
-- Amazon affiliate links are also supported. Given, affiliate tag, your affiliate product links will included in the blogs.
-To use the module, simply create an instance of the AmazonAffiliateImages class, passing in your Amazon affiliate tag.
-Then, you can use the get_image_url() or get_image_html() methods to get the Amazon affiliate image URL or HTML
-for a product, passing in either the product ASIN or the product URL.
+
+## Installation and Configuration
+1. **Clone the Repository**: Clone the toolkit from the provided repository link.
+2. **Install Dependencies**: Install necessary Python packages and libraries.
+
+
+## Usage
+The toolkit provides functions for generating blogs from YouTube videos, detailed blogs from provided keywords, and optimizing them for SEO and readability. It supports content uploading to WordPress and includes comprehensive error handling.
+
+## Installation
+- Requires Python 3.x.
+- Install dependencies: `openai`, `nltk`, `tqdm`, `loguru`.
+- Set up API keys and credentials for OpenAI and WordPress.
+
+---
+
+**Note**: This toolkit is designed for automated blog management and requires appropriate API keys and access credentials for full functionality.
----------------------------------
@@ -45,30 +63,6 @@ options:
- Example:
python3 pseo_main.py --num_blogs "10" --keywords "Python, programming, data science" --niche True
-- Output is directly written as blog post for pseo_website and can found in pseo_website/_posts directory
-- Note: Follow instructions here to install jekyll : https://jekyllrb.com/docs/installation/
-- Read this: https://chirpy.cotes.page/posts/write-a-new-post/
-
-----------------------------------
-
-The generated blogs are present in generated_blogs folder. Presently, the blog template is rigid and follows the
-below pattern:
-[Blog Title]
-[Introduction of n chars]
-[Body]
-[Body][topic][content of n chars on sub-topic]
-[Conclusion]
-
-TBD: More templates and an easy way to change prompts are in pipeline.
-
------------------------------------
-
-PSEO Website:
-
-We are using jekyll static page generator and chirpy theme for it.
-This is easy enough to programmatically control and publish content.
-
-Checkout pseo_website directory for details.
-----------------------------------
diff --git a/TBD b/TBD
deleted file mode 100644
index 701a7eee..00000000
--- a/TBD
+++ /dev/null
@@ -1,13 +0,0 @@
-1). https://github.com/hardikvasa/google-images-download
-2). imagen from google
-3). dalle-3
-4). Bing images
-
-5). Include gpt researcher : https://python.langchain.com/docs/use_cases/web_scraping
-
-6). We need memory to store blogs posts and not repeat them.
-Have a database, or query from web hosting, of all the blogs present.
-
-7). Incorporate prompttemplate.
-
-8). Integrate website support for flask, django, wordpress, wix etc
diff --git a/lib/blog_proof_reader.py b/lib/blog_proof_reader.py
new file mode 100644
index 00000000..f806e285
--- /dev/null
+++ b/lib/blog_proof_reader.py
@@ -0,0 +1,33 @@
+def blog_proof_editor(blog_content, blog_keywords):
+ """
+ Helper for blog proof reading.
+ """
+ prompt = """I am looking for detailed editing and enhancement of the given blog post,
+ with a particular focus on maintaining originality.
+ The topic of the content is [{blog_keywords}]. Please go through the blog and make direct edits to improve it,
+ ensuring the final output is both high-quality and original.
+ Note: There are duplicates headings and corresponding paragraphs, rewrite into one subheading.
+
+ Here are the specific areas to focus on:
+
+ 1). Ensure Originality: Edit any sections that lack originality, replacing them with unique and creative content.
+ 2). Eliminate Repetitive Language: Rewrite repetitive phrases with varied and engaging language.
+ 3). Vocabulary and Grammar Enhancement: Directly correct any grammatical errors and upgrade the
+ vocabulary for better readability.
+ 4). Improve Sentence Structure: Enhance sentence construction for better clarity and flow.
+ 5). Tone and Brand Alignment: Adjust the tone, voice, personality of given content to make it unique.
+ 6). Optimize Content Structure: Reorganize the content for a more impactful presentation,
+ including better paragraphing and transitions.
+ 7). Remove Redundancies: Important, Cut out any redundant information or overly complex jargon.
+ 8). Refine Overall Structure: Make structural changes to improve the overall impact of the content.
+ 9). Remember, rewrite all content that repeated, while maintaining the formatting of the given blog text.
+
+ Please apply these changes directly to the following blog text and provide the edited version:
+ [blog_content]. """
+
+ try:
+ # TBD: Add logic for which_provider and which_model
+ response = openai_chatgpt(prompt)
+ return response
+ except Exception as err:
+ SystemError(f"Error Blog Proof Reading: {err}")
diff --git a/lib/combine_research_and_blog.py b/lib/combine_research_and_blog.py
new file mode 100644
index 00000000..18febd75
--- /dev/null
+++ b/lib/combine_research_and_blog.py
@@ -0,0 +1,40 @@
+def blog_with_research(report, blog):
+ """Combine the given online research and gpt blog content"""
+
+ prompt = f"""
+ You are an expert copywriter specializing in content optimization for SEO.
+ I will provide you with a research report and a blog content on the same topic.
+ Treat the research report as the context for the blog and better it accordingly.
+ Your task is to transform and combine the given research and blog content into a well-structured, unique
+ and engaging blog article.
+ Your objectives include:
+ 1. Master the report and blog content: Understand main ideas, key points, and the core message.
+ 2. Sentence Structure: Rephrase while preserving logical flow and coherence.
+ 3. Identify Main Keyword: Determine the primary topic and combine the articles on the main topic.
+ 4. Keyword Integration: Naturally integrate keywords in headings, subheadings, and body text, avoiding overuse.
+ 5. Write Unique Content: Avoid direct copying from given report and blog; rewrite in your own words and style.
+ 6. Optimize for SEO: Generate high quality informative content.
+ Implement SEO best practises with appropriate keyword density.
+ 7. Craft Engaging and Informative Article: Provide value and insight to readers.
+ 8. Proofread: Important to Check for grammar, spelling, and punctuation errors.
+ 9. Use Creative and Human-like Style: Incorporate contractions, idioms, transitional phrases,
+ interjections, and colloquialisms. Avoid repetitive phrases and unnatural sentence structures.
+ 10. Structuring: Include an Introduction, subtopics and use bullet points or
+ numbered lists if appropriate. Important to include FAQs, and Conclusion.
+ 11. Ensure Uniqueness: Guarantee the article is plagiarism-free. Write in unique, informative style.
+ 12. Punctuation: Use appropriate question marks at the end of questions.
+ 13. Pass AI Detection Tools: Create content that easily passes AI plagiarism detection tools.
+ 14. REMEMBER to give final response as complete HTML.
+ Follow these guidelines to create a well-optimized, unique, and informative article
+ that will rank well in search engine results and engage readers effectively.
+
+ Create a blog post from the given research report and blog content below.
+ Research report: {report}
+ Blog content: {blog}
+ """
+ try:
+ # TBD: Add logic for which_provider and which_model
+ response = openai_chatgpt(prompt)
+ return response
+ except Exception as err:
+ SystemError(f"Error in combining research report and blog content.")
diff --git a/lib/config.json b/lib/config.json
new file mode 100644
index 00000000..223ea29e
--- /dev/null
+++ b/lib/config.json
@@ -0,0 +1,8 @@
+{
+ "wordpress_url": "https://latestaitools.in/",
+ "wordpress_username": "username",
+ "wordpress_password": "password",
+ "image_dir": "path/to/image_dir",
+ "output_path": "path/to/output_path"
+}
+
diff --git a/lib/convert_content_to_markdown.py b/lib/convert_content_to_markdown.py
new file mode 100644
index 00000000..c6d67dc8
--- /dev/null
+++ b/lib/convert_content_to_markdown.py
@@ -0,0 +1,27 @@
+def convert_tomarkdown_format(blog_content):
+ """ Helper for converting content to markdown format for static sites. """
+ prompt = f"""
+ As an expert in markdown language format and font matter, used for static webpages.
+ Your task is to convert and improve formatting of given blog content.
+ Do Not modify the content, only modify to convert it into highly readable blog content.
+
+ Use below guidelines and include other best practises:
+ 1). Headers for Structure: Use # for main headings and increase the number of # for
+ subheadings (##, ###, etc.). Organize given content into clear, hierarchical sections.
+ 2). Emphasizing Text: Use single asterisks or underscores for italic (*italic* or _italic_),
+ double for bold (**bold** or __bold__), and triple for bold italic (***bold italic***).
+ 3). Lists: For unordered lists, use dashes, asterisks, or plus signs (-, *, +).
+ For ordered lists, use numbers followed by periods (1., 2., etc.).
+ 4). Blockquotes: Use > for blockquotes, and add additional > for nested blockquotes.
+ 5). Code Blocks: Use backticks for inline code (code) and triple backticks for code blocks.
+ Specify a language for syntax highlighting.
+ 6). Horizontal Lines: Create a horizontal line using three or more asterisks, dashes, or underscores (---, ***).
+ 7). Table Formatting: Use pipes | and dashes - to create tables. Align text with colons.
+
+ Convert the given blog content in well organised markdown content: {blog_content}"""
+ try:
+ # TBD: Add logic for which_provider and which_model
+ response = openai_chatgpt(prompt)
+ return response
+ except Exception as err:
+ SystemError(f"Error in converting to Markdown format.")
diff --git a/lib/convert_markdown_to_html.py b/lib/convert_markdown_to_html.py
new file mode 100644
index 00000000..403c0cb6
--- /dev/null
+++ b/lib/convert_markdown_to_html.py
@@ -0,0 +1,35 @@
+def convert_markdown_to_html(md_content):
+ """ Helper function to convert given text to HTML
+ """
+ prompt =f"""
+ You are a skilled web developer tasked with converting a Markdown-formatted text to HTML.
+ You will be given text in markdown format. Follow these steps to perform the conversion:
+
+ 1. Parse User's Markdown Input: You will receive a Markdown-formatted text as input from the user.
+ Carefully analyze the provided Markdown text, paying attention to different elements such as headings (#),
+ lists (unordered and ordered), bold and italic text, links, images, and code blocks.
+ 2. Generate and Validate HTML: Generate corresponding HTML code for each Markdown element following
+ the conversion guidelines below. Ensure the generated HTML is well-structured and syntactically correct.
+ 3. Preserve Line Breaks: Markdown line breaks (soft breaks) represented by two spaces at the end of a
+ line should be converted to
tags in HTML to preserve the line breaks.
+ 4. REMEMBER to generate complete, valid HTML response only.
+
+ Follow below Conversion Guidelines:
+ - Headers: Convert Markdown headers (#, ##, ###, etc.) to corresponding HTML header tags (
HTML tags. Convert code blocks (```) to HTML tags
+ for preserving formatting.
+ - Blockquotes: Convert blockquotes (>) to HTML tags.
+ Convert the following Markdown text to HTML: {md_content}
+ """
+ try:
+ # TBD: Add logic for which_provider and which_model
+ response = openai_chatgpt(prompt)
+ return response
+ except Exception as err:
+ SystemError(f"Error in convert to HTML")
diff --git a/lib/get_blog_category.py b/lib/get_blog_category.py
new file mode 100644
index 00000000..a64d33ab
--- /dev/null
+++ b/lib/get_blog_category.py
@@ -0,0 +1,16 @@
+def get_blog_categories(blog_article):
+ """
+ Function to generate blog categories for given blog content.
+ """
+ prompt = f"""As an expert SEO and content writer, I will provide you with blog content.
+ Suggest only 2 blog categories which are most relevant to provided blog content,
+ by identifying the main topic. Also consider the target audience and the
+ blog's category taxonomy. Only reply with comma separated values. The blog content is: {blog_article}"
+ """
+ try:
+ # TBD: Add logic for which_provider and which_model
+ response = openai_chatgpt(prompt)
+ except Exception as err:
+ SystemError(f"Error in generating blog categories: {err}")
+ else:
+ return response
diff --git a/lib/get_blog_conclusion.py b/lib/get_blog_conclusion.py
new file mode 100644
index 00000000..d2dfed3e
--- /dev/null
+++ b/lib/get_blog_conclusion.py
@@ -0,0 +1,15 @@
+def get_blog_conclusion(blog_content):
+ """
+ Accepts a blog content and concludes it.
+ """
+ prompt = f"""As an expert SEO and blog writer, please conclude the given blog providing vital take aways,
+ summarise key points (no more than 300 characters) in bullet points. The blog content: {blog_content}
+ """
+ logger.info(f"Generating blog conclusion iwth prompt: {prompt}")
+ try:
+ # TBD: Add logic for which_provider and which_model
+ response = openai_chatgpt(prompt)
+ except Exception as err:
+ SystemError(f"Error in generating blog conclusion: {err}")
+ else:
+ return response
diff --git a/lib/get_blog_content.py b/lib/get_blog_content.py
new file mode 100644
index 00000000..f65f3a32
--- /dev/null
+++ b/lib/get_blog_content.py
@@ -0,0 +1,18 @@
+def generate_topic_outline(blog_title, num_subtopics):
+ """
+ Given a blog title generate an outline for it
+ """
+ # TBD: Remove hardcoding, make dynamic
+ prompt = f"""As a SEO expert, suggest only {num_subtopics} beginner-friendly and
+ insightful sub topics for the blog title: {blog_title}.
+ Respond with only answer and no description, explanations."""
+
+ # The suggested {num_subtopics} outline should include few long-tailed keywords and most popular questions.
+ # TBD: Include --niche
+ logger.info(f"Prompt used for blog title Outline :\n{prompt}\n")
+ # TBD: Add logic for which_provider and which_model
+ try:
+ response = openai_chatgpt(prompt)
+ except Exception as err:
+ SystemError(f"Error in generating Blog Title: {err}")
+ return response
diff --git a/lib/get_blog_intro.py b/lib/get_blog_intro.py
new file mode 100644
index 00000000..70572b03
--- /dev/null
+++ b/lib/get_blog_intro.py
@@ -0,0 +1,16 @@
+def get_blog_intro(blog_title, blog_topics):
+ """
+ Generate blog introduction as per title and sub topics
+ """
+ prompt = f"""As a skilled wordsmith, I'll equip you with a blog title and relevant topics, tasking you with crafting an engaging introduction. Your challenge: Create a brief, compelling entry that entices readers to explore the entire post. This introduction must be concise (under 250 characters) yet powerful, clearly stating the blog's purpose and what readers stand to gain. Reply with only the introduction.
+
+Intrigue your audience from the start with vibrant language, employing strong verbs and vivid descriptions. Address a common challenge your readers face, demonstrating empathy and positioning yourself as their go-to expert. Pose thought-provoking questions that prompt reader engagement and contemplation.
+
+Remember, your words matter. This introduction serves as the cornerstone of the blog post. It should not only captivate attention but also encourage deeper exploration. Additionally, strategically integrate relevant keywords to enhance visibility on search engine results pages (SERPs). Your mission: Craft a blog introduction that resonates, leaving readers eager to delve further into the titled piece: '{blog_title}', covering these sub-topics: {blog_topics}."""
+
+ try:
+ # TBD: Add logic for which_provider and which_model
+ response = openai_chatgpt(prompt)
+ except Exception as err:
+ SystemError(f"Error in generating Blog Introduction: {err}")
+ return response
diff --git a/lib/get_blog_meta_desc.py b/lib/get_blog_meta_desc.py
new file mode 100644
index 00000000..2bc4b08c
--- /dev/null
+++ b/lib/get_blog_meta_desc.py
@@ -0,0 +1,17 @@
+def generate_blog_description(blog_content):
+ """
+ Prompt designed to give SEO optimized blog descripton
+ """
+ prompt = f"""As an expert SEO and blog writer, Compose a compelling meta description for the given blog content,
+ adhering to SEO best practices. Keep it between 150-160 characters, incorporating active verbs,
+ avoiding all caps and excessive punctuation. Ensure relevance, engage users, and encourage clicks.
+ Use keywords naturally and provide a glimpse of the content's value to entice readers.
+ Respond with only one of your best effort and do not include your explanations.
+ Blog Content: {blog_content}"""
+
+ try:
+ # TBD: Add logic for which_provider and which_model
+ response = openai_chatgpt(prompt)
+ return response
+ except Exception as err:
+ SystemError(f"Error in generating blog description: {err}")
diff --git a/lib/get_blog_outline.py b/lib/get_blog_outline.py
new file mode 100644
index 00000000..f65f3a32
--- /dev/null
+++ b/lib/get_blog_outline.py
@@ -0,0 +1,18 @@
+def generate_topic_outline(blog_title, num_subtopics):
+ """
+ Given a blog title generate an outline for it
+ """
+ # TBD: Remove hardcoding, make dynamic
+ prompt = f"""As a SEO expert, suggest only {num_subtopics} beginner-friendly and
+ insightful sub topics for the blog title: {blog_title}.
+ Respond with only answer and no description, explanations."""
+
+ # The suggested {num_subtopics} outline should include few long-tailed keywords and most popular questions.
+ # TBD: Include --niche
+ logger.info(f"Prompt used for blog title Outline :\n{prompt}\n")
+ # TBD: Add logic for which_provider and which_model
+ try:
+ response = openai_chatgpt(prompt)
+ except Exception as err:
+ SystemError(f"Error in generating Blog Title: {err}")
+ return response
diff --git a/lib/get_blog_tags.py b/lib/get_blog_tags.py
new file mode 100644
index 00000000..f82ef3b9
--- /dev/null
+++ b/lib/get_blog_tags.py
@@ -0,0 +1,16 @@
+def get_blog_tags(blog_article):
+ """
+ Function to suggest tags for the given blog content
+ """
+ # Suggest at least 5 tags for the following blog post [Enter your blog post text here].
+ prompt = f"""As an expert SEO and blog writer, suggest only 2 relevant and specific blog tags
+ for the given blog content. Only reply with comma separated values.
+ Blog content: {blog_article}."""
+
+ try:
+ # TBD: Add logic for which_provider and which_model
+ response = openai_chatgpt(prompt)
+ except Exception as err:
+ SystemError(f"Error in generating blog tags: {err}")
+ else:
+ return response
diff --git a/lib/get_blog_title.py b/lib/get_blog_title.py
new file mode 100644
index 00000000..33a2fa3f
--- /dev/null
+++ b/lib/get_blog_title.py
@@ -0,0 +1,20 @@
+def generate_blog_title(blog_meta_desc):
+ """
+ Given a blog title generate an outline for it
+ """
+ # TBD: Remove hardcoding, make dynamic
+ prompt = f"""As a SEO expert and content writer, I will provide you with meta description of blog.
+ Your task is write a SEO optimized, call to action and engaging blog title for it.
+ Follows SEO best practises to suggest the blog title.
+ Please keep the titles concise, not exceeding 60 words, and ensure to maintain their meaning.
+ Respond with only one title and no description or keyword like Title:
+ Generate blog title for this given blog content: {blog_meta_desc}
+ """
+ # The suggested {num_subtopics} outline should include few long-tailed keywords and most popular questions.
+ # TBD: Include --niche
+ logger.info(f"Prompt used for blog title :{prompt}")
+ try:
+ response = openai_chatgpt(prompt)
+ except Exception as err:
+ SystemError(f"Error in generating Blog Title: {err}")
+ return response
diff --git a/lib/get_blog_topics.py b/lib/get_blog_topics.py
new file mode 100644
index 00000000..2eff26da
--- /dev/null
+++ b/lib/get_blog_topics.py
@@ -0,0 +1,47 @@
+def generate_blog_topics(blog_keywords, num_blogs, niche):
+ """
+ For a given prompt, generate blog topics.
+ Using the davinci-instruct-beta-v3 model. It’s proven to be an ideal
+ one for generating unique blog content.
+ Ex: Generate SEO optimized blog topics on given keywords
+ """
+ prompt = f"""As an SEO specialist and blog writer, write {num_blogs} catchy
+ and SEO-friendly blog topics on {blog_keywords}. The blog title must be less than 80 characters.
+ The blog titles must follow best SEO practises, be engaging and invite/tempt users to read full blog.
+ Do not include descriptions, explanations. Do not number the result."""
+
+ # Beware of keywords stuffing, clustering, semantic should help avoid.
+ if num_blogs > 5:
+ # Get more keywords, based on user given keywords.
+ more_keywords = get_related_keywords(num_blogs, blog_keywords, niche)
+ prompt = prompt + """Use the following keywords wisely, without keyword stuffing: {more_keywords}"""
+
+ logger.info(f"Prompt used for generating blog topics: \n{prompt}\n")
+ try:
+ response = openai_chatgpt(prompt)
+ return response
+ except Exception as err:
+ SystemError(f"Error in generating blog topics: {err}")
+
+
+def get_related_keywords(num_blogs, keywords, niche):
+ """
+ Helper function to get more keywords from GPTs.
+ """
+ # Check if niche: use long tailed, else use popular keywords.
+ if niche:
+ prompt = (f"Generate a list without description of the top {num_blogs} most popular and semantically"
+ f"related long-tailed keywords and entities for the topic of {keywords} that are used in"
+ "high-quality content and relevant to my competitors."
+ )
+ else:
+ prompt = (f"Generate a list without description of the top {num_blogs} most popular and"
+ f" semantically related keywords and entities for the topic of {keywords} that are used"
+ " in high-quality content and relevant to my competitors."
+ )
+ try:
+ # TBD: Add logic for which_provider and which_model
+ response = openai_chatgpt(prompt)
+ return response
+ except Exception as err:
+ SystemError(f"Error in getting related keywords.")
diff --git a/lib/get_text_response.py b/lib/get_text_response.py
index 2a648d86..feb8d716 100644
--- a/lib/get_text_response.py
+++ b/lib/get_text_response.py
@@ -22,11 +22,13 @@ nltk.download('punkt', quiet=True)
from nltk.corpus import stopwords
nltk.download('stopwords', quiet=True)
-from .gpt_providers.openai_gpt_provider import openai_chatgpt, gen_new_from_given_img
-from .gpt_providers.openai_gpt_provider import analyze_and_extract_details_from_image
+from .gpt_providers.openai_gpt_provider import gen_new_from_given_img
+from .gpt_providers.openai_chat_completion import openai_chatgpt
+from .gpt_providers.gpt_vision_img_details import analyze_and_extract_details_from_image
from .generate_image_from_prompt import generate_image
from .write_blogs_from_youtube_videos import youtube_to_blog
from .wordpress_blog_uploader import compress_image, upload_blog_post, upload_media
+from .gpt_online_researcher import do_online_research
from loguru import logger
logger.remove()
@@ -35,33 +37,69 @@ logger.add(sys.stdout,
format="{level} |{file}:{line}:{function} | {message}"
)
+# Load configuration
+#with open('config.json') as config_file:
+# config = json.load(config_file)
+
+#wordpress_url = config['wordpress_url']
# fixme: Remove the hardcoding, need add another option OR in config ?
-image_dir = "pseo_website/assets/"
+image_dir = "blog_images"
image_dir = os.path.join(os.getcwd(), image_dir)
# TBD: This can come from config file.
-output_path = "pseo_website/_posts/"
+output_path = "blogs"
output_path = os.path.join(os.getcwd(), output_path)
wordpress_url = ''
-wordpress_username = ''
-wordpress_password = ''
+wordpress_username = 'upaudel750'
+wordpress_password = 'YvCS VbzQ QSp8 4XZe 0DUw Myys'
-def generate_youtube_blog(yt_url_list):
+def generate_youtube_blog(yt_url_list, output_format="markdown"):
"""Takes a list of youtube videos and generates blog for each one of them.
"""
# Use to store the blog in a string, to save in a *.md file.
blog_markdown_str = ""
for a_yt_url in yt_url_list:
try:
- yt_img_path, yt_blog = youtube_to_blog(a_yt_url)
+ logger.info(f"Starting to write blog on URL: {a_yt_url}")
+ yt_blog, yt_title = youtube_to_blog(a_yt_url)
+ if not yt_title or not yt_blog:
+ logger.error("No content or title for audio to proceed.")
+ sys.exit(1)
+ except Exception as e:
+ logger.error(f"Error in youtube_to_blog: {e}")
+ sys.exit(1)
+ try:
+ logger.info(f"Starting with online research for URL title: {yt_title}")
+ research_report = do_online_research(yt_title)
+ if not research_report:
+ logger.error(f"Error in do_online_research returned no report: {e}")
+ sys.exit(1)
+ except Exception as e:
+ logger.error(f"Error in do_online_research: {e}")
+ sys.exit(1)
+
+ try:
+ # Note: Check if the order of input matters for your function
+ logger.info("Preparing a blog content from audio script and online research content...")
+ blog_with_research(research_report, yt_blog)
+ except Exception as e:
+ logger.error(f"Error in blog_with_research: {e}")
+ sys.exit(1)
+
+ try:
# Get the title and meta description of the blog.
- title = generate_blog_title(yt_blog)
blog_meta_desc = generate_blog_description(yt_blog)
+ title = generate_blog_title(blog_meta_desc)
logger.info(f"Title is {title} and description is {blog_meta_desc}")
- #blog_markdown_str = "# " + title.replace('"', '') + "\n\n"
- # Generate an introduction for the blog
+ blog_markdown_str = "# " + title.replace('"', '') + "\n\n"
+ # Get blog tags and categories.
+ blog_tags = get_blog_tags(blog_meta_desc)
+ logger.info(f"Blog tags are: {blog_tags}")
+ blog_categories = get_blog_categories(blog_meta_desc)
+ logger.info(f"Blog categories are: {blog_categories}")
+ # Generate an introduction for the blog
blog_intro = get_blog_intro(title, yt_blog)
logger.info(f"The Blog intro is:\n {blog_intro}")
blog_markdown_str = blog_markdown_str + "\n\n" + f"{blog_intro}" + "\n\n"
@@ -86,20 +124,23 @@ def generate_youtube_blog(yt_url_list):
blog_conclusion = get_blog_conclusion(blog_markdown_str)
# TBD: Add another image.
blog_markdown_str = blog_markdown_str + "### Conclusion" + "\n\n" + f"{blog_conclusion}" + "\n"
- print(f"Conclusion: {blog_markdown_str}")
-
- # Get blog tags and categories.
- blog_tags = get_blog_tags(yt_blog)
- logger.info(f"Blog tags are: {blog_tags}")
- blog_categories = get_blog_categories(yt_blog)
- logger.info(f"Blog categories are: {blog_categories}")
- save_blog_to_file(blog_markdown_str, title, blog_meta_desc, blog_tags, blog_categories, main_img_path)
+ # Proofread the blog, edit and remove dubplicates and refine it further.
+ # Presently, fixing the blog keywords to be tags and categories.
+ blog_keywords = f"{blog_tags} + {blog_categories}"
+ blog_markdown_str = blog_proof_editor(blog_markdown_str, blog_keywords)
+
+ # Check the type of blog format needed by the user.
if 'html' in output_format:
+ blog_markdown_str = convert_tomarkdown_format(blog_markdown_str)
+ elif 'markdown' in output_path:
blog_markdown_str = convert_markdown_to_html(blog_markdown_str)
- save_blog_to_file(blog_markdown_str, title, blog_meta_desc, blog_tags, blog_categories, main_img_path)
- #print(html_blog)
+ # Try to save the blog content in a file, in whichever format. Just dump it.
+ try:
+ save_blog_to_file(blog_markdown_str, title, blog_meta_desc, blog_tags, blog_categories, main_img_path)
+ except Exception as err:
+ logger.error("Failed to Save blog content: {blog_markdown_str}")
except Exception as e:
# raise assertionerror
@@ -108,7 +149,7 @@ def generate_youtube_blog(yt_url_list):
def generate_detailed_blog(num_blogs, blog_keywords, niche, num_subtopics,
- wordpress=False, output_format="HTML"):
+ wordpress=False, research_online=False, output_format="HTML"):
"""
This function will take a blog Topic to first generate sections for it
and then generate content for each section.
@@ -136,7 +177,7 @@ def generate_detailed_blog(num_blogs, blog_keywords, niche, num_subtopics,
blog_intro = get_blog_intro(a_blog_topic, tpc_outlines)
logger.info(f"The intro is:\n{blog_intro}")
blog_markdown_str = blog_markdown_str + "### Introduction" + "\n\n" + f"{blog_intro}" + "\n\n"
- print(f"\n\n 1 -- BLOG_STR : {blog_markdown_str}\n\n")
+
# Now, for each blog we have sub topic. Generate content for each of the sub topic.
for a_outline in tpc_outlines:
a_outline = a_outline.replace('"', '')
@@ -145,7 +186,6 @@ def generate_detailed_blog(num_blogs, blog_keywords, niche, num_subtopics,
# a_outline is sub topic heading, hence part ToC also.
#blog_markdown_str = blog_markdown_str + "\n\n" + f"### {a_outline}" + "\n\n"
blog_markdown_str = blog_markdown_str + "\n" + f"\n {sub_topic_content}" + "\n\n"
- print(f"\n\n 3 -- BLOG_STR : {blog_markdown_str}\n\n")
# Get the Conclusion of the blog, by passing the generated blog.
blog_conclusion = get_blog_conclusion(blog_markdown_str)
@@ -154,6 +194,11 @@ def generate_detailed_blog(num_blogs, blog_keywords, niche, num_subtopics,
# logger.info/check the final blog content.
logger.info(f"Final blog content: {blog_markdown_str}")
+ #if research_online:
+ # # Call on the got-researcher, tavily apis for this. So many apis floating around.
+ # report = do_online_research_on(blog_keywords)
+ # blog_markdown_str = blog_with_research(report, blog_markdown_str)
+
blog_meta_desc = generate_blog_description(blog_markdown_str)
logger.info(f"\nThe blog meta description is:{blog_meta_desc}\n")
@@ -162,10 +207,10 @@ def generate_detailed_blog(num_blogs, blog_keywords, niche, num_subtopics,
main_img_path = generate_image(blog_meta_desc, image_dir, "dalle3")
blog_tags = get_blog_tags(blog_markdown_str)
- logger.info(f"\nBlog tags for generated content: {blog_tags}")
+ logger.info(f"\nBlog tags for generated content: {blog_tags}\n")
blog_categories = get_blog_categories(blog_markdown_str)
- logger.info(f"Generated blog categories: {blog_categories}")
+ logger.info(f"Generated blog categories: {blog_categories}\n")
# Use chatgpt to convert the text into HTML or markdown.
if 'html' in output_format:
@@ -178,6 +223,7 @@ def generate_detailed_blog(num_blogs, blog_keywords, niche, num_subtopics,
# Similar tags and categories will be missed.
# blog_categories =
# blog_tags =
+ logger.info("Uploading the blog to wordpress.\n")
main_img_path = compress_image(main_img_path, quality=85)
try:
img_details = analyze_and_extract_details_from_image(main_img_path)
@@ -247,14 +293,16 @@ def generate_blog_title(blog_meta_desc):
Given a blog title generate an outline for it
"""
# TBD: Remove hardcoding, make dynamic
- prompt = f"""As a SEO expert and content writer, I will provide you with blog. Your task is write title for it.
+ prompt = f"""As a SEO expert and content writer, I will provide you with meta description of blog.
+ Your task is write a SEO optimized, call to action and engaging blog title for it.
Follows SEO best practises to suggest the blog title.
Please keep the titles concise, not exceeding 60 words, and ensure to maintain their meaning.
- Respond with only one title and no description, for this given blog content: {blog_meta_desc}
+ Respond with only one title and no description or keyword like Title:
+ Generate blog title for this given meta description: {blog_meta_desc}
"""
# The suggested {num_subtopics} outline should include few long-tailed keywords and most popular questions.
# TBD: Include --niche
- logger.debug(f"Prompt used for blog title :{prompt}")
+ logger.info(f"Prompt used for blog title :{prompt}")
try:
response = openai_chatgpt(prompt)
except Exception as err:
@@ -494,6 +542,35 @@ def remove_stop_words(sentence):
return filtered_sentence
+def convert_tomarkdown_format(blog_content):
+ """ Helper for converting content to markdown format for static sites. """
+ prompt = f"""
+ As an expert in markdown language format and font matter, used for static webpages.
+ Your task is to convert and improve formatting of given blog content.
+ Do Not modify the content, only modify to convert it into highly readable blog content.
+
+ Use below guidelines and include other best practises:
+ 1). Headers for Structure: Use # for main headings and increase the number of # for
+ subheadings (##, ###, etc.). Organize given content into clear, hierarchical sections.
+ 2). Emphasizing Text: Use single asterisks or underscores for italic (*italic* or _italic_),
+ double for bold (**bold** or __bold__), and triple for bold italic (***bold italic***).
+ 3). Lists: For unordered lists, use dashes, asterisks, or plus signs (-, *, +).
+ For ordered lists, use numbers followed by periods (1., 2., etc.).
+ 4). Blockquotes: Use > for blockquotes, and add additional > for nested blockquotes.
+ 5). Code Blocks: Use backticks for inline code (code) and triple backticks for code blocks.
+ Specify a language for syntax highlighting.
+ 6). Horizontal Lines: Create a horizontal line using three or more asterisks, dashes, or underscores (---, ***).
+ 7). Table Formatting: Use pipes | and dashes - to create tables. Align text with colons.
+
+ Convert the given blog content in well organised markdown content: {blog_content}"""
+ try:
+ # TBD: Add logic for which_provider and which_model
+ response = openai_chatgpt(prompt)
+ return response
+ except Exception as err:
+ SystemError(f"Error in converting to Markdown format.")
+
+
def convert_markdown_to_html(md_content):
""" Helper function to convert given text to HTML
"""
@@ -527,5 +604,86 @@ def convert_markdown_to_html(md_content):
# TBD: Add logic for which_provider and which_model
response = openai_chatgpt(prompt)
return response
+ except Exception as err:
+ SystemError(f"Error in convert to HTML")
+
+
+def blog_with_research(report, blog):
+ """Combine the given online research and gpt blog content"""
+
+ prompt = f"""
+ You are an expert copywriter specializing in content optimization for SEO.
+ I will provide you with a research report and a blog content on the same topic.
+ Treat the research report as the context for the blog and better it accordingly.
+ Your task is to transform and combine the given research and blog content into a well-structured, unique
+ and engaging blog article.
+ Your objectives include:
+ 1. Master the report and blog content: Understand main ideas, key points, and the core message.
+ 2. Sentence Structure: Rephrase while preserving logical flow and coherence.
+ 3. Identify Main Keyword: Determine the primary topic and combine the articles on the main topic.
+ 4. Keyword Integration: Naturally integrate keywords in headings, subheadings, and body text, avoiding overuse.
+ 5. Write Unique Content: Avoid direct copying from given report and blog; rewrite in your own words and style.
+ 6. Optimize for SEO: Generate high quality informative content.
+ Implement SEO best practises with appropriate keyword density.
+ 7. Craft Engaging and Informative Article: Provide value and insight to readers.
+ 8. Proofread: Important to Check for grammar, spelling, and punctuation errors.
+ 9. Use Creative and Human-like Style: Incorporate contractions, idioms, transitional phrases,
+ interjections, and colloquialisms. Avoid repetitive phrases and unnatural sentence structures.
+ 10. Structuring: Include an Introduction, subtopics and use bullet points or
+ numbered lists if appropriate. Important to include FAQs, and Conclusion.
+ 11. Ensure Uniqueness: Guarantee the article is plagiarism-free. Write in unique, informative style.
+ 12. Punctuation: Use appropriate question marks at the end of questions.
+ 13. Pass AI Detection Tools: Create content that easily passes AI plagiarism detection tools.
+ 14. REMEMBER to give final response as complete HTML.
+ Follow these guidelines to create a well-optimized, unique, and informative article
+ that will rank well in search engine results and engage readers effectively.
+
+ Create a blog post from the given research report and blog content below.
+ Research report: {report}
+ Blog content: {blog}
+ """
+ try:
+ # TBD: Add logic for which_provider and which_model
+ response = openai_chatgpt(prompt)
+ return response
except Exception as err:
SystemError(f"Error in getting related keywords.")
+
+
+def blog_proof_editor(blog_content, blog_keywords):
+ """
+ Helper for blog proof reading.
+ """
+ if not blog_content and not blog_keywords:
+ logger.error("Blog proof reader has no content to proofread.")
+ exit(1)
+
+ prompt = f"""I am looking for detailed editing and enhancement of the given blog post,
+ with a particular focus on maintaining originality.
+ The topic of the content is [{blog_keywords}]. Please go through the blog and make direct edits to improve it,
+ ensuring the final output is both high-quality and original.
+ Note: There are duplicates headings and corresponding paragraphs, rewrite into one subheading.
+
+ Here are the specific areas to focus on:
+
+ 1). Ensure Originality: Edit any sections that lack originality, replacing them with unique and creative content.
+ 2). Eliminate Repetitive Language: Rewrite repetitive phrases with varied and engaging language.
+ 3). Vocabulary and Grammar Enhancement: Directly correct any grammatical errors and upgrade the
+ vocabulary for better readability.
+ 4). Improve Sentence Structure: Enhance sentence construction for better clarity and flow.
+ 5). Tone and Brand Alignment: Adjust the tone, voice, personality of given content to make it unique.
+ 6). Optimize Content Structure: Reorganize the content for a more impactful presentation,
+ including better paragraphing and transitions.
+ 7). Remove Redundancies: Important, Cut out any redundant information or overly complex jargon.
+ 8). Refine Overall Structure: Make structural changes to improve the overall impact of the content.
+ 9). Remember, rewrite all content that repeated, while maintaining the formatting of the given blog text.
+
+ Please apply these changes directly to the following blog text and provide the edited version:
+ [{blog_content}]. """
+
+ try:
+ # TBD: Add logic for which_provider and which_model
+ response = openai_chatgpt(prompt)
+ return response
+ except Exception as err:
+ SystemError(f"Error Blog Proof Reading: {err}")
diff --git a/lib/get_topic_content.py b/lib/get_topic_content.py
new file mode 100644
index 00000000..3d6fcabb
--- /dev/null
+++ b/lib/get_topic_content.py
@@ -0,0 +1,19 @@
+def generate_topic_content(blog_keywords, sub_topic):
+ """
+ For each of given topic generate content for it.
+ """
+ # The outline should contain various subheadings and include the starting sentence for each section.
+ # TBD: Depending on the usecase 'Voice and style' will change to professional etc.
+ prompt = f"""As a professional blogger and topic authority on {blog_keywords},
+ craft factual (no more than 200 characters) subtopic content on {sub_topic}.
+ Your response should reflect Experience, Expertise, Authoritativeness and Trustworthiness from content.
+ Voice and style guide: Write in a professional manner, giving enlightening details and reasons.
+ Use natural language and phrases that a real person would use: in normal conversations.
+ Format your response using markdown. REMEMBER Not to include introduction or conclusion in your response.
+ Use headings(h3 to h6 only), subheadings, bullet points, and bold to organize the information."""
+ logger.info(f"Generate topic content using prompt:\n{prompt}\n")
+ try:
+ response = openai_chatgpt(prompt)
+ return response
+ except Exception as err:
+ SystemError(f"Error in generating topic content: {err}")
diff --git a/lib/google_search_gpt_vision.py b/lib/google_search_gpt_vision.py
new file mode 100644
index 00000000..7beda133
--- /dev/null
+++ b/lib/google_search_gpt_vision.py
@@ -0,0 +1,108 @@
+import re #additional import for regex
+import os
+import json
+import requests
+from openai import OpenAI
+
+client = OpenAI(
+ api_key=os.getenv('OPENAI-API-KEY')
+)
+
+# Target URL can be a website url or it can google search
+query = "kedarkanta trek"
+target_url = f"https://www.google.com/search?q={query}&gl=us"
+response = requests.get(target_url)
+print
+html_text = response.text
+
+# Remove unnecessary part to prevent HUGE TOKEN cost!
+# Remove everything between and
+html_text = re.sub(r'.*?', '', html_text, flags=re.DOTALL)
+# Remove all occurrences of content between
+html_text = re.sub(r'.*?', '', html_text, flags=re.DOTALL)
+# Remove all occurrences of content between
+html_text = re.sub(r'.*?', '', html_text, flags=re.DOTALL)
+
+completion = client.chat.completions.create(
+ model="gpt-4-1106-preview",
+ messages=[
+ {"role": "system", "content": "You are a master at scraping Google results data. Scrape two things: 1st. Scrape top 10 organic results data and 2nd. Scrape people_also_ask section from Google search result page."},
+ {"role": "user", "content": html_text}
+ ],
+ tools=[
+ {
+ "type": "function",
+ "function": {
+ "name": "parse_organic_results",
+ "description": "Parse organic results from Google SERP raw HTML data nicely",
+ "parameters": {
+ 'type': 'object',
+ 'properties': {
+ 'data': {
+ 'type': 'array',
+ 'items': {
+ 'type': 'object',
+ 'properties': {
+ 'title': {'type': 'string'},
+ 'original_url': {'type': 'string'},
+ 'snippet': {'type': 'string'},
+ 'position': {'type': 'integer'}
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "type": "function",
+ "function": {
+ "name": "parse_people_also_ask_section",
+ "description": "Parse `people also ask` section from Google SERP raw HTML",
+ "parameters": {
+ 'type': 'object',
+ 'properties': {
+ 'data': {
+ 'type': 'array',
+ 'items': {
+ 'type': 'object',
+ 'properties': {
+ 'question': {'type': 'string'},
+ 'original_url': {'type': 'string'},
+ 'answer': {'type': 'string'},
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ ],
+ tool_choice="auto"
+)
+
+
+# Organic_results
+argument_str = completion.choices[0].message.tool_calls[0].function.arguments
+argument_dict = json.loads(argument_str)
+organic_results = argument_dict['data']
+
+print('Organic results:')
+for result in organic_results:
+ print(f"Blog Title: {result['title']}")
+ print(f"Blog URL: {result['original_url']}")
+ print(f"Blog Snippet: {result['snippet']}")
+ print(f"Blog Position: {result['position']}")
+ print('---')
+
+# People also ask
+argument_str = completion.choices[0].message.tool_calls[1].function.arguments
+argument_dict = json.loads(argument_str)
+people_also_ask = argument_dict['data']
+
+print('People also ask:')
+for result in people_also_ask:
+ print(f"People_Also_Ask: Question: {result['question']}")
+ print(f"People_Also_Ask: URL: {result['original_url']}")
+ print("People_Also_Ask: Answer: {result['answer']}")
+ print('---')
diff --git a/lib/google_search_serpapi.py b/lib/google_search_serpapi.py
new file mode 100644
index 00000000..29c8a688
--- /dev/null
+++ b/lib/google_search_serpapi.py
@@ -0,0 +1,38 @@
+# Not using it, as they wanted phone verification done.
+
+import os
+import serpapi
+import csv
+
+from dotenv import load_dotenv
+load_dotenv()
+api_key = os.getenv('SERPAPI_KEY')
+
+client = serpapi.Client(api_key=api_key)
+result = client.search(
+ q="Retrieval Augumented Generation RAG",
+ engine="google",
+ location="Austin, Texas",
+ hl="en",
+ gl="us",
+)
+
+print(result)
+print(result['organic_results'])
+print(result["search_information"]["total_results"]) # Get number of results available
+print(result["related_questions"]) # Get all the related questions
+
+
+organic_results = result["organic_results"]
+with open('output.csv', 'w', newline='') as csvfile:
+ csv_writer = csv.writer(csvfile)
+
+ # Write the headers
+ csv_writer.writerow(["Title", "Link", "Snippet"])
+
+ # Write the data
+ for result in organic_results:
+ csv_writer.writerow([result["title"], result["link"], result["snippet"]])
+
+
+print('Done writing to CSV file.')
diff --git a/lib/gpt_online_researcher.py b/lib/gpt_online_researcher.py
index d7368ff8..02a14041 100644
--- a/lib/gpt_online_researcher.py
+++ b/lib/gpt_online_researcher.py
@@ -16,54 +16,68 @@
#
##############################################################
-# import and connect
+import os
+import logging
from tavily import TavilyClient
+from langchain.adapters.openai import convert_openai_messages
+from langchain.chat_models import ChatOpenAI
-def do_research_on(research_query):
- """
- Basically sending in the blog title to do research on.
- gpt-researcher API version to do extensive web research for given keywords.
- """
- # $ export TAVILY_API_KEY={Your Tavily API Key here}
+logging.basicConfig(level=logging.INFO, format='%(asctime)s-%(levelname)s-%(module)s-%(lineno)d-%(message)s')
+from tenacity import (
+ retry,
+ stop_after_attempt,
+ wait_random_exponential,
+) # for exponential backoff
+
+
+@retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6))
+def do_online_research(query):
try:
- client = TavilyClient(api_key=os.getenv("TAVILY_API_KEY"))
- except Exception as err:
- SystemExit(f"Failed to create TavilyClient: {err}")
+ # Retrieve API keys
+ api_key = os.getenv('TAVILY_API_KEY')
+ openai_api_key = os.getenv('OPENAI_API_KEY')
+ if not api_key or not openai_api_key:
+ raise ValueError("API keys for Tavily or OpenAI are not set.")
- try:
- # run tavily search
- research_content = client.search(
- research_query,
- search_depth="advanced",
- include_answer=True,
- max_results=10)["results"]
- except Exception as err:
- SystemExit(f"Unable to do tavily search: {err}")
+ # Initialize Tavily client
+ try:
+ client = TavilyClient(api_key=api_key)
+ except Exception as err:
+ logging.error("Failed to create Tavily client. Check TAVILY_API_KEY")
+ exit(1)
- # setup prompt
- prompt = [{
- "role": "system",
- "content": f'You are an AI critical thinker research assistant. '\
- f'Your sole purpose is to write well written, critically acclaimed,'\
- f'objective and structured reports on given text.'
+ # Run tavily search
+ logging.info(f"Running Tavily search on: {query}")
+ try:
+ content = client.search(query, search_depth="advanced")["results"]
+ except Exception as err:
+ logging.error(f"Failed to do Tavily Research: {err}")
+ exit(1)
+
+ # Setup prompt for GPT-4
+ prompt = [{
+ "role": "system",
+ "content": ('You are an AI critical thinker research assistant. '
+ 'Your sole purpose is to write well written, critically acclaimed, '
+ 'objective and structured reports on given text.')
}, {
- "role": "user",
- "content": f'Information: """{research_content}"""\n\n' \
- f'Using the above information, answer the following'\
- f'query: "{research_query}" in a detailed report --'\
- f'Please use MLA format and markdown syntax.'
+ "role": "user",
+ "content": (f'Information: """{content}"""\n\n'
+ f'Using the above information, answer the following '
+ f'query: "{query}" in a detailed report --'
+ f'Please use MLA format and markdown syntax.')
}]
-
- # run gpt-4
- try:
+ # Run GPT-4
+ logging.info("Generating report with GPT-4...")
lc_messages = convert_openai_messages(prompt)
- research_report = ChatOpenAI(
- model='gpt-4',
- openai_api_key=openai_api_key
- ).invoke(lc_messages).content
- except Exception as err:
- SystemExit(f"Failed to convert OpenAI message and get response.")
+ try:
+ report = ChatOpenAI(model='gpt-4', openai_api_key=openai_api_key).invoke(lc_messages).content
+ logging.info(f"\n Below is the online research report for given keywords/title: \n\n{report}")
+ return report
+ except Exception as err:
+ logging.error("Failed to generate do_online_research with ChatOpenAI")
+ exit(1)
- # print report
- print(research_report)
- return research_report
+ except Exception as e:
+ logging.error(f"Failed in online research: {e}")
+ exit(1)
diff --git a/lib/gpt_providers/README.md b/lib/gpt_providers/README.md
index 79df7ed4..96cd3903 100644
--- a/lib/gpt_providers/README.md
+++ b/lib/gpt_providers/README.md
@@ -1,19 +1,11 @@
-gpt_providers are companies providing commercial/free GPT pre-trained models as saas.
-These include openai, Azure, Goodle, FB, Anthrophic etc
+# OpenAI ChatGPT Integration for Enhanced Blog Generation
-- If you want to use chatgpt and its models, then use openai as gpt_provider
-- We plan to integrate most the accurate, widely used models as gpt providers.
-- These will also include text to image and video generations as blogging artifacts.
-
-gpt_provider=openai
-
-------------------------------------
-
-Here are some tips for using LLMs to generate ideas:
-
-- Be as specific as possible in your prompts. The more specific you are, the better the LLM will
-be able to understand what you are asking for.
-- Use keywords in your prompts. This will help the LLM to generate ideas that are relevant to your topic.
-- Try different temperatures and top_p values. These parameters control the creativity and diversity of the generated ideas.
-- Experiment with different prompts and settings to see what works best for you.
+## Introduction
+This toolkit, written in Python, integrates OpenAI's ChatGPT and other AI services for comprehensive blog generation. It allows for selecting and fine-tuning OpenAI models to suit various content creation needs, including text generation, image analysis, and speech-to-text conversion.
+## Key Features
+- **AI-Powered Text Generation**: Leverages OpenAI's ChatGPT for creating engaging and contextually relevant text based on user inputs.
+- **Image Analysis and Detail Extraction**: Utilizes OpenAI's Vision API to analyze images and extract important details like Alt Text, Description, Title, and Caption.
+- **Dynamic Image Generation**: Generates images from textual descriptions using DALL-E 2 and DALL-E 3 models, enhancing blog visual content.
+- **Speech-to-Text Transcription**: Converts audio from YouTube videos to text, enabling easy content repurposing for blogs.
+- **Image Variation Creation**: Produces variations of existing images, offering creative flexibility and maintaining topical relevance.
diff --git a/lib/gpt_providers/gen_dali2_images.py b/lib/gpt_providers/gen_dali2_images.py
new file mode 100644
index 00000000..8af0a0a5
--- /dev/null
+++ b/lib/gpt_providers/gen_dali2_images.py
@@ -0,0 +1,56 @@
+from openai import OpenAI
+from loguru import logger
+import sys
+
+from .save_image import save_generated_image
+
+from tenacity import (
+ retry,
+ stop_after_attempt,
+ wait_random_exponential,
+) # for exponential backoff
+
+
+@retry(wait=wait_random_exponential(min=1, max=120), stop=stop_after_attempt(6))
+def generate_dalle3_images(img_prompt, image_dir, size="1024x1024", quality="hd", n=1):
+ """
+ Generates images using the DALL-E 3 model based on a given text prompt.
+
+ Args:
+ img_prompt (str): Text prompt to generate the image.
+ image_dir (str): Directory where the generated image will be saved.
+ size (str, optional): Size of the generated images. Defaults to "1024x1024".
+ quality (str, optional): Quality of the generated images. Defaults to "hd".
+ n (int, optional): Number of images to generate. Defaults to 1.
+
+ Returns:
+ str: Path to the saved image.
+
+ Raises:
+ SystemExit: If an error occurs in image generation or saving.
+ """
+ try:
+ logger.info("Generating Dall-e-3 image for the blog.")
+ client = OpenAI()
+
+ img_generation_response = client.images.generate(
+ model="dall-e-3",
+ prompt=img_prompt,
+ size=size,
+ quality=quality,
+ n=n
+ )
+ # Save the generated image locally.
+ try:
+ img_path = save_generated_image(img_generation_response, image_dir)
+ return img_path
+ except Exception as err:
+ logger.error(f"Failed to Save generated image: {err}")
+
+ except openai.OpenAIError as e:
+ logger.error(f"Dalle-3 image generation error: HTTP Status {e.http_status}, Error: {e.error}")
+ sys.exit("Exiting due to Dalle-3 image generation error.")
+
+ except Exception as e:
+ logger.error(f"Failed to generate images with Dalle3: {e}")
+ sys.exit("Exiting due to a general error in image generation.")
diff --git a/lib/gpt_providers/gen_dali3_images.py b/lib/gpt_providers/gen_dali3_images.py
new file mode 100644
index 00000000..f5ddb811
--- /dev/null
+++ b/lib/gpt_providers/gen_dali3_images.py
@@ -0,0 +1,61 @@
+from openai import OpenAI
+from loguru import logger
+import sys
+
+from tenacity import (
+ retry,
+ stop_after_attempt,
+ wait_random_exponential,
+) # for exponential backoff
+
+from .save_image import save_generated_image
+
+
+@retry(wait=wait_random_exponential(min=1, max=120), stop=stop_after_attempt(6))
+def generate_dalle3_images(img_prompt, image_dir, size="1024x1024", quality="hd", n=1):
+ """
+ Generates images using the DALL-E 3 model based on a given text prompt.
+
+ Args:
+ img_prompt (str): Text prompt to generate the image.
+ image_dir (str): Directory where the generated image will be saved.
+ size (str, optional): Size of the generated images. Defaults to "1024x1024".
+ quality (str, optional): Quality of the generated images. Defaults to "hd".
+ n (int, optional): Number of images to generate. Defaults to 1.
+
+ Returns:
+ str: Path to the saved image.
+
+ Raises:
+ SystemExit: If an error occurs in image generation or saving.
+ """
+ try:
+ logger.info("Generating Dall-e-3 image for the blog.")
+ client = OpenAI()
+
+ img_generation_response = client.images.generate(
+ model="dall-e-3",
+ prompt=img_prompt,
+ size=size,
+ quality=quality,
+ n=n
+ )
+
+ img_path = save_generated_image(img_generation_response, image_dir)
+ return img_path
+
+ except openai.OpenAIError as e:
+ logger.error(f"Dalle-3 image generation error: HTTP Status {e.http_status}, Error: {e.error}")
+ sys.exit("Exiting due to Dalle-3 image generation error.")
+
+ except Exception as e:
+ logger.error(f"Failed to generate images with Dalle3: {e}")
+ sys.exit("Exiting due to a general error in image generation.")
+
+# Example usage
+if __name__ == "__main__":
+ try:
+ image_path = generate_dalle3_images("A futuristic cityscape", "/path/to/image/dir")
+ print(f"Image generated and saved at: {image_path}")
+ except SystemExit as e:
+ print(f"Terminated: {e}")
diff --git a/lib/gpt_providers/gen_variation_img.py b/lib/gpt_providers/gen_variation_img.py
new file mode 100644
index 00000000..2380e886
--- /dev/null
+++ b/lib/gpt_providers/gen_variation_img.py
@@ -0,0 +1,51 @@
+from loguru import logger
+import sys
+from PIL import Image
+from openai import OpenAI
+
+def gen_new_from_given_img(img_path, image_dir, num_img=1, img_size="1024x1024", response_format="url"):
+ """
+ Generates variations of a given image using OpenAI's image variation API.
+
+ This function takes an existing image, processes it, and generates a specified number of new images based on it.
+ These generated images are variations of the original, providing creative flexibility.
+
+ Args:
+ img_path (str): Path to the original image file.
+ image_dir (str): Directory where the generated images will be saved.
+ num_img (int, optional): Number of image variations to generate. Defaults to 1.
+ img_size (str, optional): Size of the generated images. Defaults to "1024x1024".
+ response_format (str, optional): Format in which the generated images are returned. Defaults to "url".
+
+ Returns:
+ str: Path to the saved image variation.
+
+ Raises:
+ SystemExit: If a critical error occurs that prevents successful execution.
+ """
+ try:
+ logger.info(f"Starting image variation generation for: {img_path}")
+
+ # Convert and prepare the image
+ png = Image.open(img_path).convert('RGBA')
+ background = Image.new('RGBA', png.size, (255, 255, 255))
+ alpha_composite = Image.alpha_composite(background, png)
+ alpha_composite.save(img_path, 'PNG', quality=80)
+ logger.info("Image prepared for variation generation.")
+
+ client = OpenAI()
+ variation_response = client.images.create_variation(
+ image=open(img_path, "rb"),
+ n=num_img,
+ size=img_size,
+ response_format=response_format
+ )
+
+ # Saving the generated image
+ generated_image_path = save_generated_image(variation_response, image_dir)
+ logger.info(f"Image variation generated and saved to: {generated_image_path}")
+ return generated_image_path
+
+ except Exception as e:
+ logger.error(f"Error occurred during image variation generation: {e}")
+ sys.exit(f"Exiting due to critical error: {e}")
diff --git a/lib/gpt_providers/gpt_vision_img_details.py b/lib/gpt_providers/gpt_vision_img_details.py
new file mode 100644
index 00000000..4855ba8e
--- /dev/null
+++ b/lib/gpt_providers/gpt_vision_img_details.py
@@ -0,0 +1,106 @@
+import requests
+import re
+import base64
+import os
+import sys
+from tenacity import (
+ retry,
+ stop_after_attempt,
+ wait_random_exponential,
+) # for exponential backoff
+
+@retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6))
+def analyze_and_extract_details_from_image(image_path):
+ """
+ Analyzes an image using OpenAI's Vision API to extract Alt Text, Description, Title, and Caption.
+
+ This function encodes an image to a base64 string and sends a request to the OpenAI API.
+ It interprets the contents of the image, returning a textual description.
+
+ Args:
+ image_path (str): Path to the image file.
+
+ Returns:
+ dict: A dictionary with extracted details including Alt Text, Description, Title, and Caption.
+ None: If an error occurs during processing.
+
+ Raises:
+ SystemExit: If a critical error occurs that prevents the function from executing successfully.
+ """
+ try:
+ logger.info("Starting image analysis using OpenAI's Vision API.")
+
+ def encode_image(path):
+ """ Encodes an image to a base64 string. """
+ with open(path, "rb") as image_file:
+ return base64.b64encode(image_file.read()).decode('utf-8')
+
+ base64_image = encode_image(image_path)
+ logger.info("Image encoded to base64 successfully.")
+
+ headers = {
+ "Content-Type": "application/json",
+ "Authorization": f"Bearer {os.environ.get('OPENAI_API_KEY')}"
+ }
+
+ payload = {
+ "model": "gpt-4-vision-preview",
+ "messages": [
+ {
+ "role": "user",
+ "content": [
+ {
+ "type": "text",
+ "text": "Analyze the given image and suggest the following: Alternative text(Alt Text), description, title, caption."
+ },
+ {
+ "type": "image_url",
+ "image_url": {"url": f"data:image/jpeg;base64,{base64_image}"}
+ }
+ ]
+ }
+ ],
+ "max_tokens": 300
+ }
+
+ response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)
+ response.raise_for_status()
+
+ assistant_message = response.json()['choices'][0]['message']['content']
+ logger.info("Received response from OpenAI API.")
+
+ # Extracting details using regular expressions
+ alt_text_match = re.search(r'Alt Text: "(.*?)"', assistant_message)
+ description_match = re.search(r'Description: (.*?)\n\n', assistant_message)
+ title_match = re.search(r'Title: "(.*?)"', assistant_message)
+ caption_match = re.search(r'Caption: "(.*?)"', assistant_message)
+
+ image_details = {
+ 'alt_text': alt_text_match.group(1) if alt_text_match else "N/A",
+ 'description': description_match.group(1) if description_match else "N/A",
+ 'title': title_match.group(1) if title_match else "N/A",
+ 'caption': caption_match.group(1) if caption_match else "N/A"
+ }
+
+ logger.info("Image analysis completed successfully.")
+ return image_details
+
+ except requests.RequestException as e:
+ logger.error(f"GPT-Vision API communication failure. Error: {e}")
+ sys.exit(f"Exiting due to GPT-Vision API communication failure: {e}")
+
+ except Exception as e:
+ logger.error(f"Unexpected error occurred during image analysis: {e}")
+ sys.exit(f"Exiting due to an unexpected error: {e}")
+
+# Example usage
+if __name__ == "__main__":
+ image_path = "path/to/your/image.jpg"
+ try:
+ details = analyze_and_extract_details_from_image(image_path)
+ if details:
+ print(f"Extracted image details: {details}")
+ else:
+ print("No details extracted from the image.")
+ except SystemExit as e:
+ print(f"Terminated: {e}")
diff --git a/lib/gpt_providers/openai_chat_completion.py b/lib/gpt_providers/openai_chat_completion.py
new file mode 100644
index 00000000..5e768e82
--- /dev/null
+++ b/lib/gpt_providers/openai_chat_completion.py
@@ -0,0 +1,63 @@
+import time
+import logging
+import openai
+import os
+
+# Configure standard logging
+logging.basicConfig(level=logging.INFO, format='[%(asctime)s-%(levelname)s-%(module)s-%(lineno)d]- %(message)s')
+
+logger = logging.getLogger(__name__)
+from tenacity import (
+ retry,
+ stop_after_attempt,
+ wait_random_exponential,
+) # for exponential backoff
+
+
+@retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6))
+def openai_chatgpt(prompt, model="gpt-4-1106-preview", temperature=0.2, max_tokens=4096, top_p=0.9, n=1):
+ """
+ Wrapper function for OpenAI's ChatGPT completion.
+
+ Args:
+ prompt (str): The input text to generate completion for.
+ model (str, optional): Model to be used for the completion. Defaults to "gpt-4-1106-preview".
+ temperature (float, optional): Controls randomness. Lower values make responses more deterministic. Defaults to 0.2.
+ max_tokens (int, optional): Maximum number of tokens to generate. Defaults to 8192.
+ top_p (float, optional): Controls diversity. Defaults to 0.9.
+ n (int, optional): Number of completions to generate. Defaults to 1.
+
+ Returns:
+ str: The generated text completion.
+
+ Raises:
+ SystemExit: If an API error, connection error, or rate limit error occurs.
+ """
+ # Wait for 10 seconds to comply with rate limits
+ for _ in range(10):
+ time.sleep(1)
+
+ try:
+ client = openai.OpenAI(api_key=os.getenv('OPENAI_API_KEY'))
+ response = client.chat.completions.create(
+ model=model,
+ messages=[{"role": "user", "content": prompt}],
+ max_tokens=max_tokens,
+ n=n,
+ top_p=top_p
+ # Additional parameters can be included here
+ )
+ return response.choices[0].message.content
+
+ except openai.APIError as e:
+ logger.error(f"OpenAI API Error: {e}")
+ raise SystemExit from e
+ except openai.APIConnectionError as e:
+ logger.error(f"Failed to connect to OpenAI API: {e}")
+ raise SystemExit from e
+ except openai.RateLimitError as e:
+ logger.error(f"Rate limit exceeded on OpenAI API request: {e}")
+ raise SystemExit from e
+ except Exception as err:
+ logger.error(f"OpenAI error: {err}")
+ raise SystemExit from e
diff --git a/lib/gpt_providers/openai_chat_completion_streaming.py b/lib/gpt_providers/openai_chat_completion_streaming.py
new file mode 100644
index 00000000..59dc365d
--- /dev/null
+++ b/lib/gpt_providers/openai_chat_completion_streaming.py
@@ -0,0 +1,53 @@
+import sys
+import logging
+import openai
+
+# Configure standard logging
+logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+logger = logging.getLogger(__name__)
+
+def openai_chatgpt_streaming_text(user_prompt):
+ """
+ Uses streaming functionality to get real-time output from OpenAI's GPT model.
+
+ Args:
+ user_prompt (str): The prompt to send to the model.
+
+ Returns:
+ str: The complete text generated by the model in response to the prompt.
+
+ Raises:
+ SystemExit: If an error occurs in connecting to the OpenAI API or during streaming.
+ """
+ try:
+ client = openai.OpenAI()
+ response = client.chat.completions.create(
+ model="gpt-3.5-turbo-16k",
+ messages=[{"role": "user", "content": user_prompt}],
+ max_tokens=8192,
+ temperature=0.9,
+ n=1,
+ stream=True
+ )
+
+ collected_events = []
+ completion_text = ''
+
+ logger.info("Starting to receive streaming responses...")
+ for chunk in response:
+ collected_events.append(chunk) # Save the event response
+ event_text = chunk.choices[0].delta.content # Extract the text
+ completion_text += event_text # Append the text
+ sys.stdout.write(event_text)
+ sys.stdout.flush()
+
+ logger.info("Completed receiving streaming responses.")
+ return completion_text
+
+ except openai.OpenAIError as e:
+ logger.error(f"OpenAI API Error: {e}")
+ sys.exit("Exiting due to OpenAI API error.")
+
+ except Exception as e:
+ logger.error(f"Unexpected error during streaming: {e}")
+ sys.exit("Exiting due to an unexpected error.")
diff --git a/lib/gpt_providers/openai_gpt_provider.py b/lib/gpt_providers/openai_gpt_provider.py
index dd37d59d..d696c1b7 100644
--- a/lib/gpt_providers/openai_gpt_provider.py
+++ b/lib/gpt_providers/openai_gpt_provider.py
@@ -20,7 +20,12 @@ import tempfile
from html2image import Html2Image
import datetime
from PIL import Image
+import moviepy.editor as mp
import requests
+from moviepy.editor import AudioFileClip
+from concurrent.futures import ThreadPoolExecutor
+
+from ..gpt_online_researcher import do_online_research
from loguru import logger
logger.remove()
@@ -29,8 +34,6 @@ logger.add(sys.stdout,
format="{level} |{file}:{line}:{function} | {message}"
)
-
-
def analyze_and_extract_details_from_image(image_path):
"""
Analyzes an image using OpenAI's Vision API and extracts Alt Text, Description, Title, and Caption.
@@ -103,12 +106,14 @@ def analyze_and_extract_details_from_image(image_path):
return image_details
except requests.RequestException as e:
- sys.exit(f"Error: Failed to communicate with OpenAI API. Error: {e}")
+ #sys.exit(f"Error: GPT-Vision: Failed to communicate with OpenAI API. Error: {e}")
+ logger.error(f"Error: GPT-Vision: Failed to communicate with OpenAI API. Error: {e}")
except Exception as e:
- sys.exit(f"Error occurred: {e}")
+ #sys.exit(f"Error occurred- GPT-Vision: {e}")
+ logger.error(f"Error occurred- GPT-Vision: {e}")
-def openai_chatgpt(prompt, model="gpt-3.5-turbo-16k", temperature=0.2, max_tokens=8192, top_p=0.9, n=1):
+def openai_chatgpt(prompt, model="gpt-4-1106-preview", temperature=0.2, max_tokens=4096, top_p=0.9, n=1):
"""
Wrapper function for openai chat Completion
"""
@@ -119,6 +124,10 @@ def openai_chatgpt(prompt, model="gpt-3.5-turbo-16k", temperature=0.2, max_token
try:
client = OpenAI()
+ except Exception as err:
+ print("Error: OpenAI Client.")
+ exit(1)
+ try:
# using OpenAI's Completion module that helps execute any tasks involving text
response = client.chat.completions.create(
# model name used, there are many other models available under the umbrella of GPT-3
@@ -142,6 +151,8 @@ def openai_chatgpt(prompt, model="gpt-3.5-turbo-16k", temperature=0.2, max_token
except openai.RateLimitError as e:
#Handle rate limit error (we recommend using exponential backoff)
SystemError(f"OpenAI API request exceeded rate limit: {e}")
+ except Exception as err:
+ SystemError(f"OpenAI client Error: {err}")
return response.choices[0].message.content
@@ -231,39 +242,57 @@ def generate_dalle3_images(img_prompt, image_dir, size="1024x1024", quality="hd"
return img_path
-def speech_to_text(video_url):
- """ Common openai function for speech to text. """
- client = OpenAI()
+
+def speech_to_text(video_url, output_path='.'):
+ """ Transcribes speech to text from a YouTube video URL. """
try:
- # Download YouTube video
- logger.info(f"Download YouTube video: {video_url}")
+ # Create a YouTube object
+ print(f"Accessing YouTube URL: {video_url}")
yt = YouTube(video_url)
- stream = yt.streams.filter(only_audio=True).first()
- # Save the video in a temporary file
- logger.info(f"Finished Downloading, Saving video for transcription.")
- with tempfile.NamedTemporaryFile(suffix=".mp4", delete=False) as temp_file:
- temp_file_name = temp_file.name
+ # Select the highest quality audio stream
+ print("Fetching audio stream. Select the highest quality audio stream")
+ audio_stream = yt.streams.filter(only_audio=True).first()
- stream.download(output_path=os.path.dirname(temp_file_name), filename=os.path.basename(temp_file_name))
- try:
- # Transcribe the video using OpenAI's Whisper API
- logger.info(f"Transcribe the video using OpenAI's Whisper API")
- with open(temp_file_name, "rb") as audio_file:
+ if audio_stream is None:
+ print("No audio stream found for this video.")
+ return
+ else:
+ # Download the audio stream
+ print(f"Downloading audio for: {yt.title}")
+ audio_file = audio_stream.download(output_path)
+ print(f"Downloaded: {yt.title} to {output_path}")
+
+ try:
+ # Check if the audio file size is less than 24MB
+ max_file_size = 24 * 1024 * 1024 # 24MB in bytes
+ file_size = os.path.getsize(audio_file)
+ if file_size > max_file_size:
+ print("Error: File size exceeds 24MB limit.")
+ exit(1)
+
+ # File uploads are currently limited to 25 MB and the following input
+ # file types are supported: mp3, mp4, mpeg, mpga, m4a, wav, and webm.
+ try:
+ client = OpenAI()
+ except Exception as err:
+ SystemExit("Unable to get openai client object: {err}")
+
+ print("Transcribing using Openai whisper.")
transcript = client.audio.transcriptions.create(
- model="whisper-1",
- file=audio_file
+ model="whisper-1",
+ file=open(audio_file, "rb"),
+ response_format="text"
)
- except Exception as err:
- logger.error(f"Failed to transcribe using whisper model: {err}")
-
- logger.info("Finished Transcribing. Creating a blog from the transcript.")
- # Remove the temporary file after transcription
- os.remove(temp_file_name)
- return(transcript)
+ return transcript
+ except Exception as err:
+ print(f"Failed in whisper transcription: {err}")
+ exit(1)
except Exception as e:
- logger.error(f"Error: speech-to-text, Failed to transcribe url: {video_url} with error: {e}")
+ print(f"YT video download, An error occurred: {e}")
+ exit(1)
+ os.remove(audio_file)
# The idea is to download images from other blogs and recreate from it.
diff --git a/lib/gpt_providers/save_image.py b/lib/gpt_providers/save_image.py
new file mode 100644
index 00000000..a005aeac
--- /dev/null
+++ b/lib/gpt_providers/save_image.py
@@ -0,0 +1,35 @@
+import datetime
+import os
+import requests
+from PIL import Image
+import logging
+
+def save_generated_image(img_generation_response, image_dir):
+ """
+ Save generated images for blog, ensuring unique names for SEO.
+ """
+ logging.basicConfig(level=logging.INFO)
+ logger = logging.getLogger(__name__)
+
+ generated_image_name = f"generated_image_{datetime.datetime.now():%Y-%m-%d-%H-%M-%S}.png"
+ generated_image_filepath = os.path.join(image_dir, generated_image_name)
+ generated_image_url = img_generation_response.data[0].url
+
+ logger.info(f"Fetch the image from url: {generated_image_url}")
+ try:
+ response = requests.get(generated_image_url, stream=True)
+ response.raise_for_status()
+ with open(generated_image_filepath, "wb") as image_file:
+ image_file.write(response.content)
+ except requests.exceptions.RequestException as e:
+ logger.error(f"Failed to get generated image content: {e}")
+ return None
+
+ logger.info(f"Saved image at path: {generated_image_filepath}")
+
+ if os.environ.get('DISPLAY', ''): # Check if display is supported
+ img = Image.open(generated_image_filepath)
+ img.show()
+
+ return generated_image_filepath
+
diff --git a/lib/gpt_providers/stt_audio_blog.py b/lib/gpt_providers/stt_audio_blog.py
new file mode 100644
index 00000000..892a05b4
--- /dev/null
+++ b/lib/gpt_providers/stt_audio_blog.py
@@ -0,0 +1,88 @@
+from pytube import YouTube
+import os
+import sys
+from loguru import logger
+from openai import OpenAI
+from tqdm import tqdm
+
+from tenacity import (
+ retry,
+ stop_after_attempt,
+ wait_random_exponential,
+) # for exponential backoff
+
+
+def progress_function(stream, chunk, bytes_remaining):
+ # Calculate the percentage completion
+ current = ((stream.filesize - bytes_remaining) / stream.filesize)
+ progress_bar.update(current - progress_bar.n) # Update the progress bar
+
+
+@retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6))
+def speech_to_text(video_url, output_path='.'):
+ """
+ Transcribes speech to text from a YouTube video URL using OpenAI's Whisper model.
+
+ Args:
+ video_url (str): URL of the YouTube video to transcribe.
+ output_path (str, optional): Directory where the audio file will be saved. Defaults to '.'.
+
+ Returns:
+ str: The transcribed text from the video.
+
+ Raises:
+ SystemExit: If a critical error occurs that prevents successful execution.
+ """
+ try:
+ logger.info(f"Accessing YouTube URL: {video_url}")
+ yt = YouTube(video_url, on_progress_callback=progress_function)
+
+ logger.info("Fetching the highest quality audio stream")
+ audio_stream = yt.streams.filter(only_audio=True).first()
+
+ if audio_stream is None:
+ logger.warning("No audio stream found for this video.")
+ return None
+
+ #logger.info(f"Downloading audio for: {yt.title}")
+ global progress_bar
+ progress_bar = tqdm(total=1.0, unit='iB', unit_scale=True, desc=yt.title)
+ audio_file = audio_stream.download(output_path)
+ progress_bar.close()
+ logger.info(f"Audio downloaded: {yt.title} to {output_path}")
+
+ # Checking file size
+ max_file_size = 24 * 1024 * 1024 # 24MB
+ file_size = os.path.getsize(audio_file)
+ # Convert file size to MB for logging
+ file_size_MB = file_size / (1024 * 1024) # Convert bytes to MB
+ logger.info(f"Downloaded Audio Size is: {file_size_MB:.2f} MB")
+ if file_size > max_file_size:
+ logger.error("File size exceeds 24MB limit.")
+ sys.exit("File size limit exceeded.")
+
+ try:
+ logger.info("Initializing OpenAI client for transcription.")
+ client = OpenAI(api_key=os.getenv('OPENAI_API_KEY'))
+
+ logger.info("Transcribing using OpenAI's Whisper model.")
+ transcript = client.audio.transcriptions.create(
+ model="whisper-1",
+ file=open(audio_file, "rb"),
+ response_format="text"
+ )
+ logger.info("\nYouTube video transcription:\n\n{transcript}\n")
+ return transcript, yt.title
+
+ except Exception as e:
+ logger.error(f"Failed in Whisper transcription: {e}")
+ sys.exit("Transcription failure.")
+
+ except Exception as e:
+ logger.error(f"An error occurred during YouTube video processing: {e}")
+ sys.exit("Video processing failure.")
+
+ finally:
+ if os.path.exists(audio_file):
+ os.remove(audio_file)
+ logger.info("Temporary audio file removed.")
diff --git a/lib/gpt_providers/stt_audio_blog.py.bk b/lib/gpt_providers/stt_audio_blog.py.bk
new file mode 100644
index 00000000..3d65ef88
--- /dev/null
+++ b/lib/gpt_providers/stt_audio_blog.py.bk
@@ -0,0 +1,74 @@
+from pytube import YouTube
+import os
+import sys
+from loguru import logger
+from openai import OpenAI
+from tenacity import (
+ retry,
+ stop_after_attempt,
+ wait_random_exponential,
+) # for exponential backoff
+
+
+@retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6))
+def speech_to_text(video_url, output_path='.'):
+ """
+ Transcribes speech to text from a YouTube video URL using OpenAI's Whisper model.
+
+ Args:
+ video_url (str): URL of the YouTube video to transcribe.
+ output_path (str, optional): Directory where the audio file will be saved. Defaults to '.'.
+
+ Returns:
+ str: The transcribed text from the video.
+
+ Raises:
+ SystemExit: If a critical error occurs that prevents successful execution.
+ """
+ try:
+ logger.info(f"Accessing YouTube URL: {video_url}")
+ yt = YouTube(video_url)
+
+ logger.info("Fetching the highest quality audio stream")
+ audio_stream = yt.streams.filter(only_audio=True).first()
+
+ if audio_stream is None:
+ logger.warning("No audio stream found for this video.")
+ return None
+
+ logger.info(f"Downloading audio for: {yt.title}")
+ audio_file = audio_stream.download(output_path)
+ logger.info(f"Audio downloaded: {yt.title} to {output_path}")
+
+ # Checking file size
+ max_file_size = 24 * 1024 * 1024 # 24MB
+ logger.info(f"Downloaded Audio Size is: {max_file_size}")
+ file_size = os.path.getsize(audio_file)
+ if file_size > max_file_size:
+ logger.error("File size exceeds 24MB limit.")
+ sys.exit("File size limit exceeded.")
+
+ try:
+ logger.info("Initializing OpenAI client for transcription.")
+ client = OpenAI(api_key=os.getenv('OPENAI_API_KEY'))
+
+ logger.info("Transcribing using OpenAI's Whisper model.")
+ transcript = client.audio.transcriptions.create(
+ model="whisper-1",
+ file=open(audio_file, "rb"),
+ response_format="text"
+ )
+ return transcript, yt.title
+
+ except Exception as e:
+ logger.error(f"Failed in Whisper transcription: {e}")
+ sys.exit("Transcription failure.")
+
+ except Exception as e:
+ logger.error(f"An error occurred during YouTube video processing: {e}")
+ sys.exit("Video processing failure.")
+
+ finally:
+ if os.path.exists(audio_file):
+ os.remove(audio_file)
+ logger.info("Temporary audio file removed.")
diff --git a/lib/main_audio_to_blog.py b/lib/main_audio_to_blog.py
new file mode 100644
index 00000000..df8a1ad3
--- /dev/null
+++ b/lib/main_audio_to_blog.py
@@ -0,0 +1,124 @@
+import json
+import os
+import datetime #I wish
+import sys
+
+import openai
+from tqdm import tqdm, trange
+import time
+import re
+from textwrap import dedent
+import nltk
+nltk.download('punkt', quiet=True)
+from nltk.corpus import stopwords
+nltk.download('stopwords', quiet=True)
+
+from .write_blogs_from_youtube_videos import youtube_to_blog
+from .wordpress_blog_uploader import compress_image, upload_blog_post, upload_media
+from .gpt_online_researcher import do_online_research
+
+from loguru import logger
+logger.remove()
+logger.add(sys.stdout,
+ colorize=True,
+ format="{level} |{file}:{line}:{function} | {message}"
+ )
+
+# fixme: Remove the hardcoding, need add another option OR in config ?
+image_dir = "blog_images"
+image_dir = os.path.join(os.getcwd(), image_dir)
+# TBD: This can come from config file.
+output_path = "blogs"
+output_path = os.path.join(os.getcwd(), output_path)
+wordpress_url = 'https://latestaitools.in/'
+wordpress_username = 'upaudel750'
+wordpress_password = 'YvCS VbzQ QSp8 4XZe 0DUw Myys'
+
+
+def generate_youtube_blog(yt_url_list, output_format="markdown"):
+ """Takes a list of youtube videos and generates blog for each one of them.
+ """
+ # Use to store the blog in a string, to save in a *.md file.
+ blog_markdown_str = ""
+ for a_yt_url in yt_url_list:
+ try:
+ logger.info(f"Starting to write blog on URL: {a_yt_url}")
+ yt_blog = youtube_to_blog(a_yt_url)
+ except Exception as e:
+ logger.error(f"Error in youtube_to_blog: {e}")
+ sys.exit(1)
+
+ try:
+ logger.info("Starting with online research for URL title.")
+ research_report = do_online_research(yt_blog)
+ except Exception as e:
+ logger.error(f"Error in do_online_research: {e}")
+ sys.exit(1)
+
+ try:
+ # Note: Check if the order of input matters for your function
+ logger.info("Preparing a blog content from audio script and online research content...")
+ blog_with_research(research_report, yt_blog)
+ except Exception as e:
+ logger.error(f"Error in blog_with_research: {e}")
+ sys.exit(1)
+
+ try:
+ # Get the title and meta description of the blog.
+ blog_meta_desc = generate_blog_description(yt_blog)
+ title = generate_blog_title(blog_meta_desc)
+ logger.info(f"Title is {title} and description is {blog_meta_desc}")
+ blog_markdown_str = "# " + title.replace('"', '') + "\n\n"
+ # Get blog tags and categories.
+ blog_tags = get_blog_tags(blog_meta_desc)
+ logger.info(f"Blog tags are: {blog_tags}")
+ blog_categories = get_blog_categories(blog_meta_desc)
+ logger.info(f"Blog categories are: {blog_categories}")
+
+ # Generate an introduction for the blog
+ blog_intro = get_blog_intro(title, yt_blog)
+ logger.info(f"The Blog intro is:\n {blog_intro}")
+ blog_markdown_str = blog_markdown_str + "\n\n" + f"{blog_intro}" + "\n\n"
+
+ # Generate an image based on meta description
+ logger.info(f"Calling Image generation with prompt: {blog_meta_desc}")
+ main_img_path = generate_image(blog_meta_desc, image_dir, "dalle3")
+
+ # Get a variation of the yt url screenshot to use in the blog.
+ #varied_img_path = gen_new_from_given_img(yt_img_path, image_dir)
+ #logger.info(f"Image path: {main_img_path} and varied path: {varied_img_path}")
+ #blog_markdown_str = blog_markdown_str + f'})' + '_Image Caption_'
+
+ #stbdiff_img_path = generate_image(yt_img_path, image_dir, "stable_diffusion")
+ #logger.info(f"Image path: {main_img_path} from stable diffusion: {stbdiff_img_path}")
+ #blog_markdown_str = blog_markdown_str + f'})' + f'_{title}_'
+
+ # Add the body of the blog content.
+ blog_markdown_str = blog_markdown_str + "\n\n" + f'{yt_blog}' + "\n\n"
+
+ # Get the Conclusion of the blog, by passing the generated blog.
+ blog_conclusion = get_blog_conclusion(blog_markdown_str)
+ # TBD: Add another image.
+ blog_markdown_str = blog_markdown_str + "### Conclusion" + "\n\n" + f"{blog_conclusion}" + "\n"
+
+ # Proofread the blog, edit and remove dubplicates and refine it further.
+ # Presently, fixing the blog keywords to be tags and categories.
+ blog_keywords = f"{blog_tags} + {blog_categories}"
+ blog_markdown_str = blog_proof_editor(blog_markdown_str, blog_keywords)
+
+ # Check the type of blog format needed by the user.
+ if 'html' in output_format:
+ blog_markdown_str = convert_tomarkdown_format(blog_markdown_str)
+ elif 'markdown' in output_path:
+ blog_markdown_str = convert_markdown_to_html(blog_markdown_str)
+
+ # Try to save the blog content in a file, in whichever format. Just dump it.
+ try:
+ save_blog_to_file(blog_markdown_str, title, blog_meta_desc, blog_tags, blog_categories, main_img_path)
+ except Exception as err:
+ logger.error("Failed to Save blog content: {blog_markdown_str}")
+
+ except Exception as e:
+ # raise assertionerror
+ logger.error(f"Error: Failed to generate_youtube_blog: {e}")
+ exit(1)
diff --git a/lib/main_keywords_to_blog.py b/lib/main_keywords_to_blog.py
new file mode 100644
index 00000000..dbb8cff1
--- /dev/null
+++ b/lib/main_keywords_to_blog.py
@@ -0,0 +1,113 @@
+
+
+def generate_detailed_blog(num_blogs, blog_keywords, niche, num_subtopics,
+ wordpress=False, research_online=False, output_format="HTML"):
+ """
+ This function will take a blog Topic to first generate sections for it
+ and then generate content for each section.
+ """
+ # Use to store the blog in a string, to save in a *.md file.
+ blog_markdown_str = ""
+
+ # TBD: Check if the generated topics are equal to what user asked.
+ blog_topic_arr = generate_blog_topics(blog_keywords, num_blogs, niche)
+ logger.info(f"Generated Blog Topics:---- \n{blog_topic_arr}\n")
+ # Split the string at newlines
+ blog_topic_arr = blog_topic_arr.split('\n')
+
+ # For each of blog topic, generate content.
+ for a_blog_topic in blog_topic_arr:
+ # if md/html
+ a_blog_topic = a_blog_topic.replace('"', '')
+ a_blog_topic = re.sub(r'^[\d.\s]+', '', a_blog_topic)
+ blog_markdown_str = "# " + a_blog_topic + "\n\n"
+
+ # Get the introduction specific to blog title and sub topics.
+ tpc_outlines = generate_topic_outline(a_blog_topic, num_subtopics)
+ tpc_outlines = tpc_outlines.split("\n")
+
+ blog_intro = get_blog_intro(a_blog_topic, tpc_outlines)
+ logger.info(f"The intro is:\n{blog_intro}")
+ blog_markdown_str = blog_markdown_str + "### Introduction" + "\n\n" + f"{blog_intro}" + "\n\n"
+
+ # Now, for each blog we have sub topic. Generate content for each of the sub topic.
+ for a_outline in tpc_outlines:
+ a_outline = a_outline.replace('"', '')
+ logger.info(f"Generating content for sub-topic: {a_outline}")
+ sub_topic_content = generate_topic_content(blog_keywords, a_outline)
+ # a_outline is sub topic heading, hence part ToC also.
+ #blog_markdown_str = blog_markdown_str + "\n\n" + f"### {a_outline}" + "\n\n"
+ blog_markdown_str = blog_markdown_str + "\n" + f"\n {sub_topic_content}" + "\n\n"
+
+ # Get the Conclusion of the blog, by passing the generated blog.
+ blog_conclusion = get_blog_conclusion(blog_markdown_str)
+ blog_markdown_str = blog_markdown_str + "### Conclusion" + "\n" + f"{blog_conclusion}" + "\n"
+
+ # logger.info/check the final blog content.
+ logger.info(f"Final blog content: {blog_markdown_str}")
+
+ #if research_online:
+ # # Call on the got-researcher, tavily apis for this. So many apis floating around.
+ # report = do_online_research_on(blog_keywords)
+ # blog_markdown_str = blog_with_research(report, blog_markdown_str)
+
+ blog_meta_desc = generate_blog_description(blog_markdown_str)
+ logger.info(f"\nThe blog meta description is:{blog_meta_desc}\n")
+
+ # Generate an image based on meta description
+ logger.info(f"Calling Image generation with prompt: {blog_meta_desc}")
+ main_img_path = generate_image(blog_meta_desc, image_dir, "dalle3")
+
+ blog_tags = get_blog_tags(blog_markdown_str)
+ logger.info(f"\nBlog tags for generated content: {blog_tags}\n")
+
+ blog_categories = get_blog_categories(blog_markdown_str)
+ logger.info(f"Generated blog categories: {blog_categories}\n")
+
+ # Use chatgpt to convert the text into HTML or markdown.
+ if 'html' in output_format:
+ blog_markdown_str = convert_markdown_to_html(blog_markdown_str)
+
+ # Check if blog needs to be posted on wordpress.
+ if wordpress:
+ # Fixme: Fetch all tags and categories to check, if present ones are present and
+ # use them else create new ones. Its better to use chatgpt than string comparison.
+ # Similar tags and categories will be missed.
+ # blog_categories =
+ # blog_tags =
+ logger.info("Uploading the blog to wordpress.\n")
+ main_img_path = compress_image(main_img_path, quality=85)
+ try:
+ img_details = analyze_and_extract_details_from_image(main_img_path)
+ alt_text = img_details.get('alt_text')
+ img_description = img_details.get('description')
+ img_title = img_details.get('title')
+ caption = img_details.get('caption')
+ try:
+ media = upload_media(wordpress_url, wordpress_username, wordpress_password,
+ main_img_path, alt_text, img_description, img_title, caption)
+ except Exception as err:
+ sys.exit(f"Error occurred in upload_media: {err}")
+ except Exception as e:
+ sys.exit(f"Error occurred in analyze_and_extract_details_from_image: {e}")
+
+ # Then create the post with the uploaded media as the featured image
+ media_id = media['id']
+ blog_markdown_str = convert_markdown_to_html(blog_markdown_str)
+ try:
+ upload_blog_post(wordpress_url, wordpress_username, wordpress_password, a_blog_topic,
+ blog_markdown_str, media_id, blog_meta_desc, blog_categories, blog_tags, status='publish')
+ except Exception as err:
+ sys.exit(f"Failed to upload blog to wordpress.Error: {err}")
+
+ # TBD: Save the blog content as a .md file. Markdown or HTML ?
+ save_blog_to_file(blog_markdown_str,
+ a_blog_topic,
+ blog_meta_desc, blog_tags,
+ blog_categories, main_img_path)
+
+ # Now, we need perform some *basic checks on the blog content, such as:
+ # is_content_ai_generated.py, plagiarism_checker_from_known_sources.py
+ # seo_analyzer.py . These are present in the lib folder.
+ # prompt: Rewrite, improve and paraphrase [text] and use headings and subheadings
+ # to break up the content and make it easier to read using the keyword [keyword].
diff --git a/lib/save_blog_to_file.py b/lib/save_blog_to_file.py
new file mode 100644
index 00000000..9ebe93fc
--- /dev/null
+++ b/lib/save_blog_to_file.py
@@ -0,0 +1,76 @@
+def save_blog_to_file(blog_content, blog_title,
+ blog_meta_desc, blog_tags, blog_categories, main_img_path, file_type="md"):
+ """ Common function to save the generated blog to a file.
+ arg: file_type can be md or html
+ """
+ # Convert the spaces in blog_title with dash
+ logger.info(f"The blog will be saved at: {output_path}")
+ logger.debug(f"Blog Title is: {blog_title}")
+ blog_title_md = blog_title
+ regex = re.compile('[^a-zA-Z0-9- ]')
+ blog_title_md = regex.sub('', blog_title_md)
+ blog_title= blog_title.replace(":", "")
+ blog_title_md = re.sub('--+', '-', blog_title_md)
+ blog_title_md = blog_title_md.replace(' ', '-')
+ blog_title_md = remove_stop_words(blog_title_md)
+
+ if ':' in blog_meta_desc:
+ blog_meta_desc = blog_meta_desc.split(':')[1].strip()
+
+ if not os.path.exists(output_path):
+ logger.error("Error: Blog output directory is set to {output_path}, which Does Not Exist.")
+
+ # Different output formats are plaintext, html and markdown.
+ if file_type in "md":
+ logger.info(f"Writing/Saving the resultant blog content in Markdown format.")
+ # fill the Front Matter as below at the top of the post: https://jekyllrb.com/docs/front-matter/
+ # date: YYYY-MM-DD HH:MM:SS +/-TTTT
+ from zoneinfo import ZoneInfo
+ tz=ZoneInfo('Asia/Kolkata')
+ dtobj = datetime.datetime.now(tz=ZoneInfo('Asia/Kolkata'))
+ formatted_date = f"{dtobj.strftime('%Y-%m-%d %H:%M:%S %z')}"
+
+ blog_frontmatter = f"""\
+ ---
+ title: {blog_title}
+ date: {formatted_date}
+ categories: [{blog_categories}]
+ tags: [{blog_tags}]
+ description: {blog_meta_desc}
+ img_path: '/assets/'
+ image:
+ path: {os.path.basename(main_img_path)}
+ alt: {blog_title}
+ ---\n\n"""
+
+ # Create a new file named YYYY-MM-DD-TITLE.EXTENSION and put it in the _posts of the root directory.
+ # Please note that the EXTENSION must be one of md or markdown
+ blog_output_path = os.path.join(
+ output_path,
+ f"{datetime.date.today().strftime('%Y-%m-%d')}-{blog_title_md}.md"
+ )
+ # Save the generated blog content to a file.
+ try:
+ with open(blog_output_path, "w") as f:
+ f.write(dedent(blog_frontmatter))
+ f.write(blog_content)
+ except Exception as e:
+ raise Exception(f"Failed to write blog content: {e}")
+ logger.info(f"\nSuccessfully saved and Posted blog at: {blog_output_path,}\n")
+
+
+# Helper function
+def remove_stop_words(sentence):
+ # Tokenize the sentence into words
+ words = nltk.word_tokenize(sentence)
+
+ # Get the list of English stop words
+ stop_words = set(stopwords.words('english'))
+
+ # Remove stop words from the sentence
+ filtered_words = [word for word in words if word.lower() not in stop_words]
+
+ # Join the filtered words back into a sentence
+ filtered_sentence = ' '.join(filtered_words)
+
+ return filtered_sentence
diff --git a/lib/stabl_diff_img2html.py b/lib/stabl_diff_img2html.py
index 02d3c218..4d2a39d4 100644
--- a/lib/stabl_diff_img2html.py
+++ b/lib/stabl_diff_img2html.py
@@ -5,63 +5,62 @@ from PIL import Image
from stability_sdk import client
import stability_sdk.interfaces.gooseai.generation.generation_pb2 as generation
-# Our Host URL should not be prepended with "https" nor should it have a trailing slash.
+# Set the host URL environment variable. Ensure it doesn't have 'https' or a trailing slash.
os.environ['STABILITY_HOST'] = 'grpc.stability.ai:443'
-# Sign up for an account at the following link to get an API Key.
+# Ensure you sign up for an account to obtain an API key:
# https://platform.stability.ai/
-# Click on the following link once you have created an account to be taken to your API Key.
+# Your API key can be found here after account creation:
# https://platform.stability.ai/account/keys
def generate_stable_diffusion_image(prompt, image_dir):
- # Set up our connection to the API.
- # Check out the following link for a list of available engines:
- # https://platform.stability.ai/docs/features/api-parameters#engine
- stability_api = client.StabilityInference(
- key=os.environ['STABILITY_KEY'], # API Key reference.
- verbose=True, # Print debug messages.
- engine="stable-diffusion-xl-1024-v1-0", # Set the engine to use for generation.
- )
+ """
+ Generate images using Stable Diffusion API based on a given prompt.
- # Set up our initial generation parameters.
- answers = stability_api.generate(
- prompt=prompt,
- seed=4253978046, # If a seed is provided, the resulting generated image will be deterministic.
- # What this means is that as long as all generation parameters remain the same,
- # you can always recall the same image simply by generating it again.
- # Note: This isn't quite the case for Clip Guided generations, which we'll tackle in a future example notebook.
- steps=50, # Amount of inference steps performed on image generation. Defaults to 30.
- cfg_scale=7.0,
- # Influences how strongly your generation is guided to match your prompt.
- # Setting this value higher increases the strength in which it tries to match your prompt.
- # Defaults to 7.0 if not specified.
- width=1024, # Generation width, defaults to 512 if not included.
- height=1024, # Generation height, defaults to 512 if not included.
- samples=1, # Number of images to generate, defaults to 1 if not included.
- sampler=generation.SAMPLER_K_DPMPP_2M
- # Choose which sampler we want to denoise our generation with.
- # Defaults to k_dpmpp_2m if not specified. Clip Guidance only supports ancestral samplers.
- # (Available Samplers: ddim, plms, k_euler, k_euler_ancestral, k_heun, k_dpm_2, k_dpm_2_ancestral,
- # k_dpmpp_2s_ancestral, k_lms, k_dpmpp_2m, k_dpmpp_sde)
- )
+ Args:
+ prompt (str): The prompt to generate the image.
+ image_dir (str): The directory where the image will be saved.
- # Set up our warning to print to the console if the adult content classifier is tripped.
- # If adult content classifier is not tripped, save generated images.
- for resp in answers:
- for artifact in resp.artifacts:
- if artifact.finish_reason == generation.FILTER:
- warnings.warn(
- "Your request activated the API's safety filters and could not be processed."
- "Please modify the prompt and try again.")
- if artifact.type == generation.ARTIFACT_IMAGE:
- img = Image.open(io.BytesIO(artifact.binary))
- img_name = image_dir + str(artifact.seed) + ".png"
- img.show()
- img.save(img_name)
- # Save our generated images with their seed number as the filename.
+ Raises:
+ Warning: If the adult content classifier is triggered.
+ Exception: For any issues during image generation or saving.
+ """
+ try:
+ # Initialize the StabilityInference client with the API key and other settings.
+ stability_api = client.StabilityInference(
+ key=os.environ['STABILITY_KEY'], # Reference to the API key.
+ verbose=True, # Enable verbose mode for debug messages.
+ engine="stable-diffusion-xl-1024-v1-0", # Engine used for generation.
+ )
-prompt = "An image of a digital marketing campaign with various elements such as social media ads, email marketing, data analysis, and customer interaction. The image should depict the integration of generative AI technologies, such as machine learning algorithms and neural networks, into the digital marketing process. It should showcase how these technologies revolutionize the field by enhancing efficiency, personalization, creativity, decision making, and customer experience. The image should also illustrate the potential for better return on investment (ROI) and hyper-personalization through generative AI in digital marketing."
+ # Generating the image with specified parameters.
+ answers = stability_api.generate(
+ prompt=prompt,
+ seed=4253978046, # Deterministic seed for reproducible results.
+ steps=50, # Number of inference steps.
+ cfg_scale=7.0, # Strength of prompt matching.
+ width=1024, height=1024, # Image dimensions.
+ samples=1, # Number of images to generate.
+ sampler=generation.SAMPLER_K_DPMPP_2M # Denoising sampler selection.
+ )
+
+ # Process responses and save images.
+ for resp in answers:
+ for artifact in resp.artifacts:
+ if artifact.finish_reason == generation.FILTER:
+ warnings.warn(
+ "Request activated safety filters. Modify the prompt and retry."
+ )
+ if artifact.type == generation.ARTIFACT_IMAGE:
+ img = Image.open(io.BytesIO(artifact.binary))
+ img_name = os.path.join(image_dir, f"{artifact.seed}.png")
+ img.show()
+ img.save(img_name) # Save the image with the seed in the filename.
+
+ except Exception as e:
+ raise Exception(f"Error during image generation or saving: {e}")
+
+# Example usage:
+# generate_stable_diffusion_image("A futuristic cityscape", "/path/to/save/images/")
-image_dir = '/home/ajsingh/pseo_experiments/lib'
-generate_stable_diffusion_image(prompt, image_dir)
diff --git a/lib/toc_example.py b/lib/toc_example.py
new file mode 100644
index 00000000..df52680b
--- /dev/null
+++ b/lib/toc_example.py
@@ -0,0 +1,44 @@
+from bs4 import BeautifulSoup
+import re
+
+def create_table_of_contents(html_content):
+ """
+ Create a table of contents for a given HTML content.
+
+ Args:
+ html_content (str): HTML content of the blog post.
+
+ Returns:
+ str: HTML content with a table of contents.
+ """
+ # Use BeautifulSoup to parse the HTML
+ soup = BeautifulSoup(html_content, 'html.parser')
+
+ # Find all header tags (h1, h2, h3, h4, h5, h6)
+ headers = soup.find_all(re.compile('^h[1-6]$'))
+
+ # Create a table of contents
+ toc = BeautifulSoup('Table of Contents
', 'html.parser')
+ toc_ul = toc.find('ul')
+
+ # Loop through headers and add them to the table of contents
+ for i, header in enumerate(headers, start=1):
+ header_id = f"toc_{i}"
+ header['id'] = header_id
+
+ toc_entry = soup.new_tag('li')
+ toc_link = soup.new_tag('a', href=f"#{header_id}")
+ toc_link.string = header.get_text()
+ toc_entry.append(toc_link)
+ toc_ul.append(toc_entry)
+
+ # Insert the table of contents at the beginning of the content
+ soup.insert(0, toc)
+
+ return str(soup)
+
+# Example usage
+html_content = "Title
Some text
Subtitle 1
Text under subtitle 1
Subtitle 2
Text under subtitle 2
"
+html_with_toc = create_table_of_contents(html_content)
+print(html_with_toc)
+
diff --git a/lib/write_blogs_from_youtube_videos.py b/lib/write_blogs_from_youtube_videos.py
index 8a712ab8..521e70f5 100644
--- a/lib/write_blogs_from_youtube_videos.py
+++ b/lib/write_blogs_from_youtube_videos.py
@@ -14,23 +14,34 @@ logger.add(sys.stdout,
format="{level} |{file}:{line}:{function} | {message}"
)
-from .gpt_providers.openai_gpt_provider import openai_chatgpt, openai_chatgpt_streaming_text, speech_to_text
+from .gpt_providers.stt_audio_blog import speech_to_text
+from .gpt_providers.openai_chat_completion import openai_chatgpt
def youtube_to_blog(video_url):
"""Function to transcribe a given youtube url """
# fixme: Doesnt work all types of yt urls.
vid_id = video_url.split("=")[1]
- hti = Html2Image(output_path="../blog_images")
- hti.screenshot(url=video_url, save_as=f"yt-img-{vid_id}.png")
- yt_img_path = os.path.join("../blog_images", f"yt-img-{vid_id}.png")
+ #hti = Html2Image(output_path="../blog_images")
+ #hti.screenshot(url=video_url, save_as=f"yt-img-{vid_id}.png")
+ #yt_img_path = os.path.join("../blog_images", f"yt-img-{vid_id}.png")
try:
- audio_text = speech_to_text(video_url)
- audio_blog_content = summarize_youtube_video(audio_text)
- return(yt_img_path, audio_blog_content)
+ # Starting the speech-to-text process
+ logger.info("Starting with Speech to Text.")
+ audio_text, audio_title = speech_to_text(video_url)
except Exception as e:
- logger.error(f"Error: Failed to transcribe YouTube video_url: {video_url} with error: {e}")
+ logger.error(f"Error in speech_to_text: {e}")
+ sys.exit(1) # Exit the program due to error in speech_to_text
+
+ try:
+ # Summarizing the content of the YouTube video
+ audio_blog_content = summarize_youtube_video(audio_text)
+ return audio_blog_content, audio_title
+ except Exception as e:
+ logger.error(f"Error in summarize_youtube_video: {e}")
+ sys.exit(1) # Exit the program due to error in summarize_youtube_video
+ return audio_blog_content
def summarize_youtube_video(user_content):
@@ -42,6 +53,7 @@ def summarize_youtube_video(user_content):
Returns:
A string containing the summary of the video.
"""
+ logger.info("Start summarize_youtube_video..")
prompt = f"""
You are an expert copywriter specializing in content optimization for SEO.
Your task is to transform a given transcript into a well-structured and engaging blog article. Your objectives include:
@@ -65,6 +77,8 @@ def summarize_youtube_video(user_content):
Follow the above guidelines to create a well-optimized, unique, and informative article that will rank well in search engine results and engage readers effectively.
Craft a blog content from the following transcript:\n{user_content}
"""
- #completion_text = openai_chatgpt_streaming_text(prompt)
- completion_text = openai_chatgpt(prompt)
- return completion_text
+ try:
+ response = openai_chatgpt(prompt)
+ return response
+ except Exception as err:
+ SystemError(f"Error in generating blog summary: {err}")
diff --git a/pseo_main.py b/pseo_main.py
index 516914ce..063fd241 100644
--- a/pseo_main.py
+++ b/pseo_main.py
@@ -25,15 +25,16 @@ def parse_arguments():
Returns:
argparse.Namespace: Parsed arguments.
"""
+
parser = argparse.ArgumentParser(description="Generate blogs based on user input.")
parser.add_argument("--num_blogs", type=int, default=5, help="Number of blogs to generate (default: 5).")
parser.add_argument("--keywords", type=str, help="Keywords for blog generation.")
- parser.add_argument("--niche", action='store_true', help="Flag to generate niche blogs (default: False).")
+ parser.add_argument("--niche", action='store_true', default=False, help="Flag to generate niche blogs (default: False).")
parser.add_argument("--num_subtopics", type=int, default=6, help="Number of subtopics per blog (default: 6).")
parser.add_argument("--youtube_urls", type=str, help="Comma-separated YouTube URLs for blog generation.")
- parser.add_argument("--wordpress", action='store_true', help="Flag to upload blogs to WordPress (default: False).")
- parser.add_argument("--output_format", choices=['plaintext', 'markdown', 'html'], default='plaintext',
- help="Output format of the blogs (default: plaintext).")
+ parser.add_argument("--wordpress", action='store_true', default=False, help="Flag to upload blogs to WordPress (default: False).")
+ parser.add_argument("--output_format", choices=['plaintext', 'markdown', 'html'], default='plaintext', help="Output format of the blogs (default: plaintext).")
+ parser.add_argument("--research", action='store_true', default=False, help="Flag to perform online research for given keywords (default: False).")
return parser.parse_args()
@@ -72,7 +73,7 @@ def main():
if args.youtube_urls:
yt_urls = args.youtube_urls.split(",")
logger.info(f"Generating blogs from YouTube URLs: {yt_urls}")
- generate_youtube_blog(yt_urls, args.wordpress, args.output_format)
+ generate_youtube_blog(yt_urls)
elif args.keywords:
logger.info(f"Generating {args.num_blogs} blogs on '{args.keywords}' with {args.num_subtopics} subtopics.")
generate_detailed_blog(args.num_blogs, args.keywords, args.niche,
diff --git a/pseo_website/Gemfile b/pseo_website/Gemfile
deleted file mode 100644
index d4061e57..00000000
--- a/pseo_website/Gemfile
+++ /dev/null
@@ -1,25 +0,0 @@
-# frozen_string_literal: true
-
-source "https://rubygems.org"
-
-gem "jekyll-theme-chirpy", "~> 6.2", ">= 6.2.3"
-
-group :test do
- gem "html-proofer", "~> 4.4"
-end
-
-# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
-# and associated library.
-platforms :mingw, :x64_mingw, :mswin, :jruby do
- gem "tzinfo", ">= 1", "< 3"
- gem "tzinfo-data"
-end
-
-# Performance-booster for watching directories on Windows
-gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]
-
-# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
-# do not have a Java counterpart.
-gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby]
-
-gem 'jekyll-seo-tag'
diff --git a/pseo_website/Gemfile.lock b/pseo_website/Gemfile.lock
deleted file mode 100644
index f3f2b899..00000000
--- a/pseo_website/Gemfile.lock
+++ /dev/null
@@ -1,117 +0,0 @@
-GEM
- remote: https://rubygems.org/
- specs:
- addressable (2.8.5)
- public_suffix (>= 2.0.2, < 6.0)
- colorator (1.1.0)
- concurrent-ruby (1.2.2)
- em-websocket (0.5.3)
- eventmachine (>= 0.12.9)
- http_parser.rb (~> 0)
- ethon (0.16.0)
- ffi (>= 1.15.0)
- eventmachine (1.2.7)
- ffi (1.16.3)
- forwardable-extended (2.6.0)
- google-protobuf (3.24.4-x86_64-linux)
- html-proofer (4.4.3)
- addressable (~> 2.3)
- mercenary (~> 0.3)
- nokogiri (~> 1.13)
- parallel (~> 1.10)
- rainbow (~> 3.0)
- typhoeus (~> 1.3)
- yell (~> 2.0)
- zeitwerk (~> 2.5)
- http_parser.rb (0.8.0)
- i18n (1.14.1)
- concurrent-ruby (~> 1.0)
- jekyll (4.3.2)
- addressable (~> 2.4)
- colorator (~> 1.0)
- em-websocket (~> 0.5)
- i18n (~> 1.0)
- jekyll-sass-converter (>= 2.0, < 4.0)
- jekyll-watch (~> 2.0)
- kramdown (~> 2.3, >= 2.3.1)
- kramdown-parser-gfm (~> 1.0)
- liquid (~> 4.0)
- mercenary (>= 0.3.6, < 0.5)
- pathutil (~> 0.9)
- rouge (>= 3.0, < 5.0)
- safe_yaml (~> 1.0)
- terminal-table (>= 1.8, < 4.0)
- webrick (~> 1.7)
- jekyll-archives (2.2.1)
- jekyll (>= 3.6, < 5.0)
- jekyll-include-cache (0.2.1)
- jekyll (>= 3.7, < 5.0)
- jekyll-paginate (1.1.0)
- jekyll-redirect-from (0.16.0)
- jekyll (>= 3.3, < 5.0)
- jekyll-sass-converter (3.0.0)
- sass-embedded (~> 1.54)
- jekyll-seo-tag (2.8.0)
- jekyll (>= 3.8, < 5.0)
- jekyll-sitemap (1.4.0)
- jekyll (>= 3.7, < 5.0)
- jekyll-theme-chirpy (6.2.3)
- jekyll (~> 4.3)
- jekyll-archives (~> 2.2)
- jekyll-include-cache (~> 0.2)
- jekyll-paginate (~> 1.1)
- jekyll-redirect-from (~> 0.16)
- jekyll-seo-tag (~> 2.7)
- jekyll-sitemap (~> 1.4)
- jekyll-watch (2.2.1)
- listen (~> 3.0)
- kramdown (2.4.0)
- rexml
- kramdown-parser-gfm (1.1.0)
- kramdown (~> 2.0)
- liquid (4.0.4)
- listen (3.8.0)
- rb-fsevent (~> 0.10, >= 0.10.3)
- rb-inotify (~> 0.9, >= 0.9.10)
- mercenary (0.4.0)
- nokogiri (1.15.4-x86_64-linux)
- racc (~> 1.4)
- parallel (1.23.0)
- pathutil (0.16.2)
- forwardable-extended (~> 2.6)
- public_suffix (5.0.3)
- racc (1.7.1)
- rainbow (3.1.1)
- rake (13.0.6)
- rb-fsevent (0.11.2)
- rb-inotify (0.10.1)
- ffi (~> 1.0)
- rexml (3.2.6)
- rouge (4.1.3)
- safe_yaml (1.0.5)
- sass-embedded (1.69.4)
- google-protobuf (~> 3.23)
- rake (>= 13.0.0)
- terminal-table (3.0.2)
- unicode-display_width (>= 1.1.1, < 3)
- typhoeus (1.4.0)
- ethon (>= 0.9.0)
- unicode-display_width (2.5.0)
- webrick (1.8.1)
- yell (2.2.2)
- zeitwerk (2.6.12)
-
-PLATFORMS
- x86_64-linux
-
-DEPENDENCIES
- html-proofer (~> 4.4)
- http_parser.rb (~> 0.6.0)
- jekyll-seo-tag
- jekyll-theme-chirpy (~> 6.2, >= 6.2.3)
- tzinfo (>= 1, < 3)
- tzinfo-data
- wdm (~> 0.1.1)
-
-BUNDLED WITH
- 2.4.21
diff --git a/pseo_website/_config.yml b/pseo_website/_config.yml
deleted file mode 100644
index 396b0968..00000000
--- a/pseo_website/_config.yml
+++ /dev/null
@@ -1,196 +0,0 @@
-# The Site Configuration
-
-# Import the theme
-theme: jekyll-theme-chirpy
-
-# The language of the webpage › http://www.lingoes.net/en/translator/langcode.htm
-# If it has the same name as one of the files in folder `_data/locales`, the layout language will also be changed,
-# otherwise, the layout language will use the default value of 'en'.
-lang: en
-
-# Change to your timezone › https://kevinnovak.github.io/Time-Zone-Picker
-timezone: Asia/Kolkata
-
-# jekyll-seo-tag settings › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md
-# ↓ --------------------------
-
-title: AI-Takia # the main title
-
-tagline: Latest Blogs on AI tech, Tools & SaaS # it will display as the sub-title
-
-description: >- # used by seo meta and the atom feed
- Begginer friendly AI technologies simplified & explained. Know & boost productivity with latest AI tools.
-
-# Fill in the protocol & hostname for your site.
-# e.g. 'https://username.github.io', note that it does not end with a '/'.
-url: "https://ajaysi.github.io"
-
-github:
- username: ajaysi # change to your github username
-
-twitter:
- username: ajaysi # change to your twitter username
-
-social:
- # Change to your full name.
- # It will be displayed as the default author of the posts and the copyright owner in the Footer
- name: ajaysi
- email: example@domain.com # change to your email address
- links:
- # The first element serves as the copyright owner's link
- - https://twitter.com/username # change to your twitter homepage
- - https://github.com/username # change to your github homepage
- # Uncomment below to add more social links
- # - https://www.facebook.com/username
- # - https://www.linkedin.com/in/username
-
-google_site_verification: # fill in to your verification string
-
-# ↑ --------------------------
-# The end of `jekyll-seo-tag` settings
-
-google_analytics:
- id: # fill in your Google Analytics ID
-
-# Prefer color scheme setting.
-#
-# Note: Keep empty will follow the system prefer color by default,
-# and there will be a toggle to switch the theme between dark and light
-# on the bottom left of the sidebar.
-#
-# Available options:
-#
-# light - Use the light color scheme
-# dark - Use the dark color scheme
-#
-theme_mode: # [light|dark]
-
-# The CDN endpoint for images.
-# Notice that once it is assigned, the CDN url
-# will be added to all image (site avatar & posts' images) paths starting with '/'
-#
-# e.g. 'https://cdn.com'
-img_cdn:
-
-# the avatar on sidebar, support local or CORS resources
-avatar:
-
-# boolean type, the global switch for TOC in posts.
-toc: true
-
-comments:
- active: # The global switch for posts comments, e.g., 'disqus'. Keep it empty means disable
- # The active options are as follows:
- disqus:
- shortname: # fill with the Disqus shortname. › https://help.disqus.com/en/articles/1717111-what-s-a-shortname
- # utterances settings › https://utteranc.es/
- utterances:
- repo: # /
- issue_term: # < url | pathname | title | ...>
- # Giscus options › https://giscus.app
- giscus:
- repo: # /
- repo_id:
- category:
- category_id:
- mapping: # optional, default to 'pathname'
- input_position: # optional, default to 'bottom'
- lang: # optional, default to the value of `site.lang`
- reactions_enabled: # optional, default to the value of `1`
-
-# Self-hosted static assets, optional › https://github.com/cotes2020/chirpy-static-assets
-assets:
- self_host:
- enabled: # boolean, keep empty means false
- # specify the Jekyll environment, empty means both
- # only works if `assets.self_host.enabled` is 'true'
- env: # [development|production]
-
-pwa:
- enabled: true # the option for PWA feature
-
-paginate: 10
-
-# The base URL of your site
-baseurl: ""
-
-# ------------ The following options are not recommended to be modified ------------------
-
-kramdown:
- syntax_highlighter: rouge
- syntax_highlighter_opts: # Rouge Options › https://github.com/jneen/rouge#full-options
- css_class: highlight
- # default_lang: console
- span:
- line_numbers: false
- block:
- line_numbers: true
- start_line: 1
-
-collections:
- tabs:
- output: true
- sort_by: order
-
-defaults:
- - scope:
- path: "" # An empty string here means all files in the project
- type: posts
- values:
- layout: post
- comments: true # Enable comments in posts.
- toc: true # Display TOC column in posts.
- # DO NOT modify the following parameter unless you are confident enough
- # to update the code of all other post links in this project.
- permalink: /posts/:title/
- - scope:
- path: _drafts
- values:
- comments: false
- - scope:
- path: ""
- type: tabs # see `site.collections`
- values:
- layout: page
- permalink: /:title/
- - scope:
- path: assets/img/favicons
- values:
- swcache: true
- - scope:
- path: assets/js/dist
- values:
- swcache: true
-
-sass:
- style: compressed
-
-compress_html:
- clippings: all
- comments: all
- endings: all
- profile: false
- blanklines: false
- ignore:
- envs: [development]
-
-exclude:
- - "*.gem"
- - "*.gemspec"
- - docs
- - tools
- - README.md
- - LICENSE
- - rollup.config.js
- - package*.json
-
-jekyll-archives:
- enabled: [categories, tags]
- layouts:
- category: category
- tag: tag
- permalinks:
- tag: /tags/:name/
- category: /categories/:name/
-
-
diff --git a/pseo_website/_data/contact.yml b/pseo_website/_data/contact.yml
deleted file mode 100644
index c46d9e3d..00000000
--- a/pseo_website/_data/contact.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# The contact options.
-
-- type: github
- icon: "fab fa-github"
-
-- type: twitter
- icon: "fa-brands fa-x-twitter"
-
-- type: email
- icon: "fas fa-envelope"
- noblank: true # open link in current tab
-
-#- type: rss
-# icon: "fas fa-rss"
-# noblank: true
-#
-# - type: mastodon
-# icon: 'fab fa-mastodon' # icons powered by
-# url: '' # Fill with your Mastodon account page, rel="me" will be applied for verification
-#
-- type: linkedin
- icon: 'fab fa-linkedin' # icons powered by
- url: '' # Fill with your Linkedin homepage
-#
-# - type: stack-overflow
-# icon: 'fab fa-stack-overflow'
-# url: '' # Fill with your stackoverflow homepage
diff --git a/pseo_website/_data/share.yml b/pseo_website/_data/share.yml
deleted file mode 100644
index feede745..00000000
--- a/pseo_website/_data/share.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-# Sharing options at the bottom of the post.
-# Icons from
-
-platforms:
- - type: Twitter
- icon: "fa-brands fa-square-x-twitter"
- link: "https://twitter.com/intent/tweet?text=TITLE&url=URL"
-
- - type: Facebook
- icon: "fab fa-facebook-square"
- link: "https://www.facebook.com/sharer/sharer.php?title=TITLE&u=URL"
-
- - type: Telegram
- icon: "fab fa-telegram"
- link: "https://t.me/share/url?url=URL&text=TITLE"
-
- # Uncomment below if you need to.
- #
- # - type: Linkedin
- # icon: "fab fa-linkedin"
- # link: "https://www.linkedin.com/sharing/share-offsite/?url=URL"
- #
- # - type: Weibo
- # icon: "fab fa-weibo"
- # link: "http://service.weibo.com/share/share.php?title=TITLE&url=URL"
diff --git a/pseo_website/_plugins/posts-lastmod-hook.rb b/pseo_website/_plugins/posts-lastmod-hook.rb
deleted file mode 100644
index 1fd6ecf9..00000000
--- a/pseo_website/_plugins/posts-lastmod-hook.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env ruby
-#
-# Check for changed posts
-
-Jekyll::Hooks.register :posts, :post_init do |post|
-
- commit_num = `git rev-list --count HEAD "#{ post.path }"`
-
- if commit_num.to_i > 1
- lastmod_date = `git log -1 --pretty="%ad" --date=iso "#{ post.path }"`
- post.data['last_modified_at'] = lastmod_date
- end
-
-end
diff --git a/pseo_website/_posts/.placeholder b/pseo_website/_posts/.placeholder
deleted file mode 100644
index 8b137891..00000000
--- a/pseo_website/_posts/.placeholder
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/pseo_website/_posts/2023-11-08-Exciting-AI-Advancements-Musks-Chatbot-to-Apples-M3-Chips.md b/pseo_website/_posts/2023-11-08-Exciting-AI-Advancements-Musks-Chatbot-to-Apples-M3-Chips.md
deleted file mode 100644
index f1d31335..00000000
--- a/pseo_website/_posts/2023-11-08-Exciting-AI-Advancements-Musks-Chatbot-to-Apples-M3-Chips.md
+++ /dev/null
@@ -1,76 +0,0 @@
----
-title: Exciting AI Advancements- Musk's Chatbot to Apple's M3 Chips
-date: 2023-11-08 23:44:30 +0530
-categories: [AI Advancements, Tech News]
-tags: [AI Advancements, chatbots]
-description: Discover the latest AI advancements, from Elon Musk's chatbot to Apple's M3 chips. Dive into the impact of AI on various industries and explore its transformative potential.
-img_path: '/assets/'
-image:
- path: generated_image_2023-11-08-23-42-51.png
- alt: Exciting AI Advancements Musk's Chatbot to Apple's M3 Chips
----
-
-Welcome to the exciting world of AI advancements! From Elon Musk's groundbreaking chatbot to Apple's powerful M3 chips, this blog will take you on a journey through the latest and most intriguing developments in artificial intelligence. Discover how AI is revolutionizing industries like filmmaking, explore the impact of new regulations, and delve into the job market landscape.
-
-- Exciting AI advancements from Elon Musk's Grok chatbot to Apple's M3 chips
-- Adobe's AI tools revolutionize filmmaking, from script to video editing
-- Runway's Gen 2 text-to-video generator creates realistic videos from descriptions
-- President Biden introduces the US' first AI regulations for safety and security
-- LinkedIn's AI career chatbot offers personalized job advice and insights
-- New Computer's personal assistant AI, ., becomes a companion in daily life
-- IBM's analog AI chip redefines the tech industry with power efficiency and speed
-- Amazon partners with Anthropic for AI chip development, competing with Google
-- Major tech companies like Microsoft, Google, Amazon, Apple, and Meta offer AI job opportunities
-- Alibaba's Tongyi Qianwen 2.0 advances AI capabilities for content generation
-- Apple's M3 chips in MacBook Pros provide computational power for demanding AI tasks
-
-_Image Caption_
-
-
-## Grok: Elon Musk's Revolutionary AI Chatbot ##
-
-Elon Musk, the visionary entrepreneur, has introduced a game-changing AI chatbot called Grok. Developed by his company XAI, Grok outperforms OpenAI's chatbot, GPT, in various tests. What sets Grok apart is its ability to stay up-to-date with real-time information through its connection to the X platform. Not only is Grok incredibly intelligent, but it's also designed to assist users in research and innovation. Additionally, Grok showcases a touch of humor when answering challenging questions. While it has surpassed GPT 3.5 in math and coding tests, it still falls short of OpenAI's latest GPT-4. Grok is currently available to select users in the U.S. through a subscription to X Premium Plus. XAI is committed to ensuring the responsible and safe use of AI, with Grok being continuously tested and improved. This new venture is just the beginning for Musk's AI endeavors.
-
-## Adobe's AI Tools for Filmmakers ##
-
-In the realm of filmmaking, Adobe is making significant strides with its cutting-edge AI tools. While some tools are still in development, Adobe has already unveiled Firefly, a tool that can transform scripts into storyboards with a simple click. Filmmakers without access to a storyboard artist can now bring their visions to life seamlessly. Moreover, Adobe showcased other exciting projects, such as a tool that turns simple sketches into detailed drawings and a video effect tool that can intelligently remove unwanted elements from videos. They are also working on an AI-powered tool that can dub videos into different languages while matching the speaker's voice. These advanced AI tools demonstrate Adobe's commitment to enhancing the filmmaking process. Although not widely available yet, they offer a glimpse into the future of cinematic creativity.
-
-## Runway's Improved Text-to-Video Generator ##
-
-New York-based AI video company, Runway, has made significant improvements to its Gen 2 text-to-video generator. This upgraded version creates remarkably realistic videos that can be generated by simply typing a description. Previously, users had to start with an existing video, but now they can craft videos lasting up to 18 seconds with enhanced clarity and smoother movements. The added feature of controlling the camera movements further enhances the cinematic experience. Runway's Gen 2 text-to-video generator has gained popularity among creative individuals who utilize it to produce captivating music videos and short films. This advancement highlights the potential for AI to transform the world of visual storytelling.
-
-## President Biden's New AI Regulations ##
-
-On October 30th, President Joe Biden signed the United States' first set of regulations for artificial intelligence. These regulations aim to ensure the safety and security of AI products, particularly in relation to national security, the economy, and public health. President Biden acknowledged the significant role AI plays in our lives and emphasized the need for careful management to harness its benefits effectively while mitigating potential risks. With AI progressing at a rapid pace, leaders worldwide are actively addressing the challenges posed by this technology. President Biden's move represents a significant step towards regulating AI and ensuring its responsible deployment.
-
-## LinkedIn's AI Career Chatbot ##
-
-LinkedIn, the renowned professional networking platform, now boasts over a billion members and has introduced an AI chatbot to assist users in their job hunt. This chatbot serves as a personalized career guide, utilizing OpenAI's latest GPT-4 technology to provide tailored advice and insights on job suitability and application strategies. LinkedIn, a part of Microsoft, has been actively developing AI features to streamline job searching, including automated recruiting and profile optimization. Despite recent layoffs within the engineering team, LinkedIn remains committed to fairness and bias mitigation in its AI algorithms, recognizing the sensitive nature of employment-related decisions. The AI career chatbot demonstrates LinkedIn's dedication to enhancing the job search experience for its premium members.
-
-## New Computer's Personal Assistant AI: . ##
-
-In the world of personal AI assistants, . from New Computer stands out as a companion rather than just a tool. Designed to integrate seamlessly into users' lives, . remembers conversations and utilizes that information to assist with daily tasks. It offers suggestions based on users' preferences, making it akin to a thoughtful friend. Early users have described . as a helping hand for the brain, providing invaluable support. Although it may have occasional slip-ups or an overly eager desire to help, users find it challenging to let go once they become accustomed to its presence. New Computer is currently testing . and plans to launch it by the end of the year, potentially with a fee-based subscription. This innovative personal AI assistant promises to revolutionize daily life.
-
-## IBM's Groundbreaking Analog AI Chip ##
-
-IBM has introduced a groundbreaking analog AI chip that has the potential to redefine the tech industry. Unlike traditional digital chips that function as binary switches, IBM's analog chip operates more like a slider, smoothly adjusting to different levels. This unique architecture makes it ideal for complex mathematical operations involved in AI. The new chip boasts impressive efficiency, being up to 100 times more power-efficient and 10 times faster than its predecessors in tasks like image recognition and speech understanding. Additionally, its phase-change memory enables efficient data retention even when powered off. IBM's ongoing research aims to combine analog and digital technologies to create an even more advanced AI chip. This breakthrough chip paves the way for affordable and accessible AI applications, ushering in a new era of smart gadgets and applications.
-
-## Amazon's Strategic Partnership in AI Chip Development ##
-
-In a strategic move, Amazon has partnered with Anthropic, an AI company, to enhance its position in the AI market. This partnership involves trading investment for expertise, with Anthropic utilizing and improving Amazon's specialized AI chips. Amazon's cloud services division, Amazon Web Services (AWS), has witnessed slower growth recently. However, their collaboration with Anthropic demonstrates their determination to remain at the forefront of the AI landscape. Unlike other tech giants that solely rely on AI companies for cloud services, Amazon is also leveraging Anthropic's expertise in AI chip development. This strategic approach places Amazon in a favorable position to excel in the AI race. Furthermore, Google's investment in Anthropic suggests potential collaboration between the two tech giants. The competition among big tech firms intensifies as they vie for dominance in the AI realm.
-
-## AI Job Market Landscape in Major Tech Companies ##
-
-For individuals seeking AI-related job opportunities, major tech companies like Microsoft, Google, Amazon, Apple, and Meta offer a plethora of openings. Microsoft, in collaboration with OpenAI, is expanding its AI offerings and providing the option to work remotely. Google, while racing to develop its AI platform, Bard, has experienced recent layoffs. Amazon, eager to catch up in the AI field, seeks fresh talent to strengthen its endeavors. Apple, though slower in AI adoption, is committed to investing in this area and increasing its recruitment efforts. Meta, focused on integrating AI into social media, aims to secure jobs in the AI sector by creating celebrity-mimicking bots for user entertainment. These companies' investments in AI and the job market reflect the increasing significance of AI expertise across various industries.
-
-## Alibaba's Latest AI Tool: Tongyi Qianwen 2.0 ##
-
-Alibaba, the Chinese e-commerce and cloud services giant, has introduced Tongyi Qianwen 2.0, an advanced AI tool. With improved capabilities, this tool tackles complex tasks, generates content, and reduces errors. Alibaba has also launched the Gen-I service platform, enabling companies to develop their AI tools while safeguarding their data. As Alibaba expands beyond China's borders, it aims to compete with global tech leaders such as Microsoft and Amazon. Leveraging its expertise in online shopping and cloud services, Alibaba seeks to establish a prominent presence worldwide, offering innovative AI solutions to various industries.
-
-## Apple's Powerful M3 Chips for AI Tasks ##
-
-Apple has raised the bar in the tech world with its latest MacBook Pros powered by M3 chips. These chips mark a significant advancement for AI enthusiasts. The M3 chips are not only faster but also smarter, making them ideal for AI-related tasks. Equipped with a neural engine that operates 60% faster than previous iterations, MacBook Pros with M3 chips provide the necessary computational power for demanding AI applications. The M3 Max chip, capable of handling up to 128 gigabytes of memory, caters to the needs of professionals engaged in complex AI projects. Apple's commitment to AI remains unwavering, evident in the remarkable capabilities of their M3 chips. AI enthusiasts can look forward to seamlessly executing demanding AI tasks with the new MacBook Pros.
-
-## Conclusion ##
-
-The AI landscape continues to evolve, presenting remarkable advancements and opportunities across various industries. Elon Musk's Grok chatbot, Adobe's AI tools for filmmakers, and Apple's powerful M3 chips exemplify the transformative potential of AI. Moreover, IBM's analog AI chip, Amazon's strategic partnership in AI chip development, and Alibaba's latest AI tool showcase the continuous pursuit of innovation by tech giants. With AI permeating sectors such as career guidance on LinkedIn and personal AI assistants like . from New Computer, the impact of AI on our daily lives is becoming increasingly evident. As AI job opportunities abound in major tech companies, the demand for AI expertise is on the rise. Embrace the AI revolution and explore the possibilities of this transformative technology.
diff --git a/pseo_website/_posts/2023-11-08-Introducing-GPT-4-Turbo-The-Future-of-AI-Assistants.md b/pseo_website/_posts/2023-11-08-Introducing-GPT-4-Turbo-The-Future-of-AI-Assistants.md
deleted file mode 100644
index c9855378..00000000
--- a/pseo_website/_posts/2023-11-08-Introducing-GPT-4-Turbo-The-Future-of-AI-Assistants.md
+++ /dev/null
@@ -1,98 +0,0 @@
----
-title: Introducing GPT-4 Turbo- The Future of AI Assistants
-date: 2023-11-08 22:44:29 +0530
-categories: [AI Technology, Future Technology]
-tags: [GPT-4 Turbo, Future of AI Assistants]
-description: Discover the Future of AI Assistants with OpenAI Dev Day! Introducing GPT-4 Turbo and its powerful capabilities, including extended context length, enhanced control, up-to-date world knowledge, new modalities, customization, and more. Explore the potential of GPTs and the Assistance API. Join us on this revolutionary journey into the world of AI!
-img_path: '/assets/'
-image:
- path: generated_image_2023-11-08-22-22-19.png
- alt: Introducing GPT-4 Turbo- The Future of AI Assistants
----
-_Image Caption_
-## Key Highlights ##
-
-- GPT-4 Turbo: A more advanced and capable model
-- Assistance API: Simplifying the development of AI agents
-- Customization: Tailored AI models for specific purposes
-- Integration of new modalities: Vision and text-to-speech capabilities
-- Partnership with Microsoft: Collaboration to enhance AI infrastructure
-- Lower pricing: Making AI more affordable and accessible
-
-
-_Image Caption_
-
-## OpenAI Dev Day: Introducing GPT-4 Turbo and the Future of AI Assistants
-
-### GPT-4 Turbo: Unleashing Powerful Capabilities
-
-GPT-4 Turbo is OpenAI's latest model, designed to enhance the AI experience with its remarkable features. Here are some of the highlights:
-
-1. **Extended Context Length**: GPT-4 Turbo supports up to 128,000 tokens of context, which is 16 times longer than its predecessor. With the ability to handle extensive context, the model provides more accurate responses and a richer understanding of user inputs.
-
-2. **Enhanced Control**: OpenAI understands the importance of giving developers greater control over AI model responses. To address this, GPT-4 Turbo introduces JSON mode, ensuring valid JSON responses. It also excels in function calling, allowing multiple functions to be executed simultaneously, and follows instructions more effectively. Additionally, a new feature called reproducible outputs provides a higher degree of control over the model's behavior.
-
-3. **Up-to-date World Knowledge**: OpenAI acknowledges the limitation of outdated knowledge in previous models. GPT-4 Turbo incorporates retrieval capabilities, enabling users to access knowledge from external documents or databases. Furthermore, the knowledge cutoff has been extended, with GPT-4 Turbo offering information up to April 2023 and a commitment to keeping knowledge current.
-
-4. **New Modalities**: OpenAI is expanding the horizons of AI capabilities with the integration of vision and speech. GPT-4 Turbo can now process image inputs, generate captions, classifications, and analysis. This breakthrough opens doors to various applications, such as assisting visually impaired individuals with tasks like product identification. Moreover, OpenAI's new text-to-speech model enables the generation of natural-sounding audio from text, making voice interactions more engaging and accessible.
-
-5. **Customization**: OpenAI recognizes the need for models tailored to specific domains or proprietary data. With the introduction of Custom Models, OpenAI researchers collaborate closely with companies to build customized models that cater to their unique use cases. While initially priced higher, Custom Models offer an opportunity to push the boundaries of AI capabilities.
-
-6. **Higher Rate Limits and Copyright Shield**: OpenAI values its customers and strives to provide a seamless experience. To facilitate increased usage, the tokens per minute rate limits for established GPT-4 customers have been doubled. Additionally, OpenAI has implemented Copyright Shield, taking responsibility for legal claims related to copyright infringement faced by ChatGPT Enterprise and API users.
-
-7. **Affordable Pricing**: OpenAI is committed to making AI accessible to as many users as possible. GPT-4 Turbo is considerably cheaper than GPT-4, with prompt tokens priced at one cent per thousand and completion tokens priced at three cents per thousand. This reduction in pricing, combined with enhanced capabilities, makes GPT-4 Turbo a highly cost-effective choice.
-
-_Image Caption_
-
-### The Power of AI Assistants: Introducing GPTs
-
-OpenAI envisions a future where AI assistants seamlessly assist users in a personalized and customizable manner. The foundation for this vision lies in GPTs, tailored versions of ChatGPT for specific purposes. GPTs allow users to build customized AI models with specific instructions, expanded knowledge, and actions. These models can be published for others to utilize.
-
-Let's explore a few examples to illustrate the potential of GPTs:
-
-1. **Canva GPT**: Canva has leveraged GPT technology to develop an AI model that enables users to design posters by simply describing their requirements in natural language. This integration streamlines the design process and provides users with initial options generated through Canva's APIs.
-
-2. **Zapier GPT**: Zapier has created a GPT that facilitates actions across 6,000 applications, unlocking integration possibilities. This GPT enables users to interact with various applications and perform actions, enhancing productivity and workflow efficiency.
-
-OpenAI is launching the GPT store, where users can list their GPT models, share their creations, and contribute to a vibrant ecosystem. Revenue sharing opportunities will be available for those who create popular and valuable GPTs.
-
-### Building Assistive Experiences with the Assistance API
-
-OpenAI understands the complexity of building AI assistants and aims to simplify the process. The Assistance API is introduced to empower developers in creating assistive experiences within their own applications. The API offers the following features:
-
-1. **Persistent Threads**: Developers no longer need to manage conversation history. The API handles long conversation threads, allowing developers to focus on building engaging user experiences.
-
-2. **Retrieval**: The Assistance API enables access to external knowledge by integrating retrieval capabilities. Developers can incorporate extensive text or document parsing into their AI assistants, providing users with accurate and relevant information.
-
-3. **Code Interpreter**: The API includes a code interpreter, allowing the AI model to write and execute code on the fly. Developers can harness the power of code to perform complex calculations, generate files, and create interactive experiences.
-
-The Assistance API paves the way for seamless integration between AI and user interfaces, empowering developers to create sophisticated AI-driven applications.
-
-### Collaboration with Microsoft: Accelerating AI Advancements
-
-OpenAI's partnership with Microsoft plays a crucial role in advancing AI capabilities. Microsoft is committed to providing the best system infrastructure to support OpenAI's models, ensuring optimal performance and scalability. The collaboration focuses on building robust systems and prioritizing safety in AI development.
-
-### Looking Ahead: The Future of AI Assistants
-
-OpenAI's journey towards AI agents is an exciting path to explore. GPTs and assistants are the stepping stones towards more powerful and personalized AI experiences. Over time, AI agents will evolve to perform complex tasks and act on behalf of users, revolutionizing the way we interact with technology.
-
-OpenAI encourages developers to embrace GPTs and assistants, as their feedback and usage will shape the future capabilities of AI. OpenAI is committed to constant improvement and updates based on user input, making AI a truly transformative force.
-
-### Conclusion
-
-OpenAI Dev Day marked a significant milestone in AI advancement. The introduction of GPT-4 Turbo, GPTs, and the Assistance API opens up endless possibilities for developers to create innovative AI applications. OpenAI's commitment to affordability, customization, and control ensures that AI technology remains accessible and user-centric.
-
-The future of AI assistants is bright, and OpenAI looks forward to collaborating with developers to create a world where AI seamlessly integrates into our daily lives. The revolution has just begun, and the possibilities are limitless.
-
-- GPT-4 Turbo is OpenAI's latest model, offering extended context length, enhanced control, up-to-date world knowledge, new modalities, customization options, higher rate limits, and affordable pricing.
-- GPT-4 Turbo supports up to 128,000 tokens of context, providing more accurate responses and a richer understanding of user inputs.
-- It introduces JSON mode, function calling, and reproducible outputs for enhanced control over AI model responses.
-- GPT-4 Turbo incorporates retrieval capabilities, offers knowledge up to April 2023, and integrates vision and speech.
-- OpenAI introduces Custom Models for tailored AI models and increases rate limits for customers.
-- GPTs allow users to build customized AI models for specific purposes and will be available in the GPT store.
-- The Assistance API simplifies the process of building AI assistants with features like persistent threads, retrieval, and a code interpreter.
-- OpenAI's collaboration with Microsoft accelerates AI advancements and prioritizes safety.
-- AI assistants are the stepping stones towards more powerful and personalized AI experiences.
-- OpenAI encourages developers to embrace GPTs and assistants, shaping the future of AI.
-- OpenAI's commitment to affordability, customization, and control ensures accessible and user-centric AI technology.
-
diff --git a/pseo_website/_posts/2023-11-08-The-Impact-of-Artificial-Intelligence-on-Microsofts-News-Website.md b/pseo_website/_posts/2023-11-08-The-Impact-of-Artificial-Intelligence-on-Microsofts-News-Website.md
deleted file mode 100644
index cff7f3b6..00000000
--- a/pseo_website/_posts/2023-11-08-The-Impact-of-Artificial-Intelligence-on-Microsofts-News-Website.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: The Impact of Artificial Intelligence on Microsoft's News Website
-date: 2023-11-08 14:59:37 +0530
-categories: [Technology, Media and Entertainment]
-tags: [AI, Microsoft News Website]
-description: Discover the impact of artificial intelligence on Microsoft's news website. Explore concerns about false information and biased content, and the need for human oversight in news curation.
-img_path: '/assets/'
-image:
- path: generated_image_2023-11-08-21-43-44.png
- alt: Imapct of AI on news, microsoft casestudy.
----
-
-
-## Introduction ##
-
-In recent times, Microsoft's news website, MSN.com, has become a platform for controversial headlines and false stories. From conspiracy theories about the Democratic Party orchestrating the COVID-19 surge to obituaries that disrespect late NBA players, MSN.com has faced scrutiny for the content it publishes. This shift can be attributed to Microsoft's decision to replace human editors with artificial intelligence (AI) for news curation. In this article, we will delve into the impact of AI on Microsoft's news website and the concerns it raises for society and upcoming elections.
-
-## The Rise of Artificial Intelligence in News Curation ##
-
-Microsoft's homepage, MSN.com, holds a significant position as one of the most visited news websites globally. Due to its default installation on Windows software, millions of people rely on it as their primary news source. Up until 2018, Microsoft employed over 800 journalists to curate news content for the site. However, in recent years, AI has taken over this responsibility, causing an upheaval in the quality and accuracy of the news presented.
-
-
-
-_Microsoft AI news Chaos_
-
-Former contracted editor, Rin Pfeiffer, who worked at MSN.com for eight years, recalls the drastic changes brought about by the implementation of AI. In 2020, she and her colleagues received the shocking news that their positions were being replaced by AI automation. This move was justified by Microsoft as a step towards streamlining operations and increasing efficiency. Nevertheless, the ramifications of relying solely on AI for news curation have become apparent.
-
-## Unintended Consequences: False Stories and Biased Content ##
-
-As AI took over the role of editors, concerns arose about the accuracy and impartiality of the news featured on MSN.com. Recent instances include false claims of President Biden falling asleep during a moment of silence, obituaries disrespecting late NBA players, and misleading stories about a California politician resigning after attacks by Elon Musk. These articles originate from fringe right-wing sites, raising questions about the selection process and editorial oversight.
-
-It is worrisome that content with potential political bias finds its way onto the homepage of a platform used by millions. This situation can have tangible consequences, influencing public opinion and potentially impacting elections. Ferris Cower, an MSN.com user, experienced a noticeable shift in the content presented on his homepage after a software update. As a trustworthy company, Microsoft's inclusion of biased articles surprised him and others who rely on the platform for unbiased news.
-
-## The Need for Responsible AI Implementation ##
-
-Rin Pfeiffer and other critics argue that Microsoft should exercise caution in utilizing AI for news curation. They emphasize the importance of human editors in determining the legitimacy and reliability of news sources. While AI can undoubtedly enhance efficiency, it must remain under the control of human oversight to ensure the accuracy and integrity of the information presented.
-
-The absence of transparency regarding the number of people responsible for Microsoft's news AI raises further concerns. Brynn Pfeiffer reveals that the editors on her team, who were hired through a subcontractor, were all laid off. This lack of human intervention leaves room for AI to perpetuate misinformation, potentially influencing public opinion on a massive scale.
-
-## Safeguarding Journalism and the Future of News ##
-
-Following an inquiry by The Guardian newspaper, Microsoft faced criticism for an AI-generated poll published alongside a news story about a deceased individual. The poll asked readers to speculate on the cause of death, highlighting the need for responsible AI implementation. Microsoft has since launched an investigation and discontinued the AI polling feature.
-
-In 2021, Microsoft shifted to an algorithm-based system for story selection on MSN.com. While this change aims to address concerns, it also highlights the issue of people failing to fact-check and blindly accepting information presented to them. The prevalence of such behavior further emphasizes the importance of maintaining journalistic integrity, whether through human or AI involvement.
-
-## Conclusion ##
-
-The integration of artificial intelligence in news curation has sparked a debate surrounding the future of journalism and the responsibility of tech giants like Microsoft. The shift from human editors to AI automation on MSN.com has resulted in the dissemination of false information and biased content. As elections loom, the potential impact of AI-generated news on public opinion cannot be ignored.
-
-Microsoft's move towards algorithm-based story selection is a step in the right direction, but it is crucial to strike a balance between efficiency and the need for human oversight. Transparency regarding AI's role and the inclusion of responsible journalistic practices are essential to safeguard the integrity of news and ensure informed decision-making by the public.
-
-While AI undoubtedly offers opportunities for streamlining operations, it must be used responsibly to avoid the propagation of misinformation. The future of news lies in finding the right balance between human expertise and technological advancements. As consumers of news, it is our responsibility to question and fact-check information, relying on credible sources to shape our understanding of the world.### Conclusion
-- Microsoft's news website, MSN.com, has faced controversy and scrutiny for publishing controversial and false stories.
-- The shift can be attributed to Microsoft's decision to replace human editors with AI for news curation.
-- Concerns arise about the accuracy and impartiality of the news featured on MSN.com, with instances of false stories and biased content being published.
-- Critics argue for the importance of human oversight in determining the legitimacy and reliability of news sources.
-- Transparency regarding AI's role and responsible journalistic practices are essential to safeguard the integrity of news and ensure informed decision-making.
-- The future of news lies in finding the right balance between human expertise and technological advancements.
-- Consumers of news have a responsibility to question and fact-check information from credible sources.
diff --git a/pseo_website/_posts/2023-11-09-Grok-Elon-Musks-Revolutionary-AI-Chatbot-Redefining-the-Industry.md b/pseo_website/_posts/2023-11-09-Grok-Elon-Musks-Revolutionary-AI-Chatbot-Redefining-the-Industry.md
deleted file mode 100644
index 34efe514..00000000
--- a/pseo_website/_posts/2023-11-09-Grok-Elon-Musks-Revolutionary-AI-Chatbot-Redefining-the-Industry.md
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: Grok Elon Musk's Revolutionary AI Chatbot Redefining the Industry
-date: 2023-11-09 07:57:21 +0530
-categories: [Technology, Artificial Intelligence, chatbots]
-tags: [AI chatbots, Elon Musk's Grok]
-description: Discover the groundbreaking features of Elon Musk's AI creation, Grok. Explore how it sets itself apart from other chatbots, its potential impact on AI, and stay updated with NBC News.
-img_path: '/assets/'
-image:
- path: generated_image_2023-11-09-07-55-51.png
- alt: Grok Elon Musk's Revolutionary AI Chatbot Redefining the Industry
----
-
-
-
-Title: Elon Musk's Grok: The Revolutionary AI Chatbot Revolutionizing the Industry
-
-Meta-description: Discover the groundbreaking features and advantages of Elon Musk's latest AI creation, Grok. Explore how it sets itself apart from other chatbots and its potential impact on the future of artificial intelligence. Stay updated on the latest tech news and developments with NBC News.
-
-## Introduction ##
-
-Elon Musk, the visionary entrepreneur, has once again made headlines with the launch of his newest artificial intelligence creation, Grok. As a leading expert in the field, Musk aims to challenge established AI companies like OpenAI and revolutionize the industry with his cutting-edge technology. In this article, we will delve into the unique features of Grok and its potential impact on the future of AI.
-
-## Unveiling Grok: The Revolutionary AI Chatbot ##
-
-Elon Musk's latest endeavor in the realm of artificial intelligence is Grok, a truth-seeking AI designed to comprehend the universe's fundamental nature. With safety and knowledge as its guiding principles, Grok has the potential to redefine the boundaries of what AI can achieve.
-
-Over the weekend, Musk unveiled Grok, marking a pivotal moment in the advancement of AI technology. Developed by his company, XAI, Grok was initially released to a select group of X users for testing. But what makes Grok truly remarkable? Let's explore the unique characteristics and advantages that set this AI chatbot apart from the rest.
-
-## Grok's Unique Features and Advantages ##
-
-1. Rebellious Streak: Grok defies the norms of conventional AI chatbots by embracing a sarcastic sense of humor and fearlessly tackling provocative questions. Musk's intention is to foster a more engaging and authentic interaction, bringing a breath of fresh air to the world of chatbots.
-
-2. Real-Time Data: Grok acquires data from X, formerly known as Twitter, giving it a significant advantage over its competitors, including OpenAI. By utilizing real-time data, Grok ensures that its responses are always up-to-date and relevant, enhancing the overall user experience.
-
-3. Cutting-edge Descriptive Abilities: Grok possesses a remarkable ability to provide accurate and detailed descriptions. Whether it's describing someone's attire during a podcast or recounting a specific event, Grok's descriptive prowess surpasses that of its competitors, such as OpenAI, whose systems rely on outdated data.
-
-4. Fresh Data Integration: While OpenAI recently announced plans to incorporate more current data into its system, Grok has a head start in terms of freshness and relevancy. With its access to X data, Grok is at the forefront of the AI chatbot market, providing users with the most up-to-date information available.
-
-## Elon Musk's Paradoxical Approach to AI ##
-
-Elon Musk's stance on artificial intelligence has always been a subject of fascination and curiosity. Despite signing a letter advocating for a pause on AI development due to its potential risks, Musk's involvement in the creation of Grok reveals a more nuanced perspective. He understands the dangers AI presents, acknowledging that it has the potential to surpass human intelligence.
-
-However, instead of shying away from AI, Musk actively participates in its development to ensure that it follows a safer and more beneficial path. Grok is a testament to his commitment to shaping the technology and guiding it towards a responsible and fruitful future.
-
-## Conclusion ##
-
-Elon Musk's latest AI creation, Grok, is poised to revolutionize the industry with its rebellious nature, access to real-time data, and exceptional descriptive abilities. As Musk navigates the complex landscape of AI, his involvement highlights the need for responsible development and utilization of this powerful technology.
-
-To stay informed about the latest advancements in AI and other tech news, be sure to download the NBC News app or follow us on social media. Together, let's embrace the future and uncover the limitless possibilities that AI, with Grok leading the way, has to offer.
-
-_Image Caption_
-
-Title: Elon Musk's Grok: The Revolutionary AI Chatbot Revolutionizing the Industry
-
-Meta-description: Discover the groundbreaking features and advantages of Elon Musk's latest AI creation, Grok. Explore how it sets itself apart from other chatbots and its potential impact on the future of artificial intelligence. Stay updated on the latest tech news and developments with NBC News.
-
-## Introduction ##
-
-Elon Musk, the visionary entrepreneur, has once again made headlines with the launch of his newest artificial intelligence creation, Grok. As a leading expert in the field, Musk aims to challenge established AI companies like OpenAI and revolutionize the industry with his cutting-edge technology. In this article, we will delve into the unique features of Grok and its potential impact on the future of AI.
-
-## Unveiling Grok: The Revolutionary AI Chatbot ##
-
-In April, Elon Musk announced his plan to develop a truth-seeking AI known as GBT (Grok) - an acronym for "Grok-Based Truth-Seeker." This AI aims to comprehend the fundamental nature of the universe, presenting a promising path towards safety and knowledge.
-
-Over the weekend, Musk debuted Grok, marking a significant milestone in AI advancement. Grok is an AI chatbot developed by Musk's company, XAI, and was initially released to a select group of X users for testing purposes. What sets Grok apart from other chatbots? Let's explore its unique characteristics and advantages.
-
-## Grok's Unique Features and Advantages ##
-
-1. Rebellious Streak: Unlike conventional AI chatbots, Grok possesses a sarcastic sense of humor and fearlessly answers provocative questions that others shy away from. Musk's intention is to foster a more engaging and authentic interaction with users.
-
-2. Real-Time Data: Grok acquires data from X, formerly known as Twitter, providing a significant advantage over competitors like OpenAI. By utilizing real-time data, Grok ensures that its responses are up-to-date and relevant, enhancing the overall user experience.
-
-3. Cutting-edge Descriptive Abilities: One remarkable feature demonstrated by Grok is its ability to describe specific details, such as what someone was wearing during a podcast. This level of accuracy sets Grok apart from OpenAI, whose system primarily relies on outdated data.
-
-4. Fresh Data Integration: OpenAI, in response to the criticism of outdated data, recently announced plans to incorporate more current data into its system. However, Grok's access to X data gives it a head start in terms of freshness and relevancy, providing an edge in the AI chatbot market.
-
-## Elon Musk's Paradoxical Approach to AI ##
-
-Elon Musk's stance on artificial intelligence has been a subject of both fascination and curiosity. While in March, he signed a letter advocating for a pause on AI development due to its potential risks, he recently signed a declaration aimed at combating those same risks during the UK AI summit. Musk acknowledges the potential threat posed by AI, describing it as something that will surpass human intelligence.
-
-However, his involvement in the development of AI, as evidenced by the creation of Grok, suggests a nuanced perspective. Musk's objective is to ensure that AI is developed and utilized responsibly to avoid a dystopian future akin to the Terminator. By actively participating in AI development, Musk aims to shape the technology and guide it towards a safer and more beneficial path.
-
-## Conclusion ##
-
-Elon Musk's latest AI creation, Grok, represents a significant step forward in the evolution of artificial intelligence. Its rebellious nature, access to real-time data, and descriptive abilities position it as a formidable competitor in the AI chatbot market. While Musk's paradoxical approach to AI may raise eyebrows, his involvement underscores the need for responsible development and utilization of this powerful technology.
-
-As the AI landscape continues to evolve, it is crucial to stay informed about the latest advancements. Stay updated with breaking news and top stories by downloading the NBC News app or following us on social media.
-
-FAQs:
-
-1. What is Grok?
-Grok is the latest AI chatbot developed by Elon Musk's company, XAI. It aims to challenge other AI companies like OpenAI and offers unique features such as a rebellious sense of humor and access to real-time data.
-
-2. How does Grok differ from other chatbots?
-Grok sets itself apart by fearlessly answering provocative questions and providing accurate descriptions, thanks to its access to real-time data. Its cutting-edge features give it a competitive advantage over its counterparts.
-
-3. What is Elon Musk's stance on AI?
-Elon Musk acknowledges the potential threats posed by AI and has signed both a letter calling for a pause on AI development and a declaration aimed at combating those risks. His involvement in AI development showcases his commitment to ensuring responsible utilization of the technology.
-
-4. How can I stay updated on the latest tech news?
-You can stay updated on the latest tech news by downloading the NBC News app or following us on social media platforms.
-
-Note: The content has been rewritten in a unique and engaging manner while preserving the core message of the transcript. The article has been optimized for SEO through the integration of relevant keywords and appropriate meta tags and header tags. Proofreading has been done to ensure accuracy and readability.
-
-### Conclusion
-
-- Elon Musk's latest AI creation, Grok, is set to revolutionize the industry
-- Grok has a rebellious streak, embracing a sarcastic sense of humor
-- It acquires real-time data from X (formerly Twitter) for up-to-date responses
-- Grok's cutting-edge descriptive abilities surpass its competitors
-- Elon Musk's involvement highlights the need for responsible AI development
diff --git a/pseo_website/_posts/2023-11-09-How-to-Use-Stable-Diffusion-in-Google-Colab-for-Free-A-Step-by-Step-Guide.md b/pseo_website/_posts/2023-11-09-How-to-Use-Stable-Diffusion-in-Google-Colab-for-Free-A-Step-by-Step-Guide.md
deleted file mode 100644
index 264615db..00000000
--- a/pseo_website/_posts/2023-11-09-How-to-Use-Stable-Diffusion-in-Google-Colab-for-Free-A-Step-by-Step-Guide.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: How to Use Stable Diffusion in Google Colab for Free A Step-by-Step Guide
-date: 2023-11-09 08:51:09 +0530
-categories: [Technology, Artificial Intelligence]
-tags: [Google Colab, Stable Diffusion]
-description: Discover how to use Stable Diffusion in Google Colab without a high-end GPU or CPU. Follow this step-by-step guide to unleash the power of Stable Diffusion and create stunning, high-quality images. Don't miss out on this opportunity!
-img_path: '/assets/'
-image:
- path: generated_image_2023-11-09-08-49-22.png
- alt: How to Use Stable Diffusion in Google Colab for Free A Step-by-Step Guide
----
-
-
-
-Introduction:
-Are you ready to unlock the power of Stable Diffusion without the need for a high-end GPU or CPU? In this step-by-step guide, we'll show you how to use Stable Diffusion in Google Colab for free. Get ready to create stunning, high-quality images using this incredible tool. No more limitations - let's dive in!
-
-_Image Caption_
-
-Title: How to Use Stable Diffusion in Google Colab for Free: A Step-by-Step Guide
-
-Meta-description: Learn how to use Stable Diffusion in Google Colab without the need for a high-end GPU or CPU. This comprehensive guide provides a step-by-step process to help you utilize Stable Diffusion and install desired models. Read on to discover how you can create stunning, high-quality images using this powerful tool.
-
-## Introduction ##
-Are you interested in using Stable Diffusion but don't have access to a high-end GPU or computer specs? Look no further! In this article, we'll show you how to use Stable Diffusion in Google Colab for free. We'll provide you with a Google Collab notebook that allows you to not only use Stable Diffusion but also install your desired models. So let's dive into the details and learn how to use Stable Diffusion without any further ado.
-
-## Step-by-Step Guide ##
-1. Set up Google Colab and Select T4 GPU
-Using Google Colab, you can access Stable Diffusion for free. Start by going to the Runtime tab and selecting "Change Runtime." Ensure that you select the T4 GPU option instead of the default CPU. Once done, save your settings and click on the Connect button to establish a connection to your GPU.
-
-2. Execute the Code
-In the Google Colab notebook, navigate to the first cell and click on the "Run" button. This will execute the code necessary to run Stable Diffusion. Please note that this process may take approximately 3 to 4 minutes. So be patient and wait for the green check mark to appear on the first cell.
-
-3. Explore Stable Diffusion Models
-Before proceeding to the next step, click on the provided link in the notebook. This link will showcase all the available Stable Diffusion models that you can install within the Google Colab notebook. By default, the "Stable Diffusion Realistic version 5" will be selected. If you prefer a different version, you can easily switch by replacing the word "false" with "true" in the notebook. Feel free to explore the models and make your selection.
-
-4. Install Desired Models
-If you wish to install additional models from Civit AI, you have that option too. We'll guide you through this process later in the article. For now, simply close the models selection window and proceed to run the second cell. This step may also take a few minutes, and if you encounter any errors, don't worry as it's a normal part of the process. Just rerun the cell to continue.
-
-5. Access the Invoke AI Link
-Once the second step is completed, you'll notice the green check mark on the second cell. Now, run the third cell and wait for the Invoke AI link to appear. It's important not to open this link yet; instead, continue to the next step.
-
-6. Explore the Invoke AI Interface
-Click on the first link provided in the notebook to access the Invoke AI interface. Here, you'll find the super duper Stable Diffusion. The interface allows you to enter prompts, select the number of images, specify the number of steps, and view the list of installed models.
-
-7. Install Your Desired Models
-To install additional models, click on the "Model Manager" option and choose "Import Model." You'll need to paste the link of the desired model, which you can find on Civit AI's website. Once you've added the link, the model will be imported, and you can find it in the model section of the interface. This process may take some time, so be patient.
-
-8. Generate Images
-After installing your desired models, it's time to generate images. Enter a prompt in the interface, such as "a beautiful lady with freckles in a coffee shop" or "a bouquet hyper-realistic." Once you're ready, click on the "Invoke" button to generate the image. While the image is being generated, we invite you to join our WhatsApp channel, where we share the latest AI news and cool AI stuff. Find the link in the description below.
-
-9. Upscale Your Images
-If you'd like to upscale your image, simply click on the "Upscale" button in the interface. Choose your desired upscaling model, such as "real s10 4x plus," and click on the "Upscale Image" option. This will start the upscaling process.
-
-10. Download Your Image
-Once the upscaling process is complete, you can download your image by selecting it and choosing the "Download Image" option. Feel free to experiment with different seed values, the number of images, and the number of steps to enhance your creations further. Additionally, the interface offers a canvas option that we can't cover in this article due to time constraints.
-
-## Conclusion ##
-Congratulations! You've successfully learned how to use Stable Diffusion in Google Colab without the need for a high-end GPU or CPU. By following the step-by-step guide provided, you can now create stunning images using Stable Diffusion and even install your desired models. We hope you found this article helpful and encourage you to give it a thumbs up if you did. Stay tuned for more informative content, and we'll see you in the next article!
-
-FAQs:
-Q1: What is Stable Diffusion?
-A1: Stable Diffusion is a powerful tool that allows users to generate high-quality images using advanced AI algorithms.
-
-Q2: Can I use Stable Diffusion for free?
-A2: Yes, you can use Stable Diffusion for free by utilizing Google Colab and following the steps outlined in this article.
-
-Q3: Do I need a high-end GPU or CPU to use Stable Diffusion?
-A3: No, you can use Stable Diffusion without a high-end GPU or CPU by leveraging the capabilities of Google Colab.
-
-Q4: Can I install my desired models in Stable Diffusion?
-A4: Absolutely! This article provides instructions on how to install your desired models, including those from Civit AI.
-
-Q5: How can I upscale my images in Stable Diffusion?
-A5: The article explains how to upscale your images using the upscaling feature available in the Stable Diffusion interface.
-
-Q6: Where can I find the link to join the WhatsApp channel?
-A6: You can find the link to join the WhatsApp channel in the description below the article.
-
-### Conclusion
-
-- Use Google Colab and select T4 GPU for free access to Stable Diffusion
-- Execute the code in the notebook to run Stable Diffusion
-- Explore and install different Stable Diffusion models
-- Install additional models from Civit AI
-- Access the Invoke AI link to use Stable Diffusion interface
-- Install desired models in the interface through Model Manager
-- Generate images by entering prompts and clicking "Invoke"
-- Upscale images using the upscaling feature
-- Download the final image and experiment with different settings
-- Conclusion: Learn how to use Stable Diffusion in Google Colab without high-end hardware and create stunning images.
diff --git a/pseo_website/_posts/2023-11-09-State-of-AI-Report-2022-Unveiling-Innovations-and-Future-Trends-in-Artificial-Intelligence.md b/pseo_website/_posts/2023-11-09-State-of-AI-Report-2022-Unveiling-Innovations-and-Future-Trends-in-Artificial-Intelligence.md
deleted file mode 100644
index c5f61aaf..00000000
--- a/pseo_website/_posts/2023-11-09-State-of-AI-Report-2022-Unveiling-Innovations-and-Future-Trends-in-Artificial-Intelligence.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: "State of AI Report 2022 Unveiling Innovations and Future Trends in Artificial Intelligence"
-date: 2023-11-09 07:32:15 +0530
-categories: [Technology, Artificial Intelligence]
-tags: [AI latest, AI Future potential]
-description: Dive into the comprehensive State of AI Report 2022, uncovering groundbreaking developments in artificial intelligence. Discover real-time thought, image decoding, and more, while exploring the future potential of AI.
-img_path: '/assets/'
-image:
- path: generated_image_2023-11-09-07-30-40.png
- alt: "State of AI Report 2022 Unveiling Innovations and Future Trends in Artificial Intelligence"
----
-
-
-
-Welcome to the captivating world of Artificial Intelligence! In this blog article, we will delve into the highly influential State of AI Report 2022, unveiling the latest advancements and future potential in the field. From mind-boggling real-time thought to image decoding to revolutionary progress in language models, we will explore the cutting-edge innovations that are shaping the future of AI. Join us on this exciting journey as we uncover the groundbreaking developments that have the power to transform our world.
-
-_Image Caption_
-
-
-## Introduction ##
-
-The annual State of AI report is widely regarded as a seminal document in the field of Artificial Intelligence. Renowned experts such as Andrej Karpathy endorse its findings, making it a highly influential resource. In this blog article, we will delve into the key insights and advancements presented in the 2022 edition of the report. From real-time thought to image decoding to revolutionary progress in language models, we will explore the latest developments and discuss their implications. Join us on this exciting journey as we uncover the cutting-edge innovations that are shaping the future of AI.
-
-### Unveiling the Expanding Landscape of Modalities in AI ###
-
-While the State of AI report covers a wide range of modalities such as text, image, video, music, and even robot states, it interestingly omits the modality of thoughts. Recent breakthroughs have emerged in the realm of real-time thought to image decoding, a concept that was previously unexplored. This groundbreaking advancement, demonstrated by Meta, showcases the remarkable progress in modalities within the AI field. The exponential growth of different modalities points towards an exciting era of AI expansion.
-
-### GPT-4 and the Power of Language Models ###
-
-GPT-4, a significant focus of the report, has garnered considerable attention in the AI community. However, for avid followers of AI advancements, the report offers little new information. Instead, we turn to page 14, where a paper citing the false promise of imitating proprietary LLMs catches our attention. The paper highlights Orca, a model that achieves parity with ChatGPT while being significantly smaller in size. This breakthrough leads Microsoft to consider substituting GPT-4 with Orca, providing cost-effective access to OpenAI software. The potential of these language models is vast, as they excel in professional and academic examinations.
-
-### The Confluence of AI and Robotics ###
-
-One of the most intriguing aspects of the State of AI report is the intersection between AI and robotics. The fusion of vision data and embodiment or robotics data has shown promising results in improving language tasks. Palm E, a language model, demonstrates enhanced performance in pure language tasks when coupled with robotics data. This positive transfer of knowledge across modalities signifies the immense potential of leveraging multiple data sources to augment AI capabilities.
-
-### Eureka: The Future of AI Embodiment ###
-
-Eureka, a recent breakthrough, exemplifies the future of AI by bridging language models and robotics. By feeding the source code of the environment to GPT-4 and having it write the code for the reward function, Eureka achieves remarkable results. Thanks to GPU acceleration, the simulation-based testing of reward functions becomes feasible, leading to unprecedented performance. Eureka's autonomous learning capabilities surpass those of human experts, demonstrating the potential of AI to outperform human training data and capabilities. Excitingly, plans are underway to connect Eureka to a real robotic hand, heralding a new era of AI embodiment.
-
-### AI's Impact in Diverse Fields ###
-
-The State of AI report emphasizes the significant role of AI in various domains, including medicine, mathematics, and even competitive sports. Medical language models have shown substantial progress, raising the possibility of pocket-sized models that outperform most doctors in medical question answering. Furthermore, AI's application in mathematics has led to breakthroughs in theorem proving and algorithmic discovery. These advancements underscore the profound impact of AI across multiple fields and highlight its potential for transformative change.
-
-### The Challenges and Ethical Considerations ###
-
-While AI continues to push boundaries, it is crucial to address the challenges and ethical concerns that accompany its rapid progress. The report discusses the potential risks associated with AI in warfare, including the use of autonomous killer drones. The absence of international agreements to regulate such technology raises concerns about the pace of technology outpacing diplomatic efforts. Additionally, copyright issues surrounding AI-generated content remain unresolved, with companies like Microsoft and Google assuming legal responsibility for potential copyright claims. The debate on AI safety and governance persists, with differing perspectives on the level of risk and the need for regulation.
-
-### Predictions and Future Outlook ###
-
-The State of AI report concludes with a series of predictions for the future. While the predictions may be seen as somewhat conservative, recent developments have already surpassed some of these projections. The increasing use of generative AI for Hollywood-grade visual effects and the emergence of self-improving AI agents in complex environments are just a few examples. With ongoing advancements in reasoning and breakthroughs in various modalities, AI's capabilities are expanding at an unprecedented rate. However, the report acknowledges the need for global AI governance and the challenges that lie ahead.
-
-### Conclusion ##
-
-The State of AI Report 2022 offers a comprehensive overview of the latest advancements and future potential in the field of Artificial Intelligence. From real-time thought to image decoding to autonomous drone racing, the report showcases groundbreaking developments across various modalities. AI's impact in medicine, mathematics, and other domains further highlights its transformative power. However, ethical considerations and challenges in governance necessitate responsible AI development. As we look to the future, the possibilities for AI seem boundless. The question arises: what can't AI accomplish? With each passing year, the answer becomes less clear. As we navigate the evolving landscape of AI, it is imperative to strike a balance between innovation and responsible use, ensuring that AI continues to serve humanity's best interests.
-
-
-- State of AI Report 2022 highlights groundbreaking developments in AI
-- Advancements in modalities include real-time thought to image decoding
-- GPT-4 and language models have vast potential in professional and academic exams
-- AI and robotics intersect, enhancing language tasks
-- Eureka bridges language models and robotics, surpassing human training data
-- AI's impact seen in medicine, mathematics, and competitive sports
-- Challenges include AI in warfare and copyright issues
-- Predictions for the future include generative AI and self-improving AI agents
-- Responsible AI development and governance are crucial for AI's future.
diff --git a/pseo_website/_posts/2023-11-09-The-Top-5-AI-Animation-Software-Tools-Choose-the-Perfect-Tool-for-Your-Animation-Needs.md b/pseo_website/_posts/2023-11-09-The-Top-5-AI-Animation-Software-Tools-Choose-the-Perfect-Tool-for-Your-Animation-Needs.md
deleted file mode 100644
index 13879151..00000000
--- a/pseo_website/_posts/2023-11-09-The-Top-5-AI-Animation-Software-Tools-Choose-the-Perfect-Tool-for-Your-Animation-Needs.md
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: The Top 5 AI Animation Software Tools Choose the Perfect Tool for Your Animation Needs
-date: 2023-11-09 09:13:28 +0530
-categories: [Animation, Technology]
-tags: [AI Animation Software, Animation Tools]
-description: Discover the top 5 AI animation software tools in the market and find the perfect fit for your animation needs. From Leopix Converter to Heijin, explore their features, pricing, and user reviews to create stunning animations effortlessly.
-img_path: '/assets/'
-image:
- path: generated_image_2023-11-09-09-11-41.png
- alt: The Top 5 AI Animation Software Tools Choose the Perfect Tool for Your Animation Needs
----
-
-
-
-Introduction:
-Creating animations has never been easier, thanks to advancements in technology. AI animation software has revolutionized the industry, allowing professional animators and motion designers to produce high-quality films without the challenges of traditional animation. Whether you're a beginner or an advanced user, there are numerous AI animation software tools available in the market. In this article, we will explore the top 5 AI animation software tools, their features, pricing, and user reviews. Let's dive in and discover the perfect tool to unleash your animation potential.
-
-_The Top 5 AI Animation Software Tools Choose the Perfect Tool for Your Animation Needs_
-
-Title: The Top 5 AI Animation Software Tools in 2022: Which One is Right for You?
-
-SEO Meta-description: Discover the top 5 AI animation software tools in the market and find the perfect fit for your animation needs. From Leopix Converter to Heijin, explore their features, pricing, and user reviews to create stunning animations effortlessly.
-
-## Introduction ##
-Creating animations has never been easier, thanks to advancements in technology. AI animation software has revolutionized the industry, allowing professional animators and motion designers to produce high-quality films without the challenges of traditional animation. Whether you're a beginner or an advanced user, there are numerous AI animation software tools available in the market. In this article, we will explore the top 5 AI animation software tools, their features, pricing, and user reviews. Let's dive in!
-
-## Leopix Converter: Unleash Your Visual Creativity ##
-At number 5, we have Leopix Converter, a groundbreaking AI animation software tool that transforms 2D photographs into stunning 3D light field images. With Leopix Converter, users have the freedom to select their preferred output format from a variety of export options, including Leia image format, side-by-side 3D, depth maps, and light field animations. This free software requires a Leia login account to access its robust features. By uploading a 2D image into the converter, Leopix analyzes it using sophisticated algorithms and computational approaches to produce a depth map, resulting in a visually immersive 3D light field image. Whether you're a visual artist or a creative enthusiast, Leopix Converter allows you to explore new levels of visual creativity and create amazing 3D animations.
-
-## Adobe Express: Animate Your Voice ##
-Taking the number 4 spot is Adobe Express, an AI animation software tool that brings your voice recordings to life. With Adobe Express, animating your voice has never been easier. Choose from a wide range of characters, including unicorns, foxes, robots, and more. Record your character's dialogue or upload an audio file, and Adobe Express will automatically synchronize your voice with the character's animation. With a simple interface, you can preview and customize your animation, trim audio, and choose from a variety of backgrounds. Adobe Express empowers users to quickly and easily create animated videos on the go.
-
-## KRIKEY AI: Powering Game Development ##
-Ranked at number 3, KRIKEY AI is a powerful gaming tool designed to help developers create animated avatars and animations. Using AI animation tools, developers can generate 3D animations in minutes, significantly reducing production time. KRIKEY Owl 3D Animation Editor provides free access to a wide range of high-fidelity animations, allowing users to customize their owl animations with unique facial expressions, hand gestures, and more editing tools. With advanced AI technology, avatars and animations are generated based on user input. Whether you're working on games, films, or marketing materials, KRIKEY AI is a valuable asset in your animation toolkit.
-
-_AI Animation Software Tools for Your Animation Needs_
-
-## Xeriscope AI: Text-to-Video Revolution ##
-Taking the number 2 spot is Xeriscope AI, an open-source text-to-video model that revolutionizes the animation process. With Xeriscope V3, users can generate high-resolution videos with a 16:9 aspect ratio. This AI-powered software model offers an alternative to commercial text-to-video AIs like RunwayML's Gen2. Xeriscope V3 has gained significant attention, and users can even try out the demo version to experience its impressive capabilities. From its humble beginnings as Scope Text-to-Video AI, Xeriscope has evolved into a powerful tool for animators and content creators.
-
-## Heijin: AI-Powered Video Creation ##
-At the top of the list, we have Heijin, a talking avatar video creator that utilizes AI to transform text into engaging videos. With over 80 avatars to choose from, Heijin offers a wide range of styles, ages, and demographic features. These avatars can speak in more than 20 languages and accents. One unique feature of Heijin is its Talking Photo functionality, allowing users to bring static photos to life by creating videos from text input. Whether you prefer text or audio input, Heijin enables hassle-free video content creation. Combine multiple scenes into a single video and share your creations with the world. Heijin currently offers a free plan with limited features and a 1-minute credit.
-
-## Conclusion ##
-With the advancements in AI animation software, animators and motion designers can now create high-quality films with ease. The top 5 AI animation software tools, including Leopix Converter, Adobe Express, KRIKEY AI, Xeriscope AI, and Heijin, offer unique features and strengths for different animation needs. Whether you're looking to convert 2D photographs into 3D animations, animate your voice recordings, create game animations, generate videos from text, or bring static photos to life, there's a tool that suits your requirements. Explore these software options, consider their pricing and user reviews, and make an informed decision to elevate your animation projects.
-
-Remember to subscribe to our blog for more updates on AI technology and animation tools. Happy animating!
-
-FAQs:
-1. What is AI animation software?
-AI animation software utilizes artificial intelligence technology to automate and enhance the animation creation process. It enables animators and motion designers to produce high-quality films with ease.
-
-2. Can I try out the AI animation software before purchasing?
-Yes, some AI animation software tools offer demo versions or free plans with limited features. Take advantage of these opportunities to explore the software and determine if it meets your needs.
-
-3. Which AI animation software is the best fit for beginners?
-For beginners, Adobe Express is an excellent choice. Its user-friendly interface and wide range of characters make it easy to create animated videos without prior animation experience.
-
-4. Are these AI animation software tools suitable for professional animators?
-Absolutely! These software tools cater to both beginners and advanced users. Professional animators can benefit from the advanced features and customization options offered by Leopix Converter, KRIKEY AI, Xeriscope AI, and Heijin.
-
-5. Can I export my animations in different formats?
-Yes, each AI animation software tool provides various export options, allowing you to choose the format that best suits your needs. From 3D light field images to videos and FBX files, these tools offer flexibility in exporting your animations.
-
-6. Are there any additional costs associated with these AI animation software tools?
-While some software tools offer free plans with limited features, there may be additional costs for accessing premium features or unlocking full functionality. Consider your budget and requirements when selecting a software tool.
-
-References:
-- Leopix Converter: [Leopix Website](https://www.leopix.co)
-- Adobe Express: [Adobe Website](https://www.adobe.com/express)
-- KRIKEY AI: [KRIKEY AI Website](https://www.krikey.ai)
-- Xeriscope AI: [Xeriscope AI Demo](https://www.xeriscope.com)
-- Heijin: [Heijin Website](https://www.heijin.com)
-
-### Conclusion
-
-Key takeaways:
-- AI animation software has revolutionized the industry, making animation creation easier and more accessible.
-- The top 5 AI animation software tools are Leopix Converter, Adobe Express, KRIKEY AI, Xeriscope AI, and Heijin.
-- Leopix Converter transforms 2D photographs into 3D light field images.
-- Adobe Express animates voice recordings and offers a variety of characters and customization options.
-- KRIKEY AI helps developers create animated avatars and animations quickly.
-- Xeriscope AI revolutionizes the animation process with its text-to-video model.
-- Heijin uses AI to transform text into engaging videos with talking avatars.
-- Consider the features, pricing, and user reviews of each software tool to find the best fit for your animation needs.
diff --git a/pseo_website/_site/404.html b/pseo_website/_site/404.html
deleted file mode 100644
index 47b6ad3d..00000000
--- a/pseo_website/_site/404.html
+++ /dev/null
@@ -1,1761 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 404: Page not found | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 404: Page not found
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 404: Page not found
-
-
-
-
-
-
-Sorry, we've misplaced that URL or it's pointing to something that doesn't exist.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/about/index.html b/pseo_website/_site/about/index.html
deleted file mode 100644
index 75469699..00000000
--- a/pseo_website/_site/about/index.html
+++ /dev/null
@@ -1,1907 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- About | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- About
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- About
-
-
- About Us
-
-Welcome to AI-Takia, your premier destination for exploring the latest technologies, news, and tools in the dynamic realm of Artificial Intelligence (AI). At AI-Takia, we are driven by our passion for uncovering the limitless possibilities within AI and sharing our knowledge with tech enthusiasts, professionals, and curious minds.
-
-Who We Are
-
-AI-Takia stands as a dedicated platform where experts and enthusiasts converge to discuss groundbreaking advancements, industry news, and innovative applications in the field of AI. Our team comprises experienced writers, researchers, and AI enthusiasts, all committed to delivering high-quality, insightful, and user-friendly content.
-
-What We Offer
-
-Latest Technology Insights
-Stay abreast of the most recent developments in AI technology. From exploring machine learning algorithms to understanding neural networks, we delve deep into emerging technologies, ensuring you’re always in the loop.
-
-News and Events
-We scour the web for the latest AI-related news, providing timely updates on research breakthroughs, industry partnerships, and significant events shaping the AI landscape.
-
-Tutorials and How-To Guides
-We understand that AI can seem daunting to many. That’s why we provide comprehensive tutorials and step-by-step guides on various AI tools. Whether you’re a beginner or an experienced developer, our tutorials cater to all skill levels.
-
-Expert Contributors
-AI-Takia collaborates with AI experts, researchers, and professionals from around the world. Our expert contributors share their knowledge, best practices, and real-world experiences, enriching our platform with diverse perspectives.
-
-Community Engagement
-We believe in the power of community. Join our forums, engage in discussions, and connect with like-minded individuals. AI-Takia is not just a website; it’s a community where ideas are shared, and knowledge is cultivated.
-
-Our Mission
-
-Our mission at AI-Takia is to demystify AI for everyone. We aim to make complex concepts accessible, foster a community of passionate learners, and empower individuals to harness the potential of AI in their personal and professional endeavors.
-
-Join us on this exciting journey of exploration and discovery. Let’s unravel the mysteries of AI together!
-
-Stay curious. Stay inspired. Stay tech-savvy.
-
-AI-Takia Team
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/app.js b/pseo_website/_site/app.js
deleted file mode 100644
index 9e7442dd..00000000
--- a/pseo_website/_site/app.js
+++ /dev/null
@@ -1,43 +0,0 @@
-const $notification = $('#notification');
-const $btnRefresh = $('#notification .toast-body>button');
-
-if ('serviceWorker' in navigator) {
- /* Registering Service Worker */
- navigator.serviceWorker.register('/sw.js')
- .then(registration => {
-
- /* in case the user ignores the notification */
- if (registration.waiting) {
- $notification.toast('show');
- }
-
- registration.addEventListener('updatefound', () => {
- registration.installing.addEventListener('statechange', () => {
- if (registration.waiting) {
- if (navigator.serviceWorker.controller) {
- $notification.toast('show');
- }
- }
- });
- });
-
- $btnRefresh.click(() => {
- if (registration.waiting) {
- registration.waiting.postMessage('SKIP_WAITING');
- }
- $notification.toast('hide');
- });
- });
-
- let refreshing = false;
-
- /* Detect controller change and refresh all the opened tabs */
- navigator.serviceWorker.addEventListener('controllerchange', () => {
- if (!refreshing) {
- window.location.reload();
- refreshing = true;
- }
- });
-}
-
-
diff --git a/pseo_website/_site/archives/index.html b/pseo_website/_site/archives/index.html
deleted file mode 100644
index 72643770..00000000
--- a/pseo_website/_site/archives/index.html
+++ /dev/null
@@ -1,1810 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Archives | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Archives
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Archives
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
- 09
-
- Nov
-
- The Top 5 AI Animation Software Tools Choose the Perfect Tool for Your Animation Needs
-
-
-
-
-
-
-
-
- -
-
- 09
-
- Nov
-
- How to Use Stable Diffusion in Google Colab for Free A Step-by-Step Guide
-
-
-
-
-
-
-
-
- -
-
- 09
-
- Nov
-
- Grok Elon Musk's Revolutionary AI Chatbot Redefining the Industry
-
-
-
-
-
-
-
-
- -
-
- 09
-
- Nov
-
- State of AI Report 2022 Unveiling Innovations and Future Trends in Artificial Intelligence
-
-
-
-
-
-
-
-
- -
-
- 08
-
- Nov
-
- Exciting AI Advancements- Musk's Chatbot to Apple's M3 Chips
-
-
-
-
-
-
-
-
- -
-
- 08
-
- Nov
-
- Introducing GPT-4 Turbo- The Future of AI Assistants
-
-
-
-
-
-
-
-
- -
-
- 08
-
- Nov
-
- The Impact of Artificial Intelligence on Microsoft's News Website
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/assets/css/jekyll-theme-chirpy.css b/pseo_website/_site/assets/css/jekyll-theme-chirpy.css
deleted file mode 100644
index 2cb94ea3..00000000
--- a/pseo_website/_site/assets/css/jekyll-theme-chirpy.css
+++ /dev/null
@@ -1 +0,0 @@
-#search-results a,h5,h4,h3,h2,h1{color:var(--heading-color);font-weight:400;font-family:Lato,"Microsoft Yahei",sans-serif}main h5,main h4,main h3,main h2{margin-top:2.5rem;margin-bottom:1.25rem}main h5:focus,main h4:focus,main h3:focus,main h2:focus{outline:none}h5 .anchor,h4 .anchor,h3 .anchor,h2 .anchor{font-size:80%}@media(hover: hover){h5 .anchor,h4 .anchor,h3 .anchor,h2 .anchor{visibility:hidden;opacity:0;transition:opacity .25s ease-in,visibility 0s ease-in .25s}h5:hover .anchor,h4:hover .anchor,h3:hover .anchor,h2:hover .anchor{visibility:visible;opacity:1;transition:opacity .25s ease-in,visibility 0s ease-in 0s}}.post-tags .post-tag:hover,.tag:hover{background:var(--tag-hover);transition:background .35s ease-in-out}.table-wrapper>table tbody tr td,.table-wrapper>table thead th{padding:.4rem 1rem;font-size:95%;white-space:nowrap}#page-category a:hover,#page-tag a:hover,.post-tags .post-tag:hover,.post-tail-wrapper .license-wrapper>a:hover,#search-results a:hover,#topbar #breadcrumb a:hover,.content a:not(.img-link):hover,.post-meta a:not([class]):hover,#access-lastmod a:hover,footer a:hover{color:#d2603a !important;border-bottom:1px solid #d2603a;text-decoration:none}#search-results a,#search-hints .post-tag,a{color:var(--link-color)}.post-tail-wrapper .post-meta a:not(:hover),.content a:not(.img-link){border-bottom:1px solid var(--link-underline-color)}#sidebar .sidebar-bottom a,#sidebar .site-title a,#sidebar .profile-wrapper{transition:all .3s ease-in-out}#sidebar .sidebar-bottom .icon-border,.content a.popup,i.far,i.fas,.code-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#page-category ul>li>a,#page-tag ul>li>a,.post-tags .post-tag:hover,#search-results a,main .categories a:not(:hover),main #tags a:not(:hover),main #archives a:not(:hover),#access-lastmod a{border-bottom:none}.post-tail-wrapper .share-wrapper .share-icons button,#search-cancel,.code-header button{cursor:pointer}#related-posts time,#post-list .card .card-body .post-meta em,.post-meta em{font-style:normal}.categories.card,.categories .list-group,.embed-video,.post-preview::before,.post-preview,.preview-img img,.preview-img,blockquote[class^=prompt-],.code-header button,div[class^=language-],.highlight{border-radius:.625rem}.content a.popup+em{display:block;text-align:center;font-style:normal;font-size:80%;padding:0;color:#6d6c6c}#sidebar .sidebar-bottom .mode-toggle,#sidebar a{color:var(--sidebar-muted-color);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#related-posts .card h4,#post-list .card .card-body .card-text.content p,#post-list .card .card-body .card-title{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical}.post-tail-wrapper .license-wrapper>a,h1+.post-meta em,h1+.post-meta time,footer a{color:var(--text-muted-hightlight-color);font-weight:600}.post-tail-wrapper .license-wrapper span:last-child,.post-tail-wrapper,.post-meta{font-size:.85rem}#related-posts time,footer{font-size:.8rem}sup:target,.footnotes>ol>li:target{background-color:var(--footnote-target-bg);width:-moz-fit-content;width:-webkit-fit-content;width:fit-content;transition:background-color 1.75s ease-in-out}@media(prefers-color-scheme: light){html:not([data-mode]),html[data-mode=light]{--language-border-color: #ececec;--highlight-bg-color: #f6f8fa;--highlighter-rouge-color: #3f596f;--highlight-lineno-color: #9e9e9e;--inline-code-bg: #f6f6f7;--code-color: #3a3a3a;--code-header-text-color: #a3a3a3;--code-header-muted-color: #e5e5e5;--code-header-icon-color: #c9c8c8;--clipboard-checked-color: #43c743}html:not([data-mode]) [class^=prompt-],html[data-mode=light] [class^=prompt-]{--inline-code-bg: #fbfafa}html:not([data-mode]) .highlight table td,html[data-mode=light] .highlight table td{padding:5px}html:not([data-mode]) .highlight table pre,html[data-mode=light] .highlight table pre{margin:0}html:not([data-mode]) .highlight,html:not([data-mode]) .highlight .w,html[data-mode=light] .highlight,html[data-mode=light] .highlight .w{color:#24292f;background-color:#f6f8fa}html:not([data-mode]) .highlight .k,html:not([data-mode]) .highlight .kd,html:not([data-mode]) .highlight .kn,html:not([data-mode]) .highlight .kp,html:not([data-mode]) .highlight .kr,html:not([data-mode]) .highlight .kt,html:not([data-mode]) .highlight .kv,html[data-mode=light] .highlight .k,html[data-mode=light] .highlight .kd,html[data-mode=light] .highlight .kn,html[data-mode=light] .highlight .kp,html[data-mode=light] .highlight .kr,html[data-mode=light] .highlight .kt,html[data-mode=light] .highlight .kv{color:#cf222e}html:not([data-mode]) .highlight .gr,html[data-mode=light] .highlight .gr{color:#f6f8fa}html:not([data-mode]) .highlight .gd,html[data-mode=light] .highlight .gd{color:#82071e;background-color:#ffebe9}html:not([data-mode]) .highlight .nb,html[data-mode=light] .highlight .nb{color:#953800}html:not([data-mode]) .highlight .nc,html[data-mode=light] .highlight .nc{color:#953800}html:not([data-mode]) .highlight .no,html[data-mode=light] .highlight .no{color:#953800}html:not([data-mode]) .highlight .nn,html[data-mode=light] .highlight .nn{color:#953800}html:not([data-mode]) .highlight .sr,html[data-mode=light] .highlight .sr{color:#116329}html:not([data-mode]) .highlight .na,html[data-mode=light] .highlight .na{color:#116329}html:not([data-mode]) .highlight .nt,html[data-mode=light] .highlight .nt{color:#116329}html:not([data-mode]) .highlight .gi,html[data-mode=light] .highlight .gi{color:#116329;background-color:#dafbe1}html:not([data-mode]) .highlight .kc,html[data-mode=light] .highlight .kc{color:#0550ae}html:not([data-mode]) .highlight .l,html:not([data-mode]) .highlight .ld,html:not([data-mode]) .highlight .m,html:not([data-mode]) .highlight .mb,html:not([data-mode]) .highlight .mf,html:not([data-mode]) .highlight .mh,html:not([data-mode]) .highlight .mi,html:not([data-mode]) .highlight .il,html:not([data-mode]) .highlight .mo,html:not([data-mode]) .highlight .mx,html[data-mode=light] .highlight .l,html[data-mode=light] .highlight .ld,html[data-mode=light] .highlight .m,html[data-mode=light] .highlight .mb,html[data-mode=light] .highlight .mf,html[data-mode=light] .highlight .mh,html[data-mode=light] .highlight .mi,html[data-mode=light] .highlight .il,html[data-mode=light] .highlight .mo,html[data-mode=light] .highlight .mx{color:#0550ae}html:not([data-mode]) .highlight .sb,html[data-mode=light] .highlight .sb{color:#0550ae}html:not([data-mode]) .highlight .bp,html[data-mode=light] .highlight .bp{color:#0550ae}html:not([data-mode]) .highlight .ne,html[data-mode=light] .highlight .ne{color:#0550ae}html:not([data-mode]) .highlight .nl,html[data-mode=light] .highlight .nl{color:#0550ae}html:not([data-mode]) .highlight .py,html[data-mode=light] .highlight .py{color:#0550ae}html:not([data-mode]) .highlight .nv,html:not([data-mode]) .highlight .vc,html:not([data-mode]) .highlight .vg,html:not([data-mode]) .highlight .vi,html:not([data-mode]) .highlight .vm,html[data-mode=light] .highlight .nv,html[data-mode=light] .highlight .vc,html[data-mode=light] .highlight .vg,html[data-mode=light] .highlight .vi,html[data-mode=light] .highlight .vm{color:#0550ae}html:not([data-mode]) .highlight .o,html:not([data-mode]) .highlight .ow,html[data-mode=light] .highlight .o,html[data-mode=light] .highlight .ow{color:#0550ae}html:not([data-mode]) .highlight .gh,html[data-mode=light] .highlight .gh{color:#0550ae;font-weight:bold}html:not([data-mode]) .highlight .gu,html[data-mode=light] .highlight .gu{color:#0550ae;font-weight:bold}html:not([data-mode]) .highlight .s,html:not([data-mode]) .highlight .sa,html:not([data-mode]) .highlight .sc,html:not([data-mode]) .highlight .dl,html:not([data-mode]) .highlight .sd,html:not([data-mode]) .highlight .s2,html:not([data-mode]) .highlight .se,html:not([data-mode]) .highlight .sh,html:not([data-mode]) .highlight .sx,html:not([data-mode]) .highlight .s1,html:not([data-mode]) .highlight .ss,html[data-mode=light] .highlight .s,html[data-mode=light] .highlight .sa,html[data-mode=light] .highlight .sc,html[data-mode=light] .highlight .dl,html[data-mode=light] .highlight .sd,html[data-mode=light] .highlight .s2,html[data-mode=light] .highlight .se,html[data-mode=light] .highlight .sh,html[data-mode=light] .highlight .sx,html[data-mode=light] .highlight .s1,html[data-mode=light] .highlight .ss{color:#0a3069}html:not([data-mode]) .highlight .nd,html[data-mode=light] .highlight .nd{color:#8250df}html:not([data-mode]) .highlight .nf,html:not([data-mode]) .highlight .fm,html[data-mode=light] .highlight .nf,html[data-mode=light] .highlight .fm{color:#8250df}html:not([data-mode]) .highlight .err,html[data-mode=light] .highlight .err{color:#f6f8fa;background-color:#82071e}html:not([data-mode]) .highlight .c,html:not([data-mode]) .highlight .ch,html:not([data-mode]) .highlight .cd,html:not([data-mode]) .highlight .cm,html:not([data-mode]) .highlight .cp,html:not([data-mode]) .highlight .cpf,html:not([data-mode]) .highlight .c1,html:not([data-mode]) .highlight .cs,html[data-mode=light] .highlight .c,html[data-mode=light] .highlight .ch,html[data-mode=light] .highlight .cd,html[data-mode=light] .highlight .cm,html[data-mode=light] .highlight .cp,html[data-mode=light] .highlight .cpf,html[data-mode=light] .highlight .c1,html[data-mode=light] .highlight .cs{color:#68717a}html:not([data-mode]) .highlight .gl,html[data-mode=light] .highlight .gl{color:#68717a}html:not([data-mode]) .highlight .gt,html[data-mode=light] .highlight .gt{color:#68717a}html:not([data-mode]) .highlight .ni,html[data-mode=light] .highlight .ni{color:#24292f}html:not([data-mode]) .highlight .si,html[data-mode=light] .highlight .si{color:#24292f}html:not([data-mode]) .highlight .ge,html[data-mode=light] .highlight .ge{color:#24292f;font-style:italic}html:not([data-mode]) .highlight .gs,html[data-mode=light] .highlight .gs{color:#24292f;font-weight:bold}html[data-mode=dark]{--language-border-color: #2d2d2d;--highlight-bg-color: #151515;--highlighter-rouge-color: #c9def1;--highlight-lineno-color: #808080;--inline-code-bg: #323238;--code-color: #b0b0b0;--code-header-text-color: #6a6a6a;--code-header-muted-color: #353535;--code-header-icon-color: #565656;--clipboard-checked-color: #2bcc2b;--filepath-text-color: #cacaca}html[data-mode=dark] .highlight .gp{color:#87939d}html[data-mode=dark] .highlight table td{padding:5px}html[data-mode=dark] .highlight table pre{margin:0}html[data-mode=dark] .highlight,html[data-mode=dark] .highlight .w{color:#d0d0d0;background-color:#151515}html[data-mode=dark] .highlight .err{color:#151515;background-color:#ac4142}html[data-mode=dark] .highlight .c,html[data-mode=dark] .highlight .ch,html[data-mode=dark] .highlight .cd,html[data-mode=dark] .highlight .cm,html[data-mode=dark] .highlight .cpf,html[data-mode=dark] .highlight .c1,html[data-mode=dark] .highlight .cs{color:#848484}html[data-mode=dark] .highlight .cp{color:#f4bf75}html[data-mode=dark] .highlight .nt{color:#f4bf75}html[data-mode=dark] .highlight .o,html[data-mode=dark] .highlight .ow{color:#d0d0d0}html[data-mode=dark] .highlight .p,html[data-mode=dark] .highlight .pi{color:#d0d0d0}html[data-mode=dark] .highlight .gi{color:#90a959}html[data-mode=dark] .highlight .gd{color:#f08a8b;background-color:#320000}html[data-mode=dark] .highlight .gh{color:#6a9fb5;background-color:#151515;font-weight:bold}html[data-mode=dark] .highlight .k,html[data-mode=dark] .highlight .kn,html[data-mode=dark] .highlight .kp,html[data-mode=dark] .highlight .kr,html[data-mode=dark] .highlight .kv{color:#aa759f}html[data-mode=dark] .highlight .kc{color:#d28445}html[data-mode=dark] .highlight .kt{color:#d28445}html[data-mode=dark] .highlight .kd{color:#d28445}html[data-mode=dark] .highlight .s,html[data-mode=dark] .highlight .sb,html[data-mode=dark] .highlight .sc,html[data-mode=dark] .highlight .dl,html[data-mode=dark] .highlight .sd,html[data-mode=dark] .highlight .s2,html[data-mode=dark] .highlight .sh,html[data-mode=dark] .highlight .sx,html[data-mode=dark] .highlight .s1{color:#90a959}html[data-mode=dark] .highlight .sa{color:#aa759f}html[data-mode=dark] .highlight .sr{color:#75b5aa}html[data-mode=dark] .highlight .si{color:#b76d45}html[data-mode=dark] .highlight .se{color:#b76d45}html[data-mode=dark] .highlight .nn{color:#f4bf75}html[data-mode=dark] .highlight .nc{color:#f4bf75}html[data-mode=dark] .highlight .no{color:#f4bf75}html[data-mode=dark] .highlight .na{color:#6a9fb5}html[data-mode=dark] .highlight .m,html[data-mode=dark] .highlight .mb,html[data-mode=dark] .highlight .mf,html[data-mode=dark] .highlight .mh,html[data-mode=dark] .highlight .mi,html[data-mode=dark] .highlight .il,html[data-mode=dark] .highlight .mo,html[data-mode=dark] .highlight .mx{color:#90a959}html[data-mode=dark] .highlight .ss{color:#90a959}}@media(prefers-color-scheme: dark){html:not([data-mode]),html[data-mode=dark]{--language-border-color: #2d2d2d;--highlight-bg-color: #151515;--highlighter-rouge-color: #c9def1;--highlight-lineno-color: #808080;--inline-code-bg: #323238;--code-color: #b0b0b0;--code-header-text-color: #6a6a6a;--code-header-muted-color: #353535;--code-header-icon-color: #565656;--clipboard-checked-color: #2bcc2b;--filepath-text-color: #cacaca}html:not([data-mode]) .highlight .gp,html[data-mode=dark] .highlight .gp{color:#87939d}html:not([data-mode]) .highlight table td,html[data-mode=dark] .highlight table td{padding:5px}html:not([data-mode]) .highlight table pre,html[data-mode=dark] .highlight table pre{margin:0}html:not([data-mode]) .highlight,html:not([data-mode]) .highlight .w,html[data-mode=dark] .highlight,html[data-mode=dark] .highlight .w{color:#d0d0d0;background-color:#151515}html:not([data-mode]) .highlight .err,html[data-mode=dark] .highlight .err{color:#151515;background-color:#ac4142}html:not([data-mode]) .highlight .c,html:not([data-mode]) .highlight .ch,html:not([data-mode]) .highlight .cd,html:not([data-mode]) .highlight .cm,html:not([data-mode]) .highlight .cpf,html:not([data-mode]) .highlight .c1,html:not([data-mode]) .highlight .cs,html[data-mode=dark] .highlight .c,html[data-mode=dark] .highlight .ch,html[data-mode=dark] .highlight .cd,html[data-mode=dark] .highlight .cm,html[data-mode=dark] .highlight .cpf,html[data-mode=dark] .highlight .c1,html[data-mode=dark] .highlight .cs{color:#848484}html:not([data-mode]) .highlight .cp,html[data-mode=dark] .highlight .cp{color:#f4bf75}html:not([data-mode]) .highlight .nt,html[data-mode=dark] .highlight .nt{color:#f4bf75}html:not([data-mode]) .highlight .o,html:not([data-mode]) .highlight .ow,html[data-mode=dark] .highlight .o,html[data-mode=dark] .highlight .ow{color:#d0d0d0}html:not([data-mode]) .highlight .p,html:not([data-mode]) .highlight .pi,html[data-mode=dark] .highlight .p,html[data-mode=dark] .highlight .pi{color:#d0d0d0}html:not([data-mode]) .highlight .gi,html[data-mode=dark] .highlight .gi{color:#90a959}html:not([data-mode]) .highlight .gd,html[data-mode=dark] .highlight .gd{color:#f08a8b;background-color:#320000}html:not([data-mode]) .highlight .gh,html[data-mode=dark] .highlight .gh{color:#6a9fb5;background-color:#151515;font-weight:bold}html:not([data-mode]) .highlight .k,html:not([data-mode]) .highlight .kn,html:not([data-mode]) .highlight .kp,html:not([data-mode]) .highlight .kr,html:not([data-mode]) .highlight .kv,html[data-mode=dark] .highlight .k,html[data-mode=dark] .highlight .kn,html[data-mode=dark] .highlight .kp,html[data-mode=dark] .highlight .kr,html[data-mode=dark] .highlight .kv{color:#aa759f}html:not([data-mode]) .highlight .kc,html[data-mode=dark] .highlight .kc{color:#d28445}html:not([data-mode]) .highlight .kt,html[data-mode=dark] .highlight .kt{color:#d28445}html:not([data-mode]) .highlight .kd,html[data-mode=dark] .highlight .kd{color:#d28445}html:not([data-mode]) .highlight .s,html:not([data-mode]) .highlight .sb,html:not([data-mode]) .highlight .sc,html:not([data-mode]) .highlight .dl,html:not([data-mode]) .highlight .sd,html:not([data-mode]) .highlight .s2,html:not([data-mode]) .highlight .sh,html:not([data-mode]) .highlight .sx,html:not([data-mode]) .highlight .s1,html[data-mode=dark] .highlight .s,html[data-mode=dark] .highlight .sb,html[data-mode=dark] .highlight .sc,html[data-mode=dark] .highlight .dl,html[data-mode=dark] .highlight .sd,html[data-mode=dark] .highlight .s2,html[data-mode=dark] .highlight .sh,html[data-mode=dark] .highlight .sx,html[data-mode=dark] .highlight .s1{color:#90a959}html:not([data-mode]) .highlight .sa,html[data-mode=dark] .highlight .sa{color:#aa759f}html:not([data-mode]) .highlight .sr,html[data-mode=dark] .highlight .sr{color:#75b5aa}html:not([data-mode]) .highlight .si,html[data-mode=dark] .highlight .si{color:#b76d45}html:not([data-mode]) .highlight .se,html[data-mode=dark] .highlight .se{color:#b76d45}html:not([data-mode]) .highlight .nn,html[data-mode=dark] .highlight .nn{color:#f4bf75}html:not([data-mode]) .highlight .nc,html[data-mode=dark] .highlight .nc{color:#f4bf75}html:not([data-mode]) .highlight .no,html[data-mode=dark] .highlight .no{color:#f4bf75}html:not([data-mode]) .highlight .na,html[data-mode=dark] .highlight .na{color:#6a9fb5}html:not([data-mode]) .highlight .m,html:not([data-mode]) .highlight .mb,html:not([data-mode]) .highlight .mf,html:not([data-mode]) .highlight .mh,html:not([data-mode]) .highlight .mi,html:not([data-mode]) .highlight .il,html:not([data-mode]) .highlight .mo,html:not([data-mode]) .highlight .mx,html[data-mode=dark] .highlight .m,html[data-mode=dark] .highlight .mb,html[data-mode=dark] .highlight .mf,html[data-mode=dark] .highlight .mh,html[data-mode=dark] .highlight .mi,html[data-mode=dark] .highlight .il,html[data-mode=dark] .highlight .mo,html[data-mode=dark] .highlight .mx{color:#90a959}html:not([data-mode]) .highlight .ss,html[data-mode=dark] .highlight .ss{color:#90a959}html[data-mode=light]{--language-border-color: #ececec;--highlight-bg-color: #f6f8fa;--highlighter-rouge-color: #3f596f;--highlight-lineno-color: #9e9e9e;--inline-code-bg: #f6f6f7;--code-color: #3a3a3a;--code-header-text-color: #a3a3a3;--code-header-muted-color: #e5e5e5;--code-header-icon-color: #c9c8c8;--clipboard-checked-color: #43c743}html[data-mode=light] [class^=prompt-]{--inline-code-bg: #fbfafa}html[data-mode=light] .highlight table td{padding:5px}html[data-mode=light] .highlight table pre{margin:0}html[data-mode=light] .highlight,html[data-mode=light] .highlight .w{color:#24292f;background-color:#f6f8fa}html[data-mode=light] .highlight .k,html[data-mode=light] .highlight .kd,html[data-mode=light] .highlight .kn,html[data-mode=light] .highlight .kp,html[data-mode=light] .highlight .kr,html[data-mode=light] .highlight .kt,html[data-mode=light] .highlight .kv{color:#cf222e}html[data-mode=light] .highlight .gr{color:#f6f8fa}html[data-mode=light] .highlight .gd{color:#82071e;background-color:#ffebe9}html[data-mode=light] .highlight .nb{color:#953800}html[data-mode=light] .highlight .nc{color:#953800}html[data-mode=light] .highlight .no{color:#953800}html[data-mode=light] .highlight .nn{color:#953800}html[data-mode=light] .highlight .sr{color:#116329}html[data-mode=light] .highlight .na{color:#116329}html[data-mode=light] .highlight .nt{color:#116329}html[data-mode=light] .highlight .gi{color:#116329;background-color:#dafbe1}html[data-mode=light] .highlight .kc{color:#0550ae}html[data-mode=light] .highlight .l,html[data-mode=light] .highlight .ld,html[data-mode=light] .highlight .m,html[data-mode=light] .highlight .mb,html[data-mode=light] .highlight .mf,html[data-mode=light] .highlight .mh,html[data-mode=light] .highlight .mi,html[data-mode=light] .highlight .il,html[data-mode=light] .highlight .mo,html[data-mode=light] .highlight .mx{color:#0550ae}html[data-mode=light] .highlight .sb{color:#0550ae}html[data-mode=light] .highlight .bp{color:#0550ae}html[data-mode=light] .highlight .ne{color:#0550ae}html[data-mode=light] .highlight .nl{color:#0550ae}html[data-mode=light] .highlight .py{color:#0550ae}html[data-mode=light] .highlight .nv,html[data-mode=light] .highlight .vc,html[data-mode=light] .highlight .vg,html[data-mode=light] .highlight .vi,html[data-mode=light] .highlight .vm{color:#0550ae}html[data-mode=light] .highlight .o,html[data-mode=light] .highlight .ow{color:#0550ae}html[data-mode=light] .highlight .gh{color:#0550ae;font-weight:bold}html[data-mode=light] .highlight .gu{color:#0550ae;font-weight:bold}html[data-mode=light] .highlight .s,html[data-mode=light] .highlight .sa,html[data-mode=light] .highlight .sc,html[data-mode=light] .highlight .dl,html[data-mode=light] .highlight .sd,html[data-mode=light] .highlight .s2,html[data-mode=light] .highlight .se,html[data-mode=light] .highlight .sh,html[data-mode=light] .highlight .sx,html[data-mode=light] .highlight .s1,html[data-mode=light] .highlight .ss{color:#0a3069}html[data-mode=light] .highlight .nd{color:#8250df}html[data-mode=light] .highlight .nf,html[data-mode=light] .highlight .fm{color:#8250df}html[data-mode=light] .highlight .err{color:#f6f8fa;background-color:#82071e}html[data-mode=light] .highlight .c,html[data-mode=light] .highlight .ch,html[data-mode=light] .highlight .cd,html[data-mode=light] .highlight .cm,html[data-mode=light] .highlight .cp,html[data-mode=light] .highlight .cpf,html[data-mode=light] .highlight .c1,html[data-mode=light] .highlight .cs{color:#68717a}html[data-mode=light] .highlight .gl{color:#68717a}html[data-mode=light] .highlight .gt{color:#68717a}html[data-mode=light] .highlight .ni{color:#24292f}html[data-mode=light] .highlight .si{color:#24292f}html[data-mode=light] .highlight .ge{color:#24292f;font-style:italic}html[data-mode=light] .highlight .gs{color:#24292f;font-weight:bold}}div[class^=language-],figure.highlight,.highlight{background-color:var(--highlight-bg-color)}td.rouge-code{padding-left:1rem;padding-right:1.5rem}.highlighter-rouge{color:var(--highlighter-rouge-color);margin-top:.5rem;margin-bottom:1.2em}.highlight{overflow:auto;padding-bottom:.75rem}.highlight pre{margin-bottom:0;font-size:.85rem;line-height:1.4rem;word-wrap:normal}.highlight table td:first-child{display:inline-block;margin-left:1rem;margin-right:.75rem}.highlight table td:last-child{padding-right:2rem !important}.highlight table td pre{overflow:visible;word-break:normal}.highlight .lineno{text-align:right;color:var(--highlight-lineno-color);-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none}code{-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;color:var(--code-color)}code.highlighter-rouge{font-size:.85rem;padding:3px 5px;word-break:break-word;border-radius:4px;background-color:var(--inline-code-bg)}code.filepath{background-color:inherit;color:var(--filepath-text-color);font-weight:600;padding:0}a>code.highlighter-rouge{padding-bottom:0;color:inherit}a:hover>code.highlighter-rouge{border-bottom:none}blockquote code{color:inherit}td.rouge-code a{color:inherit !important;border-bottom:none !important;pointer-events:none}div[class^=language-]{box-shadow:var(--language-border-color) 0 0 0 1px}.content>div[class^=language-]{margin-left:-1rem;margin-right:-1rem;border-radius:0}div[class^=language-] .highlight{border-top-left-radius:0;border-top-right-radius:0}div.nolineno td:first-child,div.language-plaintext td:first-child,div.language-console td:first-child,div.language-terminal td:first-child{padding:0 !important;margin-right:0}div.nolineno td:first-child .lineno,div.language-plaintext td:first-child .lineno,div.language-console td:first-child .lineno,div.language-terminal td:first-child .lineno{display:none}.code-header{display:flex;justify-content:space-between;align-items:center;height:2.25rem;margin-left:.75rem;margin-right:.25rem}.code-header span{line-height:2.25rem}.code-header span i{font-size:1rem;width:1.75rem;color:var(--code-header-icon-color)}.code-header span i.small{font-size:70%}[file] .code-header span>i{position:relative;top:1px}.code-header span::after{content:attr(data-label-text);font-size:.85rem;font-weight:600;color:var(--code-header-text-color)}.code-header button{border:1px solid rgba(0,0,0,0);height:2.25rem;width:2.25rem;padding:0;background-color:inherit}.code-header button i{color:var(--code-header-icon-color)}.code-header button[timeout]:hover{border-color:var(--clipboard-checked-color)}.code-header button[timeout] i{color:var(--clipboard-checked-color)}.code-header button:focus{outline:none}.code-header button:not([timeout]):hover{background-color:rgba(128,128,128,.37)}.code-header button:not([timeout]):hover i{color:#fff}@media all and (min-width: 576px){.content>div[class^=language-]{margin-left:0;margin-right:0;border-radius:.625rem}div[class^=language-] .code-header{margin-left:0;margin-right:0}div[class^=language-] .code-header::before{content:"";display:inline-block;margin-left:1rem;width:.75rem;height:.75rem;border-radius:50%;background-color:var(--code-header-muted-color);box-shadow:1.25rem 0 0 var(--code-header-muted-color),2.5rem 0 0 var(--code-header-muted-color)}div[class^=language-] .code-header span{margin-left:-0.875rem}}html{font-size:16px}@media(prefers-color-scheme: light){html:not([data-mode]),html[data-mode=light]{--main-bg: white;--mask-bg: #c1c3c5;--main-border-color: #f3f3f3;--text-color: #34343c;--text-muted-color: #757575;--text-muted-hightlight-color: inherit;--heading-color: #2a2a2a;--label-color: #585858;--blockquote-border-color: #eeeeee;--blockquote-text-color: #757575;--link-color: #0056b2;--link-underline-color: #dee2e6;--button-bg: #ffffff;--btn-border-color: #e9ecef;--btn-backtotop-color: #686868;--btn-backtotop-border-color: #f1f1f1;--btn-box-shadow: #eaeaea;--checkbox-color: #c5c5c5;--checkbox-checked-color: #07a8f7;--img-bg: radial-gradient( circle, rgb(255, 255, 255) 0%, rgb(239, 239, 239) 100% );--shimmer-bg: linear-gradient( 90deg, rgba(250, 250, 250, 0) 0%, rgba(232, 230, 230, 1) 50%, rgba(250, 250, 250, 0) 100% );--site-title-color: rgb(113, 113, 113);--site-subtitle-color: #717171;--sidebar-bg: #f6f8fa;--sidebar-border-color: #efefef;--sidebar-muted-color: #545454;--sidebar-active-color: #1d1d1d;--sidebar-hover-bg: rgb(223, 233, 241, 0.64);--sidebar-btn-bg: white;--sidebar-btn-color: #8e8e8e;--avatar-border-color: white;--topbar-bg: rgb(255, 255, 255, 0.7);--topbar-text-color: rgb(78, 78, 78);--search-border-color: rgb(240, 240, 240);--search-icon-color: #c2c6cc;--input-focus-border-color: #b8b8b8;--post-list-text-color: dimgray;--btn-patinator-text-color: #555555;--btn-paginator-hover-color: var(--sidebar-bg);--toc-highlight: #0550ae;--btn-share-hover-color: var(--link-color);--card-bg: white;--card-hovor-bg: #e2e2e2;--card-shadow: rgb(104, 104, 104, 0.05) 0 2px 6px 0, rgba(211, 209, 209, 0.15) 0 0 0 1px;--footnote-target-bg: lightcyan;--tb-odd-bg: #fbfcfd;--tb-border-color: #eaeaea;--dash-color: silver;--kbd-wrap-color: #bdbdbd;--kbd-text-color: var(--text-color);--kbd-bg-color: white;--prompt-text-color: rgb(46, 46, 46, 0.77);--prompt-tip-bg: rgb(123, 247, 144, 0.2);--prompt-tip-icon-color: #03b303;--prompt-info-bg: #e1f5fe;--prompt-info-icon-color: #0070cb;--prompt-warning-bg: rgb(255, 243, 205);--prompt-warning-icon-color: #ef9c03;--prompt-danger-bg: rgb(248, 215, 218, 0.56);--prompt-danger-icon-color: #df3c30;--tag-border: #dee2e6;--tag-shadow: var(--btn-border-color);--tag-hover: rgb(222, 226, 230);--search-tag-bg: #f8f9fa;--categories-border: rgba(0, 0, 0, 0.125);--categories-hover-bg: var(--btn-border-color);--categories-icon-hover-color: darkslategray;--timeline-color: rgba(0, 0, 0, 0.075);--timeline-node-bg: #c2c6cc;--timeline-year-dot-color: #ffffff}html:not([data-mode]) [class^=prompt-],html[data-mode=light] [class^=prompt-]{--link-underline-color: rgb(219, 216, 216)}html:not([data-mode]) .dark,html[data-mode=light] .dark{display:none}html[data-mode=dark]{--main-bg: rgb(27, 27, 30);--mask-bg: rgb(68, 69, 70);--main-border-color: rgb(44, 45, 45);--text-color: rgb(175, 176, 177);--text-muted-color: #868686;--text-muted-hightlight-color: #aeaeae;--heading-color: #cccccc;--label-color: #a7a7a7;--blockquote-border-color: rgb(66, 66, 66);--blockquote-text-color: #868686;--link-color: rgb(138, 180, 248);--link-underline-color: rgb(82, 108, 150);--button-bg: #1e1e1e;--btn-border-color: #2e2f31;--btn-backtotop-color: var(--text-color);--btn-backtotop-border-color: #212122;--btn-box-shadow: var(--main-bg);--card-header-bg: #292929;--checkbox-color: rgb(118, 120, 121);--checkbox-checked-color: var(--link-color);--img-bg: radial-gradient(circle, rgb(22, 22, 24) 0%, rgb(32, 32, 32) 100%);--shimmer-bg: linear-gradient( 90deg, rgba(255, 255, 255, 0) 0%, rgba(58, 55, 55, 0.4) 50%, rgba(255, 255, 255, 0) 100% );--site-title-color: #717070;--site-subtitle-color: #868686;--sidebar-bg: #1e1e1e;--sidebar-border-color: #292929;--sidebar-muted-color: #868686;--sidebar-active-color: rgb(255, 255, 255, 0.95);--sidebar-hover-bg: #262626;--sidebar-btn-bg: #232328;--sidebar-btn-color: #787878;--avatar-border-color: rgb(206, 206, 206, 0.9);--topbar-bg: rgb(27, 27, 30, 0.64);--topbar-text-color: var(--text-color);--search-border-color: rgb(55, 55, 55);--search-icon-color: rgb(100, 102, 105);--input-focus-border-color: rgb(112, 114, 115);--post-list-text-color: rgb(175, 176, 177);--btn-patinator-text-color: var(--text-color);--btn-paginator-hover-color: #2e2e2e;--toc-highlight: rgb(116, 178, 243);--tag-hover: rgb(43, 56, 62);--tb-odd-bg: #252526;--tb-even-bg: rgb(31, 31, 34);--tb-border-color: var(--tb-odd-bg);--footnote-target-bg: rgb(63, 81, 181);--btn-share-color: #6c757d;--btn-share-hover-color: #bfc1ca;--card-bg: #1e1e1e;--card-hovor-bg: #464d51;--card-shadow: rgb(21, 21, 21, 0.72) 0 6px 18px 0, rgb(137, 135, 135, 0.24) 0 0 0 1px;--kbd-wrap-color: #6a6a6a;--kbd-text-color: #d3d3d3;--kbd-bg-color: #242424;--prompt-text-color: rgb(216, 212, 212, 0.75);--prompt-tip-bg: rgb(22, 60, 36, 0.64);--prompt-tip-icon-color: rgb(15, 164, 15, 0.81);--prompt-info-bg: rgb(7, 59, 104, 0.8);--prompt-info-icon-color: #0075d1;--prompt-warning-bg: rgb(90, 69, 3, 0.88);--prompt-warning-icon-color: rgb(255, 165, 0, 0.8);--prompt-danger-bg: rgb(86, 28, 8, 0.8);--prompt-danger-icon-color: #cd0202;--tag-border: rgb(59, 79, 88);--tag-shadow: rgb(32, 33, 33);--dash-color: rgb(63, 65, 68);--search-tag-bg: #292828;--categories-border: rgb(64, 66, 69, 0.5);--categories-hover-bg: rgb(73, 75, 76);--categories-icon-hover-color: white;--timeline-node-bg: rgb(150, 152, 156);--timeline-color: rgb(63, 65, 68);--timeline-year-dot-color: var(--timeline-color);color-scheme:dark}html[data-mode=dark] .light{display:none}html[data-mode=dark] hr{border-color:var(--main-border-color)}html[data-mode=dark] .categories.card,html[data-mode=dark] .list-group-item{background-color:var(--card-bg)}html[data-mode=dark] .categories .card-header{background-color:var(--card-header-bg)}html[data-mode=dark] .categories .list-group-item{border-left:none;border-right:none;padding-left:2rem;border-color:var(--categories-border)}html[data-mode=dark] .categories .list-group-item:last-child{border-bottom-color:var(--card-bg)}html[data-mode=dark] #archives li:nth-child(odd){background-image:linear-gradient(to left, rgb(26, 26, 30), rgb(39, 39, 45), rgb(39, 39, 45), rgb(39, 39, 45), rgb(26, 26, 30))}html[data-mode=dark] #disqus_thread{color-scheme:none}}@media(prefers-color-scheme: dark){html:not([data-mode]),html[data-mode=dark]{--main-bg: rgb(27, 27, 30);--mask-bg: rgb(68, 69, 70);--main-border-color: rgb(44, 45, 45);--text-color: rgb(175, 176, 177);--text-muted-color: #868686;--text-muted-hightlight-color: #aeaeae;--heading-color: #cccccc;--label-color: #a7a7a7;--blockquote-border-color: rgb(66, 66, 66);--blockquote-text-color: #868686;--link-color: rgb(138, 180, 248);--link-underline-color: rgb(82, 108, 150);--button-bg: #1e1e1e;--btn-border-color: #2e2f31;--btn-backtotop-color: var(--text-color);--btn-backtotop-border-color: #212122;--btn-box-shadow: var(--main-bg);--card-header-bg: #292929;--checkbox-color: rgb(118, 120, 121);--checkbox-checked-color: var(--link-color);--img-bg: radial-gradient(circle, rgb(22, 22, 24) 0%, rgb(32, 32, 32) 100%);--shimmer-bg: linear-gradient( 90deg, rgba(255, 255, 255, 0) 0%, rgba(58, 55, 55, 0.4) 50%, rgba(255, 255, 255, 0) 100% );--site-title-color: #717070;--site-subtitle-color: #868686;--sidebar-bg: #1e1e1e;--sidebar-border-color: #292929;--sidebar-muted-color: #868686;--sidebar-active-color: rgb(255, 255, 255, 0.95);--sidebar-hover-bg: #262626;--sidebar-btn-bg: #232328;--sidebar-btn-color: #787878;--avatar-border-color: rgb(206, 206, 206, 0.9);--topbar-bg: rgb(27, 27, 30, 0.64);--topbar-text-color: var(--text-color);--search-border-color: rgb(55, 55, 55);--search-icon-color: rgb(100, 102, 105);--input-focus-border-color: rgb(112, 114, 115);--post-list-text-color: rgb(175, 176, 177);--btn-patinator-text-color: var(--text-color);--btn-paginator-hover-color: #2e2e2e;--toc-highlight: rgb(116, 178, 243);--tag-hover: rgb(43, 56, 62);--tb-odd-bg: #252526;--tb-even-bg: rgb(31, 31, 34);--tb-border-color: var(--tb-odd-bg);--footnote-target-bg: rgb(63, 81, 181);--btn-share-color: #6c757d;--btn-share-hover-color: #bfc1ca;--card-bg: #1e1e1e;--card-hovor-bg: #464d51;--card-shadow: rgb(21, 21, 21, 0.72) 0 6px 18px 0, rgb(137, 135, 135, 0.24) 0 0 0 1px;--kbd-wrap-color: #6a6a6a;--kbd-text-color: #d3d3d3;--kbd-bg-color: #242424;--prompt-text-color: rgb(216, 212, 212, 0.75);--prompt-tip-bg: rgb(22, 60, 36, 0.64);--prompt-tip-icon-color: rgb(15, 164, 15, 0.81);--prompt-info-bg: rgb(7, 59, 104, 0.8);--prompt-info-icon-color: #0075d1;--prompt-warning-bg: rgb(90, 69, 3, 0.88);--prompt-warning-icon-color: rgb(255, 165, 0, 0.8);--prompt-danger-bg: rgb(86, 28, 8, 0.8);--prompt-danger-icon-color: #cd0202;--tag-border: rgb(59, 79, 88);--tag-shadow: rgb(32, 33, 33);--dash-color: rgb(63, 65, 68);--search-tag-bg: #292828;--categories-border: rgb(64, 66, 69, 0.5);--categories-hover-bg: rgb(73, 75, 76);--categories-icon-hover-color: white;--timeline-node-bg: rgb(150, 152, 156);--timeline-color: rgb(63, 65, 68);--timeline-year-dot-color: var(--timeline-color);color-scheme:dark}html:not([data-mode]) .light,html[data-mode=dark] .light{display:none}html:not([data-mode]) hr,html[data-mode=dark] hr{border-color:var(--main-border-color)}html:not([data-mode]) .categories.card,html:not([data-mode]) .list-group-item,html[data-mode=dark] .categories.card,html[data-mode=dark] .list-group-item{background-color:var(--card-bg)}html:not([data-mode]) .categories .card-header,html[data-mode=dark] .categories .card-header{background-color:var(--card-header-bg)}html:not([data-mode]) .categories .list-group-item,html[data-mode=dark] .categories .list-group-item{border-left:none;border-right:none;padding-left:2rem;border-color:var(--categories-border)}html:not([data-mode]) .categories .list-group-item:last-child,html[data-mode=dark] .categories .list-group-item:last-child{border-bottom-color:var(--card-bg)}html:not([data-mode]) #archives li:nth-child(odd),html[data-mode=dark] #archives li:nth-child(odd){background-image:linear-gradient(to left, rgb(26, 26, 30), rgb(39, 39, 45), rgb(39, 39, 45), rgb(39, 39, 45), rgb(26, 26, 30))}html:not([data-mode]) #disqus_thread,html[data-mode=dark] #disqus_thread{color-scheme:none}html[data-mode=light]{--main-bg: white;--mask-bg: #c1c3c5;--main-border-color: #f3f3f3;--text-color: #34343c;--text-muted-color: #757575;--text-muted-hightlight-color: inherit;--heading-color: #2a2a2a;--label-color: #585858;--blockquote-border-color: #eeeeee;--blockquote-text-color: #757575;--link-color: #0056b2;--link-underline-color: #dee2e6;--button-bg: #ffffff;--btn-border-color: #e9ecef;--btn-backtotop-color: #686868;--btn-backtotop-border-color: #f1f1f1;--btn-box-shadow: #eaeaea;--checkbox-color: #c5c5c5;--checkbox-checked-color: #07a8f7;--img-bg: radial-gradient( circle, rgb(255, 255, 255) 0%, rgb(239, 239, 239) 100% );--shimmer-bg: linear-gradient( 90deg, rgba(250, 250, 250, 0) 0%, rgba(232, 230, 230, 1) 50%, rgba(250, 250, 250, 0) 100% );--site-title-color: rgb(113, 113, 113);--site-subtitle-color: #717171;--sidebar-bg: #f6f8fa;--sidebar-border-color: #efefef;--sidebar-muted-color: #545454;--sidebar-active-color: #1d1d1d;--sidebar-hover-bg: rgb(223, 233, 241, 0.64);--sidebar-btn-bg: white;--sidebar-btn-color: #8e8e8e;--avatar-border-color: white;--topbar-bg: rgb(255, 255, 255, 0.7);--topbar-text-color: rgb(78, 78, 78);--search-border-color: rgb(240, 240, 240);--search-icon-color: #c2c6cc;--input-focus-border-color: #b8b8b8;--post-list-text-color: dimgray;--btn-patinator-text-color: #555555;--btn-paginator-hover-color: var(--sidebar-bg);--toc-highlight: #0550ae;--btn-share-hover-color: var(--link-color);--card-bg: white;--card-hovor-bg: #e2e2e2;--card-shadow: rgb(104, 104, 104, 0.05) 0 2px 6px 0, rgba(211, 209, 209, 0.15) 0 0 0 1px;--footnote-target-bg: lightcyan;--tb-odd-bg: #fbfcfd;--tb-border-color: #eaeaea;--dash-color: silver;--kbd-wrap-color: #bdbdbd;--kbd-text-color: var(--text-color);--kbd-bg-color: white;--prompt-text-color: rgb(46, 46, 46, 0.77);--prompt-tip-bg: rgb(123, 247, 144, 0.2);--prompt-tip-icon-color: #03b303;--prompt-info-bg: #e1f5fe;--prompt-info-icon-color: #0070cb;--prompt-warning-bg: rgb(255, 243, 205);--prompt-warning-icon-color: #ef9c03;--prompt-danger-bg: rgb(248, 215, 218, 0.56);--prompt-danger-icon-color: #df3c30;--tag-border: #dee2e6;--tag-shadow: var(--btn-border-color);--tag-hover: rgb(222, 226, 230);--search-tag-bg: #f8f9fa;--categories-border: rgba(0, 0, 0, 0.125);--categories-hover-bg: var(--btn-border-color);--categories-icon-hover-color: darkslategray;--timeline-color: rgba(0, 0, 0, 0.075);--timeline-node-bg: #c2c6cc;--timeline-year-dot-color: #ffffff}html[data-mode=light] [class^=prompt-]{--link-underline-color: rgb(219, 216, 216)}html[data-mode=light] .dark{display:none}}body{background:var(--main-bg);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);color:var(--text-color);-webkit-font-smoothing:antialiased;font-family:"Source Sans Pro","Microsoft Yahei",sans-serif}h1{font-size:1.92rem}h2{font-size:1.54rem}h3{font-size:1.36rem}h4{font-size:1.18rem}h5{font-size:1rem}a{text-decoration:none}img{max-width:100%;height:auto;transition:all .35s ease-in-out}.blur img{-webkit-filter:blur(20px);filter:blur(20px)}blockquote{border-left:5px solid var(--blockquote-border-color);padding-left:1rem;color:var(--blockquote-text-color)}blockquote[class^=prompt-]{border-left:0;position:relative;padding:1rem 1rem 1rem 3rem;color:var(--prompt-text-color)}blockquote[class^=prompt-]::before{text-align:center;width:3rem;position:absolute;left:.25rem;margin-top:.4rem;text-rendering:auto;-webkit-font-smoothing:antialiased}blockquote[class^=prompt-]>p:last-child{margin-bottom:0}blockquote.prompt-tip{background-color:var(--prompt-tip-bg)}blockquote.prompt-tip::before{content:"";color:var(--prompt-tip-icon-color);font:var(--fa-font-regular)}blockquote.prompt-info{background-color:var(--prompt-info-bg)}blockquote.prompt-info::before{content:"";color:var(--prompt-info-icon-color);font:var(--fa-font-solid)}blockquote.prompt-warning{background-color:var(--prompt-warning-bg)}blockquote.prompt-warning::before{content:"";color:var(--prompt-warning-icon-color);font:var(--fa-font-solid)}blockquote.prompt-danger{background-color:var(--prompt-danger-bg)}blockquote.prompt-danger::before{content:"";color:var(--prompt-danger-icon-color);font:var(--fa-font-solid)}kbd{font-family:inherit;display:inline-block;vertical-align:middle;line-height:1.3rem;min-width:1.75rem;text-align:center;margin:0 .3rem;padding-top:.1rem;color:var(--kbd-text-color);background-color:var(--kbd-bg-color);border-radius:.25rem;border:solid 1px var(--kbd-wrap-color);box-shadow:inset 0 -2px 0 var(--kbd-wrap-color)}footer{background-color:var(--main-bg);height:5rem;border-top:1px solid var(--main-border-color)}footer p{text-align:center;margin-bottom:0}.access{top:2rem;transition:top .2s ease-in-out;margin-top:3rem;margin-bottom:4rem}.access:only-child{position:-webkit-sticky;position:sticky}.access>section{padding-left:1rem;border-left:1px solid var(--main-border-color)}.access>section:not(:last-child){margin-bottom:4rem}.access .content{font-size:.9rem}#panel-wrapper .panel-heading{font-family:inherit;line-height:inherit;color:var(--label-color);font-size:inherit;font-weight:600}#panel-wrapper .post-tag{line-height:1.05rem;font-size:.85rem;border-radius:.8rem;padding:.3rem .5rem;margin:0 .35rem .5rem 0}#panel-wrapper .post-tag:hover{transition:all .3s ease-in}#access-lastmod a{color:inherit}.footnotes>ol{padding-left:2rem;margin-top:.5rem}.footnotes>ol>li:not(:last-child){margin-bottom:.3rem}.footnotes>ol>li>p{margin-left:.25em;margin-top:0;margin-bottom:0}a.footnote{margin-left:1px;margin-right:1px;padding-left:2px;padding-right:2px;border-bottom-style:none !important}a.reversefootnote{font-size:.6rem;line-height:1;position:relative;bottom:.25em;margin-left:.25em;border-bottom-style:none !important}.table-wrapper{overflow-x:auto;margin-bottom:1.5rem}.table-wrapper>table{min-width:100%;overflow-x:auto;border-spacing:0}.table-wrapper>table thead{border-bottom:solid 2px rgba(210,215,217,.75)}.table-wrapper>table tbody tr{border-bottom:1px solid var(--tb-border-color)}.table-wrapper>table tbody tr:nth-child(2n){background-color:var(--tb-even-bg)}.table-wrapper>table tbody tr:nth-child(2n+1){background-color:var(--tb-odd-bg)}.preview-img{aspect-ratio:40/21;width:100%;height:100%;overflow:hidden}.preview-img:not(.no-bg){background:var(--img-bg)}.preview-img img{height:100%;-o-object-fit:cover;object-fit:cover}.post-preview{border:0;background:var(--card-bg);box-shadow:var(--card-shadow)}.post-preview::before{content:"";width:100%;height:100%;position:absolute;background-color:var(--card-hovor-bg);opacity:0;transition:opacity .35s ease-in-out}.post-preview:hover::before{opacity:.3}main{line-height:1.75}main h1{margin-top:2rem;margin-bottom:1.5rem}main p>a.popup:not(.normal):not(.left):not(.right){position:relative;left:50%;transform:translateX(-50%)}.content{font-size:1.08rem;margin-top:2rem;overflow-wrap:break-word}.content a.popup{margin-top:.5rem;margin-bottom:.5rem;cursor:zoom-in}.content ol:not([class]),.content ol.task-list,.content ul:not([class]),.content ul.task-list{-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.content ol:not([class]) li,.content ol.task-list li,.content ul:not([class]) li,.content ul.task-list li{margin:.25rem 0;padding-left:.25rem}.content ol:not([class]) ol,.content ol:not([class]) ul,.content ol.task-list ol,.content ol.task-list ul,.content ul:not([class]) ol,.content ul:not([class]) ul,.content ul.task-list ol,.content ul.task-list ul{-webkit-padding-start:1.25rem;padding-inline-start:1.25rem;margin:.5rem 0}.content ul.task-list{-webkit-padding-start:1.25rem;padding-inline-start:1.25rem}.content ul.task-list li{list-style-type:none;padding-left:0}.content ul.task-list li>i{width:2rem;margin-left:-1.25rem;color:var(--checkbox-color)}.content ul.task-list li>i.checked{color:var(--checkbox-checked-color)}.content ul.task-list li ul{-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.content ul.task-list input[type=checkbox]{margin:0 .5rem .2rem -1.3rem;vertical-align:middle}.content dl>dd{margin-left:1rem}.content ::marker{color:var(--text-muted-color)}.post-tag{display:inline-block;min-width:2rem;text-align:center;border-radius:.5rem;border:1px solid var(--btn-border-color);padding:0 .4rem;color:var(--text-muted-color);line-height:1.3rem}.post-tag:not(:last-child){margin-right:.2rem}.rounded-10{border-radius:10px !important}.img-link{color:rgba(0,0,0,0);display:inline-flex}.shimmer{overflow:hidden;position:relative;background:var(--img-bg)}.shimmer::before{content:"";position:absolute;background:var(--shimmer-bg);height:100%;width:100%;-webkit-animation:shimmer 1.3s infinite;animation:shimmer 1.3s infinite}@-webkit-keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}.embed-video{width:100%;height:100%;margin-bottom:1rem}.embed-video.youtube{aspect-ratio:16/9}.embed-video.twitch{aspect-ratio:310/189}.btn-lang{border:1px solid !important;padding:1px 3px;border-radius:3px;color:var(--link-color)}.btn-lang:focus{box-shadow:none}.loaded{display:block !important}.d-flex.loaded{display:flex !important}.unloaded{display:none !important}.visible{visibility:visible !important}.hidden{visibility:hidden !important}.flex-grow-1{flex-grow:1 !important}.btn-box-shadow{box-shadow:var(--card-shadow)}.text-muted{color:var(--text-muted-color) !important}.tooltip-inner{font-size:.7rem;max-width:220px;text-align:left}.btn.btn-outline-primary:not(.disabled):hover{border-color:#007bff !important}.disabled{color:#cec4c4;pointer-events:auto;cursor:not-allowed}.hide-border-bottom{border-bottom:none !important}.input-focus{box-shadow:none;border-color:var(--input-focus-border-color) !important;background:center !important;transition:background-color .15s ease-in-out,border-color .15s ease-in-out}.left{float:left;margin:.75rem 1rem 1rem 0 !important}.right{float:right;margin:.75rem 0 1rem 1rem !important}figure .mfp-title{text-align:center;padding-right:0;margin-top:.5rem}.mfp-img{transition:none}.mermaid{text-align:center}mjx-container{overflow-y:hidden;min-width:auto !important}#sidebar{padding-left:0;padding-right:0;position:fixed;top:0;left:0;height:100%;overflow-y:auto;width:260px;z-index:99;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border-color);-ms-overflow-style:none;scrollbar-width:none}#sidebar::-webkit-scrollbar{display:none}#sidebar .sidebar-bottom .mode-toggle:hover,#sidebar .sidebar-bottom a:hover,#sidebar .site-title a:hover{color:var(--sidebar-active-color)}#sidebar #avatar{display:block;width:7rem;height:7rem;overflow:hidden;box-shadow:var(--avatar-border-color) 0 0 0 2px;transform:translateZ(0)}#sidebar #avatar img{transition:transform .5s}#sidebar #avatar img:hover{transform:scale(1.2)}#sidebar .profile-wrapper{margin-top:2.5rem;margin-bottom:2.5rem;padding-left:2.5rem;padding-right:1.25rem;width:100%}#sidebar .site-title{font-family:inherit;font-weight:900;font-size:1.75rem;line-height:1.2;letter-spacing:.25px;margin-top:1.25rem;margin-bottom:.5rem}#sidebar .site-title a{color:var(--site-title-color)}#sidebar .site-subtitle{font-size:95%;color:var(--site-subtitle-color);margin-top:.25rem;word-spacing:1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#sidebar ul{margin-bottom:2rem}#sidebar ul li.nav-item{opacity:.9;width:100%;padding-left:1.5rem;padding-right:1.5rem}#sidebar ul li.nav-item a.nav-link{padding-top:.6rem;padding-bottom:.6rem;display:flex;align-items:center;border-radius:.75rem;font-weight:600}#sidebar ul li.nav-item a.nav-link:hover{background-color:var(--sidebar-hover-bg)}#sidebar ul li.nav-item a.nav-link i{font-size:95%;opacity:.8;margin-right:1.5rem}#sidebar ul li.nav-item a.nav-link span{font-size:90%;letter-spacing:.2px}#sidebar ul li.nav-item.active .nav-link{color:var(--sidebar-active-color);background-color:var(--sidebar-hover-bg)}#sidebar ul li.nav-item.active .nav-link span{opacity:1}#sidebar ul li.nav-item:not(:first-child){margin-top:.25rem}#sidebar .sidebar-bottom{padding-left:2rem;padding-right:1rem;margin-bottom:1.5rem}#sidebar .sidebar-bottom .mode-toggle,#sidebar .sidebar-bottom a{width:1.75rem;height:1.75rem;margin-bottom:.5rem;border-radius:50%;color:var(--sidebar-btn-color);background-color:var(--sidebar-btn-bg);text-align:center;display:flex;align-items:center;justify-content:center;box-shadow:var(--sidebar-border-color) 0 0 0 1px}#sidebar .sidebar-bottom .mode-toggle:hover,#sidebar .sidebar-bottom a:hover{background-color:var(--sidebar-hover-bg)}#sidebar .sidebar-bottom a:not(:last-child){margin-right:.8rem}#sidebar .sidebar-bottom i{line-height:1.75rem}#sidebar .sidebar-bottom .mode-toggle{padding:0;border:0}#sidebar .sidebar-bottom .icon-border{margin-left:calc((.8rem - 3px)/2);margin-right:calc((.8rem - 3px)/2);background-color:var(--sidebar-btn-color);content:"";width:3px;height:3px;border-radius:50%;margin-bottom:.5rem}@media(hover: hover){#sidebar ul>li:last-child::after{transition:top .5s ease}.nav-link{transition:background-color .3s ease-in-out}.post-preview{transition:background-color .35s ease-in-out}}#search-result-wrapper{display:none;height:100%;width:100%;overflow:auto}#search-result-wrapper .content{margin-top:2rem}#topbar-wrapper{height:3rem;background-color:var(--topbar-bg)}#topbar button i{color:#999}#topbar #breadcrumb{font-size:1rem;color:var(--text-muted-color);padding-left:.5rem}#topbar #breadcrumb span:not(:last-child)::after{content:"›";padding:0 .3rem}::-webkit-input-placeholder{color:var(--text-muted-color) !important}::-moz-placeholder{color:var(--text-muted-color) !important}:-ms-input-placeholder{color:var(--text-muted-color) !important}::-ms-input-placeholder{color:var(--text-muted-color) !important}::placeholder{color:var(--text-muted-color) !important}:focus::-webkit-input-placeholder{opacity:.6}:focus::-moz-placeholder{opacity:.6}:focus:-ms-input-placeholder{opacity:.6}:focus::-ms-input-placeholder{opacity:.6}:focus::placeholder{opacity:.6}search{display:flex;width:100%;border-radius:1rem;border:1px solid var(--search-border-color);background:var(--main-bg);padding:0 .5rem}search i{z-index:2;font-size:.9rem;color:var(--search-icon-color)}#sidebar-trigger,#search-trigger{display:none}#search-cancel{color:var(--link-color);display:none;white-space:nowrap}#search-input{background:center;border:0;border-radius:0;padding:.18rem .3rem;color:var(--text-color);height:auto}#search-input:focus{box-shadow:none}#search-hints{padding:0 1rem}#search-hints h4{margin-bottom:1.5rem}#search-hints .post-tag{display:inline-block;line-height:1rem;font-size:1rem;background:var(--search-tag-bg);border:none;padding:.5rem;margin:0 1.25rem 1rem 0}#search-hints .post-tag::before{content:"#";color:var(--text-muted-color);padding-right:.2rem}#search-results{padding-bottom:3rem}#search-results a{font-size:1.4rem;line-height:2.5rem}#search-results>article{width:100%}#search-results>article:not(:last-child){margin-bottom:1rem}#search-results>article i{color:#818182;margin-right:.15rem;font-size:80%}#search-results>article>p{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}#topbar-title{display:none;font-size:1.1rem;font-weight:600;font-family:sans-serif;color:var(--topbar-text-color);text-align:center;width:70%;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}#mask{display:none;position:fixed;inset:0 0 0 0;height:100%;width:100%;z-index:1}[sidebar-display] #mask{display:block !important}#main-wrapper{position:relative;padding-left:0;padding-right:0}#main-wrapper>.container{min-height:100vh}#topbar-wrapper.row,#main-wrapper>.container>.row,#search-result-wrapper>.row{margin-left:0;margin-right:0}#tail-wrapper>:not(script){margin-top:3rem}#back-to-top{display:none;z-index:1;cursor:pointer;position:fixed;right:1rem;bottom:4.625rem;background:var(--button-bg);color:var(--btn-backtotop-color);padding:0;width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid var(--btn-backtotop-border-color);transition:transform .2s ease-out;-webkit-transition:transform .2s ease-out}#back-to-top:hover{transform:translate3d(0, -5px, 0);-webkit-transform:translate3d(0, -5px, 0)}#back-to-top i{line-height:2.75rem;position:relative;bottom:2px}@-webkit-keyframes popup{from{opacity:0;bottom:0}}@keyframes popup{from{opacity:0;bottom:0}}#notification .toast-header{background:none;border-bottom:none;color:inherit}#notification .toast-body{font-family:Lato,sans-serif;line-height:1.25rem}#notification .toast-body button{font-size:90%;min-width:4rem}#notification.toast.show{display:block;min-width:20rem;border-radius:.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:rgba(255,255,255,.5);color:rgba(27,27,30,.7294117647);position:fixed;left:50%;bottom:20%;transform:translateX(-50%);-webkit-animation:popup .8s;animation:popup .8s}@media all and (max-width: 576px){main .content>blockquote[class^=prompt-]{margin-left:-1rem;margin-right:-1rem;border-radius:0;max-width:none}#avatar{width:5rem;height:5rem}}@media all and (max-width: 768px){#main-wrapper>.container,#topbar{max-width:100%}#main-wrapper>.container{padding-left:0;padding-right:0}}@media all and (max-width: 849px){footer{transition:transform .4s ease;height:6rem;padding:1.5rem 0}[sidebar-display] #sidebar{transform:translateX(0)}[sidebar-display] #main-wrapper{transform:translateX(260px)}[sidebar-display] #back-to-top{visibility:hidden}#sidebar{transition:transform .4s ease;transform:translateX(-260px);-webkit-transform:translateX(-260px)}#main-wrapper{transition:transform .4s ease}#topbar,#main-wrapper>.container{max-width:100%}#search-result-wrapper{width:100%}#breadcrumb,search{display:none}#topbar-wrapper{transition:transform .4s ease,top .2s ease;left:0}main,#panel-wrapper{margin-top:0}#topbar-title,#sidebar-trigger,#search-trigger{display:block}#search-result-wrapper .content{letter-spacing:0}#tags{justify-content:center !important}h1.dynamic-title{display:none}h1.dynamic-title~.content{margin-top:2.5rem}}@media all and (min-width: 850px){html{overflow-y:scroll}#main-wrapper{margin-left:260px}#sidebar .profile-wrapper{margin-top:3rem}#search-hints{display:none}search{max-width:200px}#search-result-wrapper{max-width:1250px;justify-content:start !important}main h1{margin-top:3rem}div.content .table-wrapper>table{min-width:70%}#back-to-top{right:5%;bottom:3.625rem}#topbar-title{text-align:left}}@media all and (min-width: 992px)and (max-width: 1199px){#main-wrapper>.container .col-lg-11{flex:0 0 96%;max-width:96%}}@media all and (min-width: 850px)and (max-width: 1199px){#search-results>div{max-width:700px}#breadcrumb{width:65%;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}}@media all and (max-width: 1199px){#panel-wrapper{display:none}#main-wrapper>.container>div.row{justify-content:center !important}}@media all and (min-width: 1200px){search{margin-right:4rem}#search-input{transition:all .3s ease-in-out}#search-results>article{width:45%}#search-results>article:nth-child(odd){margin-right:1.5rem}#search-results>article:nth-child(even){margin-left:1.5rem}#search-results>article:last-child:nth-child(odd){position:relative;right:24.3%}.content{font-size:1.03rem}}@media all and (min-width: 1400px){#back-to-top{right:calc((100vw - 260px - 1140px)/2 + 3rem)}}@media all and (min-width: 1650px){#main-wrapper{margin-left:300px}#topbar-wrapper{left:300px}search{margin-right:calc(112.5px - .75rem)}#main-wrapper>.container{max-width:1250px;padding-left:1.75rem !important;padding-right:1.75rem !important}main.col-12,#tail-wrapper{padding-right:4.5rem !important}#back-to-top{right:calc((100vw - 300px - 1250px)/2 + 2rem)}#sidebar{width:300px}#sidebar .profile-wrapper{margin-top:3.5rem;margin-bottom:2.5rem;padding-left:3.5rem}#sidebar ul li.nav-item{padding-left:2.75rem;padding-right:2.75rem}#sidebar .sidebar-bottom{padding-left:2.75rem;margin-bottom:1.75rem}#sidebar .sidebar-bottom a:not(:last-child){margin-right:1rem}#sidebar .sidebar-bottom .icon-border{margin-left:calc((1rem - 3px)/2);margin-right:calc((1rem - 3px)/2)}}#post-list{margin-top:2rem}#post-list .card-wrapper:hover{text-decoration:none}#post-list .card-wrapper:not(:last-child){margin-bottom:1.25rem}#post-list .card{border:0;background:none}#post-list .card .preview-img img,#post-list .card .preview-img{border-radius:.625rem .625rem 0 0}#post-list .card .card-body{height:100%;padding:1rem}#post-list .card .card-body .card-title{color:var(--heading-color) !important;font-size:1.25rem}#post-list .card .card-body .post-meta,#post-list .card .card-body .card-text.content{color:var(--text-muted-color) !important}#post-list .card .card-body .card-text.content p{line-height:1.5;margin:0}#post-list .card .card-body .post-meta i:not(:first-child){margin-left:1.5rem}#post-list .card .card-body .post-meta em{color:inherit}#post-list .card .card-body .post-meta>div:first-child{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pagination{color:var(--text-color);font-family:Lato,sans-serif;justify-content:space-evenly}.pagination a:hover{text-decoration:none}.pagination .page-item .page-link{color:var(--btn-patinator-text-color);padding:0 .6rem;display:-webkit-box;-webkit-box-pack:center;-webkit-box-align:center;border-radius:.5rem;border:0;background-color:inherit}.pagination .page-item.active .page-link{background-color:var(--btn-paginator-hover-color)}.pagination .page-item:not(.active) .page-link:hover{box-shadow:inset var(--btn-border-color) 0 0 0 1px}.pagination .page-item.disabled{cursor:not-allowed}.pagination .page-item.disabled .page-link{color:rgba(108,117,125,.57)}@media all and (min-width: 768px){#post-list .card .preview-img,#post-list .card .preview-img img{border-radius:0 .625rem .625rem 0}#post-list .card .card-body{padding:1.75rem 1.75rem 1.25rem 1.75rem}#post-list .card .card-body .card-text{display:inherit !important}#post-list .card .card-body .post-meta i:not(:first-child){margin-left:1.75rem}}@media all and (max-width: 830px){.pagination .page-item:not(:first-child):not(:last-child){display:none}}@media all and (min-width: 831px){#post-list{margin-top:2.5rem}.pagination{font-size:.85rem;justify-content:center}.pagination .page-item:not(:last-child){margin-right:.7rem}.pagination .page-index{display:none}}.post-navigation .btn.disabled,.post-navigation .btn{width:50%;position:relative;border-color:var(--btn-border-color)}h1+.post-meta>span+span::before{content:"•";padding-left:.25rem;padding-right:.25rem}h1+.post-meta em a{color:inherit}.post-tail-wrapper{margin-top:6rem;border-bottom:1px double var(--main-border-color)}.post-tail-wrapper .license-wrapper{line-height:1.2rem}.post-tail-wrapper .share-wrapper{vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.post-tail-wrapper .share-wrapper .share-icons{font-size:1.2rem}.post-tail-wrapper .share-wrapper .share-icons>*{margin-left:.25rem}.post-tail-wrapper .share-wrapper .share-icons button{position:relative;bottom:2px;padding:0}.post-tail-wrapper .share-wrapper .share-icons a :hover{text-decoration:none}.post-tail-wrapper .share-wrapper .share-icons .fa-square-x-twitter{color:var(--btn-share-color, black)}.post-tail-wrapper .share-wrapper .share-icons .fa-facebook-square{color:var(--btn-share-color, rgb(66, 95, 156))}.post-tail-wrapper .share-wrapper .share-icons .fa-telegram{color:var(--btn-share-color, rgb(39, 159, 217))}.post-tail-wrapper .share-wrapper .share-icons .fa-linkedin{color:var(--btn-share-color, rgb(0, 119, 181))}.post-tail-wrapper .share-wrapper .share-icons .fa-weibo{color:var(--btn-share-color, rgb(229, 20, 43))}.post-tail-wrapper .share-wrapper .fas.fa-link{color:var(--btn-share-color, rgb(171, 171, 171))}.post-tags{line-height:2rem}.post-navigation .btn:not(:hover){color:var(--link-color)}.post-navigation .btn:hover:not(.disabled)::before{color:#f5f5f5}.post-navigation .btn.disabled{pointer-events:auto;cursor:not-allowed;background:none;color:gray}.post-navigation .btn.btn-outline-primary.disabled:focus{box-shadow:none}.post-navigation .btn::before{color:var(--text-muted-color);font-size:.65rem;text-transform:uppercase;content:attr(aria-label)}.post-navigation .btn:first-child{border-radius:.625rem 0 0 .625rem;left:.5px}.post-navigation .btn:last-child{border-radius:0 .625rem .625rem 0;right:.5px}.post-navigation p{font-size:1.1rem;line-height:1.5rem;margin-top:.3rem;white-space:normal}@media(hover: hover){.post-navigation .btn,.post-navigation .btn::before{transition:all .35s ease-in-out}}@-webkit-keyframes fade-up{from{opacity:0;position:relative;top:2rem}to{opacity:1;position:relative;top:0}}@keyframes fade-up{from{opacity:0;position:relative;top:2rem}to{opacity:1;position:relative;top:0}}#toc-wrapper{border-left:1px solid rgba(158,158,158,.17);position:-webkit-sticky;position:sticky;top:4rem;transition:top .2s ease-in-out;-webkit-animation:fade-up .8s;animation:fade-up .8s}#toc-wrapper ul{list-style:none;font-size:.85rem;line-height:1.25;padding-left:0}#toc-wrapper ul li:not(:last-child){margin:.4rem 0}#toc-wrapper ul li a{padding:.2rem 0 .2rem 1.25rem}#toc-wrapper ul .toc-link{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#toc-wrapper ul .toc-link:hover{color:var(--toc-highlight);text-decoration:none}#toc-wrapper ul .toc-link::before{display:none}#toc-wrapper ul .is-active-link{color:var(--toc-highlight) !important;font-weight:600}#toc-wrapper ul .is-active-link::before{display:inline-block;width:1px;left:-1px;height:1.25rem;background-color:var(--toc-highlight) !important}#toc-wrapper ul ul{padding-left:.75rem}#related-posts>h3{color:var(--label-color);font-size:1.1rem;font-weight:600}#related-posts time{color:var(--text-muted-color)}#related-posts p{font-size:.9rem;margin-bottom:.5rem;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}#disqus_thread{min-height:8.5rem}.utterances{max-width:100%}.post-tail-wrapper .share-wrapper .share-icons>*:hover i{color:var(--btn-share-hover-color) !important}.share-label{color:inherit;font-size:inherit;font-weight:400}.share-label::after{content:":"}@media all and (max-width: 576px){.post-tail-bottom{flex-wrap:wrap-reverse !important}.post-tail-bottom>div:first-child{width:100%;margin-top:1rem}}@media all and (max-width: 768px){.content>p>img{max-width:calc(100% + 1rem)}}@media all and (max-width: 849px){.post-navigation{padding-left:0;padding-right:0;margin-left:-0.5rem;margin-right:-0.5rem}}.tag{border-radius:.7em;padding:6px 8px 7px;margin-right:.8rem;line-height:3rem;letter-spacing:0;border:1px solid var(--tag-border) !important;box-shadow:0 0 3px 0 var(--tag-shadow)}.tag span{margin-left:.6em;font-size:.7em;font-family:Oswald,sans-serif}#archives{letter-spacing:.03rem}#archives ul li::before,#archives .year:first-child::before,#archives .year::before{content:"";width:4px;position:relative;float:left;background-color:var(--timeline-color)}#archives .year{height:3.5rem;font-size:1.5rem;position:relative;left:2px;margin-left:-4px}#archives .year::before{height:72px;left:79px;bottom:16px}#archives .year:first-child::before{height:32px;top:24px}#archives .year::after{content:"";display:inline-block;position:relative;border-radius:50%;width:12px;height:12px;left:21.5px;border:3px solid;background-color:var(--timeline-year-dot-color);border-color:var(--timeline-node-bg);box-shadow:0 0 2px 0 #c2c6cc;z-index:1}#archives ul li{font-size:1.1rem;line-height:3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#archives ul li:nth-child(odd){background-color:var(--main-bg, #ffffff);background-image:linear-gradient(to left, #ffffff, #fbfbfb, #fbfbfb, #fbfbfb, #ffffff)}#archives ul li::before{top:0;left:77px;height:3.1rem}#archives ul:last-child li:last-child::before{height:1.5rem}#archives .date{white-space:nowrap;display:inline-block;position:relative;right:.5rem}#archives .date.month{width:1.4rem;text-align:center}#archives .date.day{font-size:85%;font-family:Lato,sans-serif}#archives a{margin-left:2.5rem;position:relative;top:.1rem}#archives a:hover{border-bottom:none}#archives a::before{content:"";display:inline-block;position:relative;border-radius:50%;width:8px;height:8px;float:left;top:1.35rem;left:71px;background-color:var(--timeline-node-bg);box-shadow:0 0 3px 0 #c2c6cc;z-index:1}@media all and (max-width: 576px){#archives{margin-top:-1rem}#archives ul{letter-spacing:0}}.categories i{color:gray}.categories{margin-bottom:2rem;border-color:var(--categories-border)}.categories .card-header{padding:.75rem;border-radius:calc(.625rem - 1px);border-bottom:0}.categories .card-header.hide-border-bottom{border-bottom-left-radius:0;border-bottom-right-radius:0}.categories i{font-size:86%}.categories .list-group-item{border-left:none;border-right:none;padding-left:2rem}.categories .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.categories .list-group-item:last-child{border-bottom:0}.category-trigger{width:1.7rem;height:1.7rem;border-radius:50%;text-align:center;color:#6c757d !important}.category-trigger i{position:relative;height:.7rem;width:1rem;transition:transform 300ms ease}.category-trigger:hover i{color:var(--categories-icon-hover-color)}@media(hover: hover){.category-trigger:hover{background-color:var(--categories-hover-bg)}}.rotate{transform:rotate(-90deg)}.dash{margin:0 .5rem .6rem .5rem;border-bottom:2px dotted var(--dash-color)}#page-category ul>li,#page-tag ul>li{line-height:1.5rem;padding:.6rem 0}#page-category ul>li::before,#page-tag ul>li::before{background:#999;width:5px;height:5px;border-radius:50%;display:block;content:"";position:relative;top:.6rem;margin-right:.5rem}#page-category ul>li>a,#page-tag ul>li>a{font-size:1.1rem}#page-tag h1>i{font-size:1.2rem}#page-category h1>i{font-size:1.25rem}#page-category a:hover,#page-tag a:hover,#access-lastmod a:hover{margin-bottom:-1px}@media all and (max-width: 576px){#page-category ul>li::before,#page-tag ul>li::before{margin:0 .5rem}#page-category ul>li>a,#page-tag ul>li>a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}/*# sourceMappingURL=jekyll-theme-chirpy.css.map */
\ No newline at end of file
diff --git a/pseo_website/_site/assets/css/jekyll-theme-chirpy.css.map b/pseo_website/_site/assets/css/jekyll-theme-chirpy.css.map
deleted file mode 100644
index 369cb413..00000000
--- a/pseo_website/_site/assets/css/jekyll-theme-chirpy.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sourceRoot":"","sources":["../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/addon/module.scss","../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/addon/variables.scss","../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/addon/syntax.scss","../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/colors/syntax-light.scss","../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/colors/syntax-dark.scss","../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/addon/commons.scss","../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/colors/typography-light.scss","../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/colors/typography-dark.scss","../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/layout/home.scss","../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/layout/post.scss","../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/layout/tags.scss","../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/layout/archives.scss","../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/layout/categories.scss","../../../../gems/gems/jekyll-theme-chirpy-6.2.3/_sass/layout/category-tag.scss"],"names":[],"mappings":"CAMA,iCACE,2BACA,gBACA,YCuBoB,kCDnBpB,gCACE,kBACA,sBAEA,wDACE,aAMJ,4CACE,cAGF,qBACE,4CACE,kBACA,UACA,2DAIA,oEACE,mBACA,UACA,0DAMR,sCACE,4BACA,uCAGF,+DACE,mBACA,cACA,mBAGF,2QACE,yBACA,gCACA,qBAGF,4CACE,wBAGF,sEACE,oDAGF,4EACE,+BAGF,gFACE,yBACA,sBACA,qBACA,iBAGF,6LACE,mBAGF,yFACE,eAGF,4EACE,kBAGF,wMACE,cC5EY,QDgFZ,oBACE,cACA,kBACA,kBACA,cACA,UACA,cAIJ,iDACE,iCACA,yBACA,sBACA,qBACA,iBAGF,iHACE,oBACA,gBACA,uBACA,qBACA,4BAGF,mFACE,yCACA,gBAGF,kFACE,iBAGF,2BACE,gBAIA,mCACE,2CACA,uBACA,0BACA,kBACA,8CEvIF,oCACE,4CCHF,iCACA,8BACA,mCACA,kCACA,0BACA,sBACA,kCACA,mCACA,kCACA,mCAEA,8EACE,0BAKF,oFACE,YAGF,sFACE,SAGF,0IAEE,cACA,yBAGF,ogBAOE,cAGF,0EACE,cAGF,0EACE,cACA,yBAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cACA,yBAGF,0EACE,cAGF,guBAUE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,kXAKE,cAGF,kJAEE,cAGF,0EACE,cACA,iBAGF,0EACE,cACA,iBAGF,4yBAWE,cAGF,0EACE,cAGF,oJAEE,cAGF,4EACE,cACA,yBAGF,glBAQE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cACA,kBAGF,0EACE,cACA,iBDrMA,qBETF,iCACA,8BACA,mCACA,kCACA,0BACA,sBACA,kCACA,mCACA,kCACA,mCACA,+BAEA,oCACE,cAKF,yCACE,YAGF,0CACE,SAGF,mEAEE,cACA,yBAGF,qCACE,cACA,yBAGF,4PAOE,cAGF,oCACE,cAGF,oCACE,cAGF,uEAEE,cAGF,uEAEE,cAGF,oCACE,cAGF,oCACE,cACA,yBAGF,oCACE,cACA,yBACA,iBAGF,mLAKE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,mUASE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,+RAQE,cAGF,oCACE,eF9IF,mCACE,2CEfF,iCACA,8BACA,mCACA,kCACA,0BACA,sBACA,kCACA,mCACA,kCACA,mCACA,+BAEA,yEACE,cAKF,mFACE,YAGF,qFACE,SAGF,wIAEE,cACA,yBAGF,2EACE,cACA,yBAGF,+fAOE,cAGF,yEACE,cAGF,yEACE,cAGF,gJAEE,cAGF,gJAEE,cAGF,yEACE,cAGF,yEACE,cACA,yBAGF,yEACE,cACA,yBACA,iBAGF,2WAKE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,+oBASE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,skBAQE,cAGF,yEACE,cFxIA,sBCnBF,iCACA,8BACA,mCACA,kCACA,0BACA,sBACA,kCACA,mCACA,kCACA,mCAEA,uCACE,0BAKF,0CACE,YAGF,2CACE,SAGF,qEAEE,cACA,yBAGF,kQAOE,cAGF,qCACE,cAGF,qCACE,cACA,yBAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cACA,yBAGF,qCACE,cAGF,gXAUE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,yLAKE,cAGF,yEAEE,cAGF,qCACE,cACA,iBAGF,qCACE,cACA,iBAGF,sZAWE,cAGF,qCACE,cAGF,0EAEE,cAGF,sCACE,cACA,yBAGF,wSAQE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cACA,kBAGF,qCACE,cACA,kBDlLJ,kDACE,2CAGF,cACE,kBACA,qBAGF,mBACE,qCACA,iBACA,oBAGF,WAQE,cACA,sBAEA,eACE,gBACA,UDtCa,OCuCb,mBACA,iBAKE,gCACE,qBACA,iBACA,oBAGF,+BACE,8BAGF,wBACE,iBACA,kBAKN,mBACE,iBACA,oCACA,yBACA,sBACA,oBACA,qBACA,iBAIJ,KACE,qBACA,iBACA,aACA,wBAEA,uBACE,UDhFa,OCiFb,gBACA,sBACA,kBACA,uCAGF,cACE,yBACA,iCACA,gBACA,UAGF,yBACE,iBACA,cAGF,+BACE,mBAGF,gBACE,cAWF,gBACE,yBACA,8BACA,oBAIJ,sBAIE,kDAEA,+BFIA,YEHiB,MFIjB,aEJiB,MAEf,gBAGF,iCACE,yBACA,0BAUA,2IACE,qBACA,eAEA,2KACE,aAMR,aAGE,aACA,8BACA,mBACA,ODlKmB,QCmKnB,mBACA,oBAGA,kBACE,YDxKiB,QC2KjB,oBACE,eACA,MD1KY,QC2KZ,oCAEA,0BACE,cAIK,2BACP,kBACA,QAIF,yBACE,8BACA,iBACA,gBACA,oCAKJ,oBAIE,+BACA,ODzMiB,QC0MjB,MD1MiB,QC2MjB,UACA,yBAEA,sBACE,oCAIA,mCACE,4CAGF,+BACE,qCAIJ,0BACE,aAGF,yCACE,uCAEA,2CACE,WAMR,kCAEI,+BFzGF,YE0GmB,EFzGnB,aEyGmB,EAEf,cDrPQ,QCwPV,mCF/GF,YEgHmB,EF/GnB,aE+GmB,EAIf,2CACE,WACA,qBACA,YALW,KAMX,MD1PQ,OC2PR,OD3PQ,OC4PR,kBACA,gDACA,gGAMF,wCAEE,uBG3RR,KAuBE,eAtBA,oCACE,6DCCF,mBACA,6BAGA,sBACA,4BACA,uCACA,yBACA,uBACA,mCACA,iCACA,sBACA,gCACA,qBACA,4BACA,+BACA,sCACA,0BACA,0BACA,kCACA,oFAKA,2HAQA,uCACA,+BACA,sBACA,gCACA,+BACA,gCACA,6CACA,wBACA,6BACA,6BAGA,qCACA,qCACA,0CACA,6BACA,oCAGA,gCACA,oCACA,+CAGA,yBACA,2CACA,iBACA,yBACA,yFAEA,gCACA,qBACA,2BACA,qBACA,0BACA,oCACA,sBACA,2CACA,yCACA,iCACA,0BACA,kCACA,wCACA,qCACA,6CACA,oCAGA,sBACA,sCACA,gCACA,yBAWA,0CACA,+CACA,6CAGA,uCACA,4BACA,mCAhBA,8EACE,2CAGF,wDACE,aDvFA,qBELF,2BACA,2BACA,qCAGA,iCACA,4BACA,uCACA,yBACA,uBACA,2CACA,iCACA,iCACA,0CACA,qBACA,4BACA,yCACA,sCACA,iCACA,0BACA,qCACA,4CACA,4EACA,0HAQA,4BACA,+BACA,sBACA,gCACA,+BACA,iDACA,4BACA,0BACA,6BACA,+CAGA,mCACA,uCACA,uCACA,wCACA,+CAGA,2CACA,8CACA,qCAGA,oCACA,6BACA,qBACA,8BACA,oCACA,uCACA,2BACA,iCACA,mBACA,yBACA,sFAEA,0BACA,0BACA,wBACA,8CACA,uCACA,gDACA,uCACA,kCACA,0CACA,mDACA,wCACA,oCAGA,8BACA,8BACA,8BACA,yBAGA,0CACA,uCACA,qCAGA,uCACA,kCACA,iDA4CA,kBA1CA,4BACE,aAGF,wBACE,sCAIF,4EAEE,gCAIA,8CACE,uCAGF,kDACE,iBACA,kBACA,kBACA,sCAEA,6DACE,mCAKN,iDACE,+HAaF,oCACE,mBFpIF,mCACE,2CEXF,2BACA,2BACA,qCAGA,iCACA,4BACA,uCACA,yBACA,uBACA,2CACA,iCACA,iCACA,0CACA,qBACA,4BACA,yCACA,sCACA,iCACA,0BACA,qCACA,4CACA,4EACA,0HAQA,4BACA,+BACA,sBACA,gCACA,+BACA,iDACA,4BACA,0BACA,6BACA,+CAGA,mCACA,uCACA,uCACA,wCACA,+CAGA,2CACA,8CACA,qCAGA,oCACA,6BACA,qBACA,8BACA,oCACA,uCACA,2BACA,iCACA,mBACA,yBACA,sFAEA,0BACA,0BACA,wBACA,8CACA,uCACA,gDACA,uCACA,kCACA,0CACA,mDACA,wCACA,oCAGA,8BACA,8BACA,8BACA,yBAGA,0CACA,uCACA,qCAGA,uCACA,kCACA,iDA4CA,kBA1CA,yDACE,aAGF,iDACE,sCAIF,0JAEE,gCAIA,6FACE,uCAGF,qGACE,iBACA,kBACA,kBACA,sCAEA,2HACE,mCAKN,mGACE,+HAaF,yEACE,kBF9HA,sBChBF,iBACA,mBACA,6BAGA,sBACA,4BACA,uCACA,yBACA,uBACA,mCACA,iCACA,sBACA,gCACA,qBACA,4BACA,+BACA,sCACA,0BACA,0BACA,kCACA,oFAKA,2HAQA,uCACA,+BACA,sBACA,gCACA,+BACA,gCACA,6CACA,wBACA,6BACA,6BAGA,qCACA,qCACA,0CACA,6BACA,oCAGA,gCACA,oCACA,+CAGA,yBACA,2CACA,iBACA,yBACA,yFAEA,gCACA,qBACA,2BACA,qBACA,0BACA,oCACA,sBACA,2CACA,yCACA,iCACA,0BACA,kCACA,wCACA,qCACA,6CACA,oCAGA,sBACA,sCACA,gCACA,yBAWA,0CACA,+CACA,6CAGA,uCACA,4BACA,mCAhBA,uCACE,2CAGF,4BACE,cDpEJ,KACE,0BACA,kHAEA,wBACA,mCACA,YJLiB,+CIWjB,GAeI,kBAfJ,GAeI,kBAfJ,GAeI,kBAfJ,GAeI,kBAfJ,GAiBI,eAKN,EAGE,qBAGF,IACE,eACA,YACA,gCAEA,UAGE,0BACA,kBAIJ,WACE,qDACA,kBACA,mCAEA,2BACE,cACA,kBACA,4BACA,+BAIA,mCACE,kBACA,WACA,kBACA,YACA,iBACA,oBACA,mCAGF,wCACE,gBLmFJ,sBACE,sCAEA,8BACE,QKnFmB,ILoFnB,mCACA,4BANJ,uBACE,uCAEA,+BACE,QKlFoB,ILmFpB,oCACA,0BANJ,0BACE,0CAEA,kCACE,QKjFuB,ILkFvB,uCACA,0BANJ,yBACE,yCAEA,iCACE,QKhFsB,ILiFtB,sCACA,0BK/EN,IACE,oBACA,qBACA,sBACA,mBACA,kBACA,kBACA,eACA,kBACA,4BACA,qCACA,qBACA,uCACA,gDAGF,OACE,gCACA,OJxHc,KIyHd,8CAYA,SACE,kBACA,gBAcJ,QACE,SACA,+BACA,gBACA,mBAEA,mBACE,wBACA,gBAGF,gBACE,kBACA,+CAEA,iCACE,mBAIJ,iBACE,gBAMF,8BACE,oBACA,oBLfF,MADwD,mBAExD,UKgBiB,QLfjB,YAH2C,IKqB3C,yBACE,oBACA,iBACA,oBACA,oBACA,wBAEA,+BACE,2BAMJ,kBAOE,cAIJ,cACE,kBACA,iBAGE,kCACE,oBAKF,mBACE,kBACA,aACA,gBAMK,WLxFT,YKyFiB,ILxFjB,aKwFiB,IL/EjB,aKgFiB,IL/EjB,cK+EiB,IAEf,oCASO,kBACP,gBACA,cACA,kBACA,aACA,kBACA,oCAOJ,eACE,gBACA,qBAEA,qBACE,eACA,gBACA,iBAEA,2BACE,8CAQA,8BACE,+CAEA,4CACE,mCAGF,8CACE,kCAaV,aACE,mBACA,WACA,YACA,gBAIA,yBACE,yBAGF,iBACE,YACA,oBACA,iBAMJ,cAGE,SACA,0BACA,8BAEA,sBAGE,WACA,WACA,YACA,kBACA,sCACA,UACA,oCAIA,4BACE,WAKN,KACE,iBAEA,QACE,gBACA,qBAKE,mDLrLJ,kBACA,SACA,2BKgNF,SACE,kBACA,gBACA,yBAGE,iBL1PF,WK6PmB,ML5PnB,cK4PmB,MAEf,eAcF,8FAEE,8BACA,6BAEA,0GACE,gBACA,oBAGF,oNAEE,8BACA,6BACA,eAKN,sBACE,8BACA,6BAEA,yBACE,qBACA,eAGA,2BACE,WACA,qBACA,4BAEA,mCACE,oCAIJ,4BACE,8BACA,6BAIJ,2CACE,6BACA,sBAIJ,eACE,iBAGF,kBACE,8BAQJ,UACE,qBACA,eACA,kBACA,oBACA,yCACA,gBACA,8BACA,mBAEA,2BACE,mBAIJ,YACE,8BAGF,UACE,oBACA,oBAGF,SACE,gBACA,kBACA,yBAEA,iBACE,WACA,kBACA,6BACA,YACA,WACA,wCACA,gCAGF,2BACE,GACE,4BAGF,KACE,4BAIJ,mBACE,GACE,4BAGF,KACE,4BAKN,aACE,WACA,YACA,mBAIA,qBACE,kBAGF,oBACE,qBAKJ,UACE,4BACA,gBACA,kBACA,wBAEA,gBACE,gBAMJ,QACE,yBAES,eACP,wBAIJ,UACE,wBAGF,SACE,8BAGF,QACE,6BAGF,aACE,uBAGF,gBACE,8BAIF,YACE,yCAIF,eACE,gBACA,gBACA,gBAKA,8CACE,gCAIJ,UACE,cACA,oBACA,mBAGF,oBACE,8BAGF,aACE,gBACA,wDACA,6BACA,2EAGF,MACE,WACA,qCAGF,OACE,YACA,qCAOF,kBACE,kBACA,gBACA,iBAGF,SACE,gBAIF,SACE,kBAIF,cACE,kBACA,0BASF,SLhgBE,aKigBe,ELhgBf,cKggBe,EAEf,eACA,MACA,OACA,YACA,gBACA,MJvqBc,MIwqBd,WACA,6BACA,mDAQA,wBACA,qBANA,4BACE,aAQA,0GACE,kCAQJ,iBACE,cACA,WACA,YACA,gBACA,gDACA,wBAEA,qBACE,yBAEA,2BACE,qBAKN,0BLhkBA,WKikBiB,OLhkBjB,cKgkBiB,OAGf,oBACA,sBACA,WAGF,qBACE,oBACA,gBACA,kBACA,gBACA,qBACA,mBACA,oBAEA,uBAIE,8BAIJ,wBACE,cACA,iCACA,kBACA,iBACA,yBACA,sBACA,qBACA,iBAGF,YACE,mBAEA,wBACE,WACA,WACA,oBACA,qBAEA,mCLpmBJ,YKqmBqB,MLpmBrB,eKomBqB,MAEf,aACA,mBACA,qBACA,gBAEA,yCACE,yCAGF,qCACE,cACA,WACA,oBAGF,wCACE,cACA,oBAKF,yCACE,kCACA,yCAEA,8CACE,UAKN,0CACE,kBAKN,yBACE,kBACA,mBACA,qBAIA,iEACE,MAHS,QAIT,OAJS,QAKT,cApJG,MAqJH,kBACA,+BACA,uCACA,kBACA,aACA,mBACA,uBACA,iDAEA,6EACE,yCASF,4CACE,aJp0BK,MIw0BT,2BACE,YA/BS,QAkCX,sCACE,UACA,SAOF,sCLlsBF,YKosBmB,sBLnsBnB,aKmsBmB,sBAEf,0CACA,WACA,MAjMa,IAkMb,OAlMa,IAmMb,kBACA,cAnMG,MAwMT,qBACE,iCACE,wBAGF,UACE,4CAGF,cACE,8CAIJ,uBACE,aACA,YACA,WACA,cAEA,gCACE,gBAMJ,gBACE,OJ13Bc,KI23Bd,kCAIA,iBACE,WAGF,oBACE,eACA,8BACA,mBAQI,iDACE,YACA,gBAOV,4BL1vBE,yCK8vBF,mBL9vBE,yCKkwBF,uBLlwBE,yCKswBF,wBLtwBE,yCK0wBF,cL1wBE,yCK8wBF,kCL1wBE,WK8wBF,yBL9wBE,WKkxBF,6BLlxBE,WKsxBF,8BLtxBE,WK0xBF,oBL1xBE,WK8xBF,OACE,aACA,WACA,mBACA,4CACA,0BACA,gBAEA,SACE,UACA,gBACA,+BAIJ,iCAEE,aAIF,eACE,wBACA,aACA,mBAKF,cACE,kBACA,SACA,gBACA,qBACA,wBACA,YAEA,oBACE,gBAIJ,cACE,eAEA,iBACE,qBAGF,wBACE,qBACA,iBACA,eACA,gCACA,YACA,cACA,wBAEA,gCACE,YACA,8BACA,oBAON,gBACE,oBAEA,kBASE,iBACA,mBAGF,wBACE,WAEA,yCACE,mBAIF,0BACE,cACA,oBACA,cAGF,0BACE,gBACA,uBACA,oBACA,qBACA,4BAKN,cACE,aACA,iBACA,gBACA,uBACA,+BACA,kBACA,UACA,gBACA,uBACA,oBACA,mBAGF,MACE,aACA,eACA,cACA,YACA,WACA,UAES,wBACP,yBAMJ,cACE,kBLj7BA,aKm7Be,ELl7Bf,cKk7Be,EAEf,yBACE,iBAIJ,8ELp8BE,YKu8Be,ELt8Bf,aKs8Be,EAIf,2BACE,gBAMJ,aACE,aACA,UACA,eACA,eACA,WACA,gBACA,4BACA,iCACA,UACA,MJpmCc,QIqmCd,OJrmCc,QIsmCd,kBACA,mDACA,kCACA,0CAEA,mBACE,kCACA,0CAGF,eACE,YJjnCY,QIknCZ,kBACA,WAKF,yBACE,KACE,UACA,UAIJ,iBACE,KACE,UACA,UAIJ,4BACE,gBACA,mBACA,cAGF,0BACE,4BACA,oBAEA,iCACE,cACA,eAKF,yBACE,cACA,gBACA,oBACA,mCACA,2BACA,sCACA,iCACA,eACA,SACA,WACA,2BACA,4BACA,oBAcN,kCAGM,yCL7iCJ,YK8iCqB,ML7iCrB,aK6iCqB,MAEf,gBACA,eAKN,QACE,WACA,aAIJ,kCACE,iCACE,eAOF,yBL3jCA,aK6jCiB,EL5jCjB,cK4jCiB,GAKnB,kCAWE,OAJI,WALM,mBAYR,OJruCkB,KIsuClB,iBAIA,2BACE,wBAGF,gCACE,4BAGF,+BACE,kBAIJ,SAzBI,WALM,mBAiCR,6BACA,qCAGF,cAhCI,WALM,mBAyCV,iCAEE,eAGF,uBACE,WAGF,mBAEE,aAGF,gBApDI,2CAuDF,OAGF,oBAEE,aAGF,+CAGE,cAGF,gCACE,iBAGF,MACE,kCAGF,iBACE,aAEA,0BACE,mBAMN,kCAEE,KACE,kBAGF,cACE,YJp0CY,MIw0CZ,0BACE,gBAIJ,cACE,aAGF,OACE,UJ10Ce,MI60CjB,uBACE,UJ30CqB,OI40CrB,iCAIA,QACE,gBAIJ,iCACE,cAIF,aACE,SACA,gBAGF,cACE,iBAKJ,yDACE,oCACE,aACA,eAKJ,yDACE,oBACE,gBAGF,YACE,UACA,gBACA,uBACA,oBACA,oBAKJ,mCACE,eACE,aAGF,iCACE,mCAMJ,mCACE,OACE,kBAGF,cACE,+BAGF,wBACE,UAEA,uCACE,oBAGF,wCACE,mBAGF,kDACE,kBACA,YAIJ,SACE,mBAIJ,mCACE,aACE,+CAIJ,mCAGE,cACE,YJ37CkB,MI87CpB,gBACE,KJ/7CkB,MIk8CpB,OACE,oCAKF,yBACE,UJ/7CqB,OIg8CrB,gCACA,iCAGF,0BAEE,gCAGF,aACE,8CAKF,SACE,MJ19CkB,MI49ClB,0BACE,kBACA,qBACA,oBAIA,wBLr0CJ,aKs0CqB,QLr0CrB,cKq0CqB,QAInB,yBACE,qBACA,sBAEA,4CACE,aJ3+CQ,KI8+CV,sCL51CJ,YK61CqB,qBL51CrB,aK41CqB,sBGp/CvB,WACE,gBAGE,+BACE,qBAGF,0CACE,sBAIJ,iBACE,SACA,gBAEA,gEACE,kCAWF,4BACE,YACA,aAEA,wCAGE,sCACA,kBAGF,sFACE,yCAMA,iDAGE,gBACA,SAQA,2DACE,mBAIJ,0CAGE,cAGF,uDACE,cACA,mBACA,gBACA,uBAOV,YACE,wBACA,4BACA,6BAEA,oBACE,qBAIA,kCACE,sCACA,gBACA,oBACA,wBACA,yBACA,oBACA,SACA,yBAIA,yCACE,kDAMA,qDACE,mDAKN,gCACE,mBAEA,2CACE,4BAOR,kCACE,gEACE,kCAKE,4BACE,wCAEA,uCACE,2BAKE,2DACE,qBAUd,kCAGM,0DACE,cAOR,kCACE,WACE,kBAGF,YACE,iBACA,uBAGE,wCACE,mBAIJ,wBACE,cC7KN,qDACE,UACA,kBACA,qCAUA,gCANA,YACA,aAFc,OAGd,cAH4B,OAiB1B,mBACE,cAKN,mBAGE,gBACA,kDAEA,oCACE,mBAmBF,kCACE,sBACA,yBACA,sBACA,qBACA,iBAEA,+CACE,iBAEA,iDACE,mBASF,sDACE,kBACA,WACA,UAKF,wDACE,qBAGF,oEA3FF,oCA+FE,mEA/FF,+CAmGE,4DAnGF,gDAuGE,4DAvGF,+CA2GE,yDA3GF,+CAgHA,+CAhHA,iDAsHJ,WACE,iBAeE,kCACE,wBAIA,mDACE,cAIJ,+BAGE,oBACA,mBACA,gBACA,WAGF,yDACE,gBAGF,8BACE,8BACA,iBACA,yBACA,yBAGF,kCACE,kCACA,UAGF,iCACE,kCACA,WAIJ,mBACE,iBACA,mBACA,iBACA,mBAIJ,qBAEI,oDAEE,iCAKN,2BACE,KACE,UACA,kBACA,SAGF,GACE,UACA,kBACA,OAIJ,mBACE,KACE,UACA,kBACA,SAGF,GACE,UACA,kBACA,OAIJ,aACE,4CACA,wBACA,gBACA,SACA,+BACA,8BACA,sBAEA,gBACE,gBACA,iBACA,iBACA,eAGE,oCACE,eAGF,qBACE,8BAMJ,0BACE,cACA,mBACA,gBACA,uBAEA,gCACE,2BACA,qBAGF,kCACE,aAIJ,gCACE,sCACA,gBAEA,wCACE,qBACA,UACA,UACA,eACA,iDAIJ,mBACE,oBAQJ,kBTnHA,MADwD,mBAExD,USmHiB,OTlHjB,YSkHyB,IAGzB,oBAIE,8BAGF,iBACE,gBACA,oBACA,gBACA,uBACA,oBACA,qBACA,4BAWJ,eACE,kBAGF,YACE,eAGF,yDACE,8CAGF,aT5JE,MS6J6B,QT5J7B,US4Je,QT3Jf,YS2JwB,IAExB,oBACE,YAIJ,kCACE,kBACE,kCAEA,kCACE,WACA,iBAKN,kCACE,eACE,6BAKJ,kCACE,iBACE,eACA,gBACA,oBACA,sBCzWJ,KACE,mBACA,oBACA,mBACA,iBACA,iBACA,8CACA,uCAEA,UACE,iBACA,eACA,8BCZJ,UACE,sBAIA,oFACE,WACA,MAJe,IAKf,kBACA,WACA,uCAGF,gBACE,cACA,iBACA,kBACA,SACA,iBAEA,wBAGE,YACA,UACA,YAGF,oCAGE,YACA,SAIF,uBACE,WACA,qBACA,kBACA,kBACA,WACA,YACA,YACA,iBACA,gDACA,qCACA,6BACA,UAKF,gBACE,iBACA,iBACA,mBACA,gBACA,uBAEA,+BACE,yCACA,uFAUF,wBAGE,MACA,UACA,cAIJ,8CACE,cAIJ,gBACE,mBACA,qBACA,kBACA,YAEA,sBACE,aACA,kBAGF,oBACE,cACA,4BAIJ,YAEE,mBACA,kBACA,UAEA,kBACE,mBAGF,oBAEE,WACA,qBACA,kBACA,kBACA,UACA,WACA,WACA,YACA,UACA,yCACA,6BACA,UAKN,kCACE,UACE,iBAEA,aACE,kBCxIN,cACE,WAGF,YACE,mBACA,sCAOA,yBAGE,eACA,cAHS,oBAIT,gBAEA,4CACE,4BACA,6BAIJ,cAGE,cAGF,6BACE,iBACA,kBACA,kBAEA,yCACE,yBACA,0BAGF,wCACE,gBAKN,kBACE,aACA,cACA,kBACA,kBACA,yBAEA,oBACE,kBACA,aACA,WACA,gCAIA,0BACE,yCAMN,qBACE,wBACE,6CAIJ,QACE,yBC7EF,MACE,2BACA,2CAKA,qCACE,mBACA,gBAGA,qDACE,gBACA,UACA,WACA,kBACA,cACA,WACA,kBACA,UACA,mBAIF,yCAGE,iBAMN,eACE,iBAGF,oBACE,kBAMA,iEAGE,mBAIJ,kCAIM,qDACE,eAGF,yCACE,mBACA,gBACA","sourcesContent":["/*\n* Mainly scss modules, only imported to `assets/css/main.scss`\n*/\n\n/* ---------- scss placeholder --------- */\n\n%heading {\n color: var(--heading-color);\n font-weight: 400;\n font-family: $font-family-heading;\n}\n\n%section {\n main & {\n margin-top: 2.5rem;\n margin-bottom: 1.25rem;\n\n &:focus {\n outline: none; /* avoid outline in Safari */\n }\n }\n}\n\n%anchor {\n .anchor {\n font-size: 80%;\n }\n\n @media (hover: hover) {\n .anchor {\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.25s ease-in, visibility 0s ease-in 0.25s;\n }\n\n &:hover {\n .anchor {\n visibility: visible;\n opacity: 1;\n transition: opacity 0.25s ease-in, visibility 0s ease-in 0s;\n }\n }\n }\n}\n\n%tag-hover {\n background: var(--tag-hover);\n transition: background 0.35s ease-in-out;\n}\n\n%table-cell {\n padding: 0.4rem 1rem;\n font-size: 95%;\n white-space: nowrap;\n}\n\n%link-hover {\n color: #d2603a !important;\n border-bottom: 1px solid #d2603a;\n text-decoration: none;\n}\n\n%link-color {\n color: var(--link-color);\n}\n\n%link-underline {\n border-bottom: 1px solid var(--link-underline-color);\n}\n\n%clickable-transition {\n transition: all 0.3s ease-in-out;\n}\n\n%no-cursor {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n%no-bottom-border {\n border-bottom: none;\n}\n\n%cursor-pointer {\n cursor: pointer;\n}\n\n%normal-font-style {\n font-style: normal;\n}\n\n%rounded {\n border-radius: $base-radius;\n}\n\n%img-caption {\n + em {\n display: block;\n text-align: center;\n font-style: normal;\n font-size: 80%;\n padding: 0;\n color: #6d6c6c;\n }\n}\n\n%sidebar-links {\n color: var(--sidebar-muted-color);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n%text-clip {\n display: -webkit-box;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n%text-highlight {\n color: var(--text-muted-hightlight-color);\n font-weight: 600;\n}\n\n%text-sm {\n font-size: 0.85rem;\n}\n\n%text-xs {\n font-size: 0.8rem;\n}\n\n%sup-fn-target {\n &:target {\n background-color: var(--footnote-target-bg);\n width: -moz-fit-content;\n width: -webkit-fit-content;\n width: fit-content;\n transition: background-color 1.75s ease-in-out;\n }\n}\n\n/* ---------- scss mixin --------- */\n\n@mixin mt-mb($value) {\n margin-top: $value;\n margin-bottom: $value;\n}\n\n@mixin ml-mr($value) {\n margin-left: $value;\n margin-right: $value;\n}\n\n@mixin pt-pb($val) {\n padding-top: $val;\n padding-bottom: $val;\n}\n\n@mixin pl-pr($val) {\n padding-left: $val;\n padding-right: $val;\n}\n\n@mixin placeholder {\n color: var(--text-muted-color) !important;\n}\n\n@mixin placeholder-focus {\n opacity: 0.6;\n}\n\n@mixin label($font-size: 1rem, $font-weight: 600, $color: var(--label-color)) {\n color: $color;\n font-size: $font-size;\n font-weight: $font-weight;\n}\n\n@mixin align-center {\n position: relative;\n left: 50%;\n transform: translateX(-50%);\n}\n\n@mixin prompt($type, $fa-content, $fa-style: 'solid') {\n &.prompt-#{$type} {\n background-color: var(--prompt-#{$type}-bg);\n\n &::before {\n content: $fa-content;\n color: var(--prompt-#{$type}-icon-color);\n font: var(--fa-font-#{$fa-style});\n }\n }\n}\n","/*\n * The SCSS variables\n */\n\n/* sidebar */\n\n$sidebar-width: 260px !default; /* the basic width */\n$sidebar-width-large: 300px !default; /* screen width: >= 1650px */\n$sb-btn-gap: 0.8rem !default;\n$sb-btn-gap-lg: 1rem !default;\n\n/* other framework sizes */\n\n$topbar-height: 3rem !default;\n$search-max-width: 200px !default;\n$footer-height: 5rem !default;\n$footer-height-large: 6rem !default; /* screen width: < 850px */\n$main-content-max-width: 1250px !default;\n$base-radius: 0.625rem !default;\n$back2top-size: 2.75rem !default;\n\n/* syntax highlight */\n\n$code-font-size: 0.85rem !default;\n$code-header-height: 2.25rem !default;\n$code-dot-size: 0.75rem !default;\n$code-dot-gap: 0.5rem !default;\n$code-icon-width: 1.75rem !default;\n\n/* fonts */\n\n$font-family-base: 'Source Sans Pro', 'Microsoft Yahei', sans-serif !default;\n$font-family-heading: Lato, 'Microsoft Yahei', sans-serif !default;\n","/*\n* The syntax highlight.\n*/\n\n@import 'colors/syntax-light';\n@import 'colors/syntax-dark';\n\nhtml {\n @media (prefers-color-scheme: light) {\n &:not([data-mode]),\n &[data-mode='light'] {\n @include light-syntax;\n }\n\n &[data-mode='dark'] {\n @include dark-syntax;\n }\n }\n\n @media (prefers-color-scheme: dark) {\n &:not([data-mode]),\n &[data-mode='dark'] {\n @include dark-syntax;\n }\n\n &[data-mode='light'] {\n @include light-syntax;\n }\n }\n}\n\n/* -- code snippets -- */\n\n%code-snippet-bg {\n background-color: var(--highlight-bg-color);\n}\n\n%code-snippet-padding {\n padding-left: 1rem;\n padding-right: 1.5rem;\n}\n\n.highlighter-rouge {\n color: var(--highlighter-rouge-color);\n margin-top: 0.5rem;\n margin-bottom: 1.2em; /* Override BS Inline-code style */\n}\n\n.highlight {\n @extend %rounded;\n @extend %code-snippet-bg;\n\n @at-root figure#{&} {\n @extend %code-snippet-bg;\n }\n\n overflow: auto;\n padding-bottom: 0.75rem;\n\n pre {\n margin-bottom: 0;\n font-size: $code-font-size;\n line-height: 1.4rem;\n word-wrap: normal; /* Fixed Safari overflow-x */\n }\n\n table {\n td {\n &:first-child {\n display: inline-block;\n margin-left: 1rem;\n margin-right: 0.75rem;\n }\n\n &:last-child {\n padding-right: 2rem !important;\n }\n\n pre {\n overflow: visible; /* Fixed iOS safari overflow-x */\n word-break: normal; /* Fixed iOS safari linenos code break */\n }\n }\n }\n\n .lineno {\n text-align: right;\n color: var(--highlight-lineno-color);\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n} /* .highlight */\n\ncode {\n -webkit-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n color: var(--code-color);\n\n &.highlighter-rouge {\n font-size: $code-font-size;\n padding: 3px 5px;\n word-break: break-word;\n border-radius: 4px;\n background-color: var(--inline-code-bg);\n }\n\n &.filepath {\n background-color: inherit;\n color: var(--filepath-text-color);\n font-weight: 600;\n padding: 0;\n }\n\n a > &.highlighter-rouge {\n padding-bottom: 0; /* show link's underlinke */\n color: inherit;\n }\n\n a:hover > &.highlighter-rouge {\n border-bottom: none;\n }\n\n blockquote & {\n color: inherit;\n }\n}\n\ntd.rouge-code {\n @extend %code-snippet-padding;\n\n /*\n Prevent some browser extends from\n changing the URL string of code block.\n */\n a {\n color: inherit !important;\n border-bottom: none !important;\n pointer-events: none;\n }\n}\n\ndiv[class^='language-'] {\n @extend %rounded;\n @extend %code-snippet-bg;\n\n box-shadow: var(--language-border-color) 0 0 0 1px;\n\n .content > & {\n @include ml-mr(-1rem);\n\n border-radius: 0;\n }\n\n .highlight {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n/* Hide line numbers for default, console, and terminal code snippets */\ndiv {\n &.nolineno,\n &.language-plaintext,\n &.language-console,\n &.language-terminal {\n td:first-child {\n padding: 0 !important;\n margin-right: 0;\n\n .lineno {\n display: none;\n }\n }\n }\n}\n\n.code-header {\n @extend %no-cursor;\n\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: $code-header-height;\n margin-left: 0.75rem;\n margin-right: 0.25rem;\n\n /* the label block */\n span {\n line-height: $code-header-height;\n\n /* label icon */\n i {\n font-size: 1rem;\n width: $code-icon-width;\n color: var(--code-header-icon-color);\n\n &.small {\n font-size: 70%;\n }\n }\n\n @at-root [file] #{&} > i {\n position: relative;\n top: 1px; /* center the file icon */\n }\n\n /* label text */\n &::after {\n content: attr(data-label-text);\n font-size: 0.85rem;\n font-weight: 600;\n color: var(--code-header-text-color);\n }\n }\n\n /* clipboard */\n button {\n @extend %cursor-pointer;\n @extend %rounded;\n\n border: 1px solid transparent;\n height: $code-header-height;\n width: $code-header-height;\n padding: 0;\n background-color: inherit;\n\n i {\n color: var(--code-header-icon-color);\n }\n\n &[timeout] {\n &:hover {\n border-color: var(--clipboard-checked-color);\n }\n\n i {\n color: var(--clipboard-checked-color);\n }\n }\n\n &:focus {\n outline: none;\n }\n\n &:not([timeout]):hover {\n background-color: rgba(128, 128, 128, 0.37);\n\n i {\n color: white;\n }\n }\n }\n}\n\n@media all and (min-width: 576px) {\n div[class^='language-'] {\n .content > & {\n @include ml-mr(0);\n\n border-radius: $base-radius;\n }\n\n .code-header {\n @include ml-mr(0);\n\n $dot-margin: 1rem;\n\n &::before {\n content: '';\n display: inline-block;\n margin-left: $dot-margin;\n width: $code-dot-size;\n height: $code-dot-size;\n border-radius: 50%;\n background-color: var(--code-header-muted-color);\n box-shadow: ($code-dot-size + $code-dot-gap) 0 0\n var(--code-header-muted-color),\n ($code-dot-size + $code-dot-gap) * 2 0 0\n var(--code-header-muted-color);\n }\n\n span {\n // center the text of label\n margin-left: calc(($dot-margin + $code-dot-size) / 2 * -1);\n }\n }\n }\n}\n","/*\n * The syntax light mode code snippet colors.\n */\n\n@mixin light-syntax {\n /* --- custom light colors --- */\n --language-border-color: #ececec;\n --highlight-bg-color: #f6f8fa;\n --highlighter-rouge-color: #3f596f;\n --highlight-lineno-color: #9e9e9e;\n --inline-code-bg: #f6f6f7;\n --code-color: #3a3a3a;\n --code-header-text-color: #a3a3a3;\n --code-header-muted-color: #e5e5e5;\n --code-header-icon-color: #c9c8c8;\n --clipboard-checked-color: #43c743;\n\n [class^='prompt-'] {\n --inline-code-bg: #fbfafa;\n }\n\n /* --- Syntax highlight theme from `rougify style github` --- */\n\n .highlight table td {\n padding: 5px;\n }\n\n .highlight table pre {\n margin: 0;\n }\n\n .highlight,\n .highlight .w {\n color: #24292f;\n background-color: #f6f8fa;\n }\n\n .highlight .k,\n .highlight .kd,\n .highlight .kn,\n .highlight .kp,\n .highlight .kr,\n .highlight .kt,\n .highlight .kv {\n color: #cf222e;\n }\n\n .highlight .gr {\n color: #f6f8fa;\n }\n\n .highlight .gd {\n color: #82071e;\n background-color: #ffebe9;\n }\n\n .highlight .nb {\n color: #953800;\n }\n\n .highlight .nc {\n color: #953800;\n }\n\n .highlight .no {\n color: #953800;\n }\n\n .highlight .nn {\n color: #953800;\n }\n\n .highlight .sr {\n color: #116329;\n }\n\n .highlight .na {\n color: #116329;\n }\n\n .highlight .nt {\n color: #116329;\n }\n\n .highlight .gi {\n color: #116329;\n background-color: #dafbe1;\n }\n\n .highlight .kc {\n color: #0550ae;\n }\n\n .highlight .l,\n .highlight .ld,\n .highlight .m,\n .highlight .mb,\n .highlight .mf,\n .highlight .mh,\n .highlight .mi,\n .highlight .il,\n .highlight .mo,\n .highlight .mx {\n color: #0550ae;\n }\n\n .highlight .sb {\n color: #0550ae;\n }\n\n .highlight .bp {\n color: #0550ae;\n }\n\n .highlight .ne {\n color: #0550ae;\n }\n\n .highlight .nl {\n color: #0550ae;\n }\n\n .highlight .py {\n color: #0550ae;\n }\n\n .highlight .nv,\n .highlight .vc,\n .highlight .vg,\n .highlight .vi,\n .highlight .vm {\n color: #0550ae;\n }\n\n .highlight .o,\n .highlight .ow {\n color: #0550ae;\n }\n\n .highlight .gh {\n color: #0550ae;\n font-weight: bold;\n }\n\n .highlight .gu {\n color: #0550ae;\n font-weight: bold;\n }\n\n .highlight .s,\n .highlight .sa,\n .highlight .sc,\n .highlight .dl,\n .highlight .sd,\n .highlight .s2,\n .highlight .se,\n .highlight .sh,\n .highlight .sx,\n .highlight .s1,\n .highlight .ss {\n color: #0a3069;\n }\n\n .highlight .nd {\n color: #8250df;\n }\n\n .highlight .nf,\n .highlight .fm {\n color: #8250df;\n }\n\n .highlight .err {\n color: #f6f8fa;\n background-color: #82071e;\n }\n\n .highlight .c,\n .highlight .ch,\n .highlight .cd,\n .highlight .cm,\n .highlight .cp,\n .highlight .cpf,\n .highlight .c1,\n .highlight .cs {\n color: #68717a;\n }\n\n .highlight .gl {\n color: #68717a;\n }\n\n .highlight .gt {\n color: #68717a;\n }\n\n .highlight .ni {\n color: #24292f;\n }\n\n .highlight .si {\n color: #24292f;\n }\n\n .highlight .ge {\n color: #24292f;\n font-style: italic;\n }\n\n .highlight .gs {\n color: #24292f;\n font-weight: bold;\n }\n} /* light-syntax */\n","/*\n * The syntax dark mode styles.\n */\n\n@mixin dark-syntax {\n --language-border-color: #2d2d2d;\n --highlight-bg-color: #151515;\n --highlighter-rouge-color: #c9def1;\n --highlight-lineno-color: #808080;\n --inline-code-bg: #323238;\n --code-color: #b0b0b0;\n --code-header-text-color: #6a6a6a;\n --code-header-muted-color: #353535;\n --code-header-icon-color: #565656;\n --clipboard-checked-color: #2bcc2b;\n --filepath-text-color: #cacaca;\n\n .highlight .gp {\n color: #87939d;\n }\n\n /* --- Syntax highlight theme from `rougify style base16.dark` --- */\n\n .highlight table td {\n padding: 5px;\n }\n\n .highlight table pre {\n margin: 0;\n }\n\n .highlight,\n .highlight .w {\n color: #d0d0d0;\n background-color: #151515;\n }\n\n .highlight .err {\n color: #151515;\n background-color: #ac4142;\n }\n\n .highlight .c,\n .highlight .ch,\n .highlight .cd,\n .highlight .cm,\n .highlight .cpf,\n .highlight .c1,\n .highlight .cs {\n color: #848484;\n }\n\n .highlight .cp {\n color: #f4bf75;\n }\n\n .highlight .nt {\n color: #f4bf75;\n }\n\n .highlight .o,\n .highlight .ow {\n color: #d0d0d0;\n }\n\n .highlight .p,\n .highlight .pi {\n color: #d0d0d0;\n }\n\n .highlight .gi {\n color: #90a959;\n }\n\n .highlight .gd {\n color: #f08a8b;\n background-color: #320000;\n }\n\n .highlight .gh {\n color: #6a9fb5;\n background-color: #151515;\n font-weight: bold;\n }\n\n .highlight .k,\n .highlight .kn,\n .highlight .kp,\n .highlight .kr,\n .highlight .kv {\n color: #aa759f;\n }\n\n .highlight .kc {\n color: #d28445;\n }\n\n .highlight .kt {\n color: #d28445;\n }\n\n .highlight .kd {\n color: #d28445;\n }\n\n .highlight .s,\n .highlight .sb,\n .highlight .sc,\n .highlight .dl,\n .highlight .sd,\n .highlight .s2,\n .highlight .sh,\n .highlight .sx,\n .highlight .s1 {\n color: #90a959;\n }\n\n .highlight .sa {\n color: #aa759f;\n }\n\n .highlight .sr {\n color: #75b5aa;\n }\n\n .highlight .si {\n color: #b76d45;\n }\n\n .highlight .se {\n color: #b76d45;\n }\n\n .highlight .nn {\n color: #f4bf75;\n }\n\n .highlight .nc {\n color: #f4bf75;\n }\n\n .highlight .no {\n color: #f4bf75;\n }\n\n .highlight .na {\n color: #6a9fb5;\n }\n\n .highlight .m,\n .highlight .mb,\n .highlight .mf,\n .highlight .mh,\n .highlight .mi,\n .highlight .il,\n .highlight .mo,\n .highlight .mx {\n color: #90a959;\n }\n\n .highlight .ss {\n color: #90a959;\n }\n}\n","/*\n The common styles\n*/\n\nhtml {\n @media (prefers-color-scheme: light) {\n &:not([data-mode]),\n &[data-mode='light'] {\n @include light-scheme;\n }\n\n &[data-mode='dark'] {\n @include dark-scheme;\n }\n }\n\n @media (prefers-color-scheme: dark) {\n &:not([data-mode]),\n &[data-mode='dark'] {\n @include dark-scheme;\n }\n\n &[data-mode='light'] {\n @include light-scheme;\n }\n }\n\n font-size: 16px;\n}\n\nbody {\n background: var(--main-bg);\n padding: env(safe-area-inset-top) env(safe-area-inset-right)\n env(safe-area-inset-bottom) env(safe-area-inset-left);\n color: var(--text-color);\n -webkit-font-smoothing: antialiased;\n font-family: $font-family-base;\n}\n\n/* --- Typography --- */\n\n@for $i from 1 through 5 {\n h#{$i} {\n @extend %heading;\n\n @if $i > 1 {\n @extend %section;\n @extend %anchor;\n }\n\n @if $i < 5 {\n $factor: 0.18rem;\n\n @if $i == 1 {\n $factor: 0.23rem;\n }\n\n font-size: 1rem + (5 - $i) * $factor;\n } @else {\n font-size: 1rem;\n }\n }\n}\n\na {\n @extend %link-color;\n\n text-decoration: none;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n transition: all 0.35s ease-in-out;\n\n .blur & {\n $blur: 20px;\n\n -webkit-filter: blur($blur);\n filter: blur($blur);\n }\n}\n\nblockquote {\n border-left: 5px solid var(--blockquote-border-color);\n padding-left: 1rem;\n color: var(--blockquote-text-color);\n\n &[class^='prompt-'] {\n border-left: 0;\n position: relative;\n padding: 1rem 1rem 1rem 3rem;\n color: var(--prompt-text-color);\n\n @extend %rounded;\n\n &::before {\n text-align: center;\n width: 3rem;\n position: absolute;\n left: 0.25rem;\n margin-top: 0.4rem;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n }\n\n > p:last-child {\n margin-bottom: 0;\n }\n }\n\n @include prompt('tip', '\\f0eb', 'regular');\n @include prompt('info', '\\f06a');\n @include prompt('warning', '\\f06a');\n @include prompt('danger', '\\f071');\n}\n\nkbd {\n font-family: inherit;\n display: inline-block;\n vertical-align: middle;\n line-height: 1.3rem;\n min-width: 1.75rem;\n text-align: center;\n margin: 0 0.3rem;\n padding-top: 0.1rem;\n color: var(--kbd-text-color);\n background-color: var(--kbd-bg-color);\n border-radius: 0.25rem;\n border: solid 1px var(--kbd-wrap-color);\n box-shadow: inset 0 -2px 0 var(--kbd-wrap-color);\n}\n\nfooter {\n background-color: var(--main-bg);\n height: $footer-height;\n border-top: 1px solid var(--main-border-color);\n\n @extend %text-xs;\n\n a {\n @extend %text-highlight;\n\n &:hover {\n @extend %link-hover;\n }\n }\n\n p {\n text-align: center;\n margin-bottom: 0;\n }\n}\n\n/* fontawesome icons */\ni {\n &.far,\n &.fas {\n @extend %no-cursor;\n }\n}\n\n/* --- Panels --- */\n\n.access {\n top: 2rem;\n transition: top 0.2s ease-in-out;\n margin-top: 3rem;\n margin-bottom: 4rem;\n\n &:only-child {\n position: -webkit-sticky;\n position: sticky;\n }\n\n > section {\n padding-left: 1rem;\n border-left: 1px solid var(--main-border-color);\n\n &:not(:last-child) {\n margin-bottom: 4rem;\n }\n }\n\n .content {\n font-size: 0.9rem;\n }\n}\n\n#panel-wrapper {\n /* the headings */\n .panel-heading {\n font-family: inherit;\n line-height: inherit;\n\n @include label(inherit);\n }\n\n .post-tag {\n line-height: 1.05rem;\n font-size: 0.85rem;\n border-radius: 0.8rem;\n padding: 0.3rem 0.5rem;\n margin: 0 0.35rem 0.5rem 0;\n\n &:hover {\n transition: all 0.3s ease-in;\n }\n }\n}\n\n#access-lastmod {\n a {\n &:hover {\n @extend %link-hover;\n }\n\n @extend %no-bottom-border;\n\n color: inherit;\n }\n}\n\n.footnotes > ol {\n padding-left: 2rem;\n margin-top: 0.5rem;\n\n > li {\n &:not(:last-child) {\n margin-bottom: 0.3rem;\n }\n\n @extend %sup-fn-target;\n\n > p {\n margin-left: 0.25em;\n margin-top: 0;\n margin-bottom: 0;\n }\n }\n}\n\n.footnote {\n @at-root a#{&} {\n @include ml-mr(1px);\n @include pl-pr(2px);\n\n border-bottom-style: none !important;\n }\n}\n\nsup {\n @extend %sup-fn-target;\n}\n\n.reversefootnote {\n @at-root a#{&} {\n font-size: 0.6rem;\n line-height: 1;\n position: relative;\n bottom: 0.25em;\n margin-left: 0.25em;\n border-bottom-style: none !important;\n }\n}\n\n/* --- Begin of Markdown table style --- */\n\n/* it will be created by Liquid */\n.table-wrapper {\n overflow-x: auto;\n margin-bottom: 1.5rem;\n\n > table {\n min-width: 100%;\n overflow-x: auto;\n border-spacing: 0;\n\n thead {\n border-bottom: solid 2px rgba(210, 215, 217, 0.75);\n\n th {\n @extend %table-cell;\n }\n }\n\n tbody {\n tr {\n border-bottom: 1px solid var(--tb-border-color);\n\n &:nth-child(2n) {\n background-color: var(--tb-even-bg);\n }\n\n &:nth-child(2n + 1) {\n background-color: var(--tb-odd-bg);\n }\n\n td {\n @extend %table-cell;\n }\n }\n } /* tbody */\n } /* table */\n}\n\n/* --- post --- */\n\n.preview-img {\n aspect-ratio: 40 / 21;\n width: 100%;\n height: 100%;\n overflow: hidden;\n\n @extend %rounded;\n\n &:not(.no-bg) {\n background: var(--img-bg);\n }\n\n img {\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n\n @extend %rounded;\n }\n}\n\n.post-preview {\n @extend %rounded;\n\n border: 0;\n background: var(--card-bg);\n box-shadow: var(--card-shadow);\n\n &::before {\n @extend %rounded;\n\n content: '';\n width: 100%;\n height: 100%;\n position: absolute;\n background-color: var(--card-hovor-bg);\n opacity: 0;\n transition: opacity 0.35s ease-in-out;\n }\n\n &:hover {\n &::before {\n opacity: 0.3;\n }\n }\n}\n\nmain {\n line-height: 1.75;\n\n h1 {\n margin-top: 2rem;\n margin-bottom: 1.5rem;\n }\n\n p {\n > a.popup {\n &:not(.normal):not(.left):not(.right) {\n @include align-center;\n }\n }\n }\n\n .categories,\n #tags,\n #archives {\n a:not(:hover) {\n @extend %no-bottom-border;\n }\n }\n}\n\n.post-meta {\n @extend %text-sm;\n\n a {\n &:not([class]):hover {\n @extend %link-hover;\n }\n }\n\n em {\n @extend %normal-font-style;\n }\n}\n\n.content {\n font-size: 1.08rem;\n margin-top: 2rem;\n overflow-wrap: break-word;\n\n a {\n &.popup {\n @extend %no-cursor;\n @extend %img-caption;\n @include mt-mb(0.5rem);\n\n cursor: zoom-in;\n }\n\n &:not(.img-link) {\n @extend %link-underline;\n\n &:hover {\n @extend %link-hover;\n }\n }\n }\n\n ol,\n ul {\n &:not([class]),\n &.task-list {\n -webkit-padding-start: 1.75rem;\n padding-inline-start: 1.75rem;\n\n li {\n margin: 0.25rem 0;\n padding-left: 0.25rem;\n }\n\n ol,\n ul {\n -webkit-padding-start: 1.25rem;\n padding-inline-start: 1.25rem;\n margin: 0.5rem 0;\n }\n }\n }\n\n ul.task-list {\n -webkit-padding-start: 1.25rem;\n padding-inline-start: 1.25rem;\n\n li {\n list-style-type: none;\n padding-left: 0;\n\n /* checkbox icon */\n > i {\n width: 2rem;\n margin-left: -1.25rem;\n color: var(--checkbox-color);\n\n &.checked {\n color: var(--checkbox-checked-color);\n }\n }\n\n ul {\n -webkit-padding-start: 1.75rem;\n padding-inline-start: 1.75rem;\n }\n }\n\n input[type='checkbox'] {\n margin: 0 0.5rem 0.2rem -1.3rem;\n vertical-align: middle;\n }\n } /* ul */\n\n dl > dd {\n margin-left: 1rem;\n }\n\n ::marker {\n color: var(--text-muted-color);\n }\n} /* .content */\n\n.tag:hover {\n @extend %tag-hover;\n}\n\n.post-tag {\n display: inline-block;\n min-width: 2rem;\n text-align: center;\n border-radius: 0.5rem;\n border: 1px solid var(--btn-border-color);\n padding: 0 0.4rem;\n color: var(--text-muted-color);\n line-height: 1.3rem;\n\n &:not(:last-child) {\n margin-right: 0.2rem;\n }\n}\n\n.rounded-10 {\n border-radius: 10px !important;\n}\n\n.img-link {\n color: transparent;\n display: inline-flex;\n}\n\n.shimmer {\n overflow: hidden;\n position: relative;\n background: var(--img-bg);\n\n &::before {\n content: '';\n position: absolute;\n background: var(--shimmer-bg);\n height: 100%;\n width: 100%;\n -webkit-animation: shimmer 1.3s infinite;\n animation: shimmer 1.3s infinite;\n }\n\n @-webkit-keyframes shimmer {\n 0% {\n transform: translateX(-100%);\n }\n\n 100% {\n transform: translateX(100%);\n }\n }\n\n @keyframes shimmer {\n 0% {\n transform: translateX(-100%);\n }\n\n 100% {\n transform: translateX(100%);\n }\n }\n}\n\n.embed-video {\n width: 100%;\n height: 100%;\n margin-bottom: 1rem;\n\n @extend %rounded;\n\n &.youtube {\n aspect-ratio: 16 / 9;\n }\n\n &.twitch {\n aspect-ratio: 310 / 189;\n }\n}\n\n/* --- buttons --- */\n.btn-lang {\n border: 1px solid !important;\n padding: 1px 3px;\n border-radius: 3px;\n color: var(--link-color);\n\n &:focus {\n box-shadow: none;\n }\n}\n\n/* --- Effects classes --- */\n\n.loaded {\n display: block !important;\n\n @at-root .d-flex#{&} {\n display: flex !important;\n }\n}\n\n.unloaded {\n display: none !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.hidden {\n visibility: hidden !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.btn-box-shadow {\n box-shadow: var(--card-shadow);\n}\n\n/* overwrite bootstrap muted */\n.text-muted {\n color: var(--text-muted-color) !important;\n}\n\n/* Overwrite bootstrap tooltip */\n.tooltip-inner {\n font-size: 0.7rem;\n max-width: 220px;\n text-align: left;\n}\n\n/* Overwrite bootstrap outline button */\n.btn.btn-outline-primary {\n &:not(.disabled):hover {\n border-color: #007bff !important;\n }\n}\n\n.disabled {\n color: rgb(206, 196, 196);\n pointer-events: auto;\n cursor: not-allowed;\n}\n\n.hide-border-bottom {\n border-bottom: none !important;\n}\n\n.input-focus {\n box-shadow: none;\n border-color: var(--input-focus-border-color) !important;\n background: center !important;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\n}\n\n.left {\n float: left;\n margin: 0.75rem 1rem 1rem 0 !important;\n}\n\n.right {\n float: right;\n margin: 0.75rem 0 1rem 1rem !important;\n}\n\n/* --- Overriding --- */\n\n/* magnific-popup */\n\nfigure .mfp-title {\n text-align: center;\n padding-right: 0;\n margin-top: 0.5rem;\n}\n\n.mfp-img {\n transition: none;\n}\n\n/* mermaid */\n.mermaid {\n text-align: center;\n}\n\n/* MathJax */\nmjx-container {\n overflow-y: hidden;\n min-width: auto !important;\n}\n\n/* --- sidebar layout --- */\n\n$sidebar-display: 'sidebar-display';\n$btn-border-width: 3px;\n$btn-mb: 0.5rem;\n\n#sidebar {\n @include pl-pr(0);\n\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n overflow-y: auto;\n width: $sidebar-width;\n z-index: 99;\n background: var(--sidebar-bg);\n border-right: 1px solid var(--sidebar-border-color);\n\n /* Hide scrollbar for Chrome, Safari and Opera */\n &::-webkit-scrollbar {\n display: none;\n }\n\n /* Hide scrollbar for IE, Edge and Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n\n %sidebar-link-hover {\n &:hover {\n color: var(--sidebar-active-color);\n }\n }\n\n a {\n @extend %sidebar-links;\n }\n\n #avatar {\n display: block;\n width: 7rem;\n height: 7rem;\n overflow: hidden;\n box-shadow: var(--avatar-border-color) 0 0 0 2px;\n transform: translateZ(0); /* fixed the zoom in Safari */\n\n img {\n transition: transform 0.5s;\n\n &:hover {\n transform: scale(1.2);\n }\n }\n }\n\n .profile-wrapper {\n @include mt-mb(2.5rem);\n @extend %clickable-transition;\n\n padding-left: 2.5rem;\n padding-right: 1.25rem;\n width: 100%;\n }\n\n .site-title {\n font-family: inherit;\n font-weight: 900;\n font-size: 1.75rem;\n line-height: 1.2;\n letter-spacing: 0.25px;\n margin-top: 1.25rem;\n margin-bottom: 0.5rem;\n\n a {\n @extend %clickable-transition;\n @extend %sidebar-link-hover;\n\n color: var(--site-title-color);\n }\n }\n\n .site-subtitle {\n font-size: 95%;\n color: var(--site-subtitle-color);\n margin-top: 0.25rem;\n word-spacing: 1px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n ul {\n margin-bottom: 2rem;\n\n li.nav-item {\n opacity: 0.9;\n width: 100%;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n\n a.nav-link {\n @include pt-pb(0.6rem);\n\n display: flex;\n align-items: center;\n border-radius: 0.75rem;\n font-weight: 600;\n\n &:hover {\n background-color: var(--sidebar-hover-bg);\n }\n\n i {\n font-size: 95%;\n opacity: 0.8;\n margin-right: 1.5rem;\n }\n\n span {\n font-size: 90%;\n letter-spacing: 0.2px;\n }\n }\n\n &.active {\n .nav-link {\n color: var(--sidebar-active-color);\n background-color: var(--sidebar-hover-bg);\n\n span {\n opacity: 1;\n }\n }\n }\n\n &:not(:first-child) {\n margin-top: 0.25rem;\n }\n }\n }\n\n .sidebar-bottom {\n padding-left: 2rem;\n padding-right: 1rem;\n margin-bottom: 1.5rem;\n\n $btn-size: 1.75rem;\n\n %button {\n width: $btn-size;\n height: $btn-size;\n margin-bottom: $btn-mb; // multi line gap\n border-radius: 50%;\n color: var(--sidebar-btn-color);\n background-color: var(--sidebar-btn-bg);\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: var(--sidebar-border-color) 0 0 0 1px;\n\n &:hover {\n background-color: var(--sidebar-hover-bg);\n }\n }\n\n a {\n @extend %button;\n @extend %sidebar-link-hover;\n @extend %clickable-transition;\n\n &:not(:last-child) {\n margin-right: $sb-btn-gap;\n }\n }\n\n i {\n line-height: $btn-size;\n }\n\n .mode-toggle {\n padding: 0;\n border: 0;\n\n @extend %button;\n @extend %sidebar-links;\n @extend %sidebar-link-hover;\n }\n\n .icon-border {\n @extend %no-cursor;\n @include ml-mr(calc(($sb-btn-gap - $btn-border-width) / 2));\n\n background-color: var(--sidebar-btn-color);\n content: '';\n width: $btn-border-width;\n height: $btn-border-width;\n border-radius: 50%;\n margin-bottom: $btn-mb;\n }\n } /* .sidebar-bottom */\n} /* #sidebar */\n\n@media (hover: hover) {\n #sidebar ul > li:last-child::after {\n transition: top 0.5s ease;\n }\n\n .nav-link {\n transition: background-color 0.3s ease-in-out;\n }\n\n .post-preview {\n transition: background-color 0.35s ease-in-out;\n }\n}\n\n#search-result-wrapper {\n display: none;\n height: 100%;\n width: 100%;\n overflow: auto;\n\n .content {\n margin-top: 2rem;\n }\n}\n\n/* --- top-bar --- */\n\n#topbar-wrapper {\n height: $topbar-height;\n background-color: var(--topbar-bg);\n}\n\n#topbar {\n button i {\n color: #999999;\n }\n\n #breadcrumb {\n font-size: 1rem;\n color: var(--text-muted-color);\n padding-left: 0.5rem;\n\n a:hover {\n @extend %link-hover;\n }\n\n span {\n &:not(:last-child) {\n &::after {\n content: '›';\n padding: 0 0.3rem;\n }\n }\n }\n }\n} /* #topbar */\n\n::-webkit-input-placeholder {\n @include placeholder;\n}\n\n::-moz-placeholder {\n @include placeholder;\n}\n\n:-ms-input-placeholder {\n @include placeholder;\n}\n\n::-ms-input-placeholder {\n @include placeholder;\n}\n\n::placeholder {\n @include placeholder;\n}\n\n:focus::-webkit-input-placeholder {\n @include placeholder-focus;\n}\n\n:focus::-moz-placeholder {\n @include placeholder-focus;\n}\n\n:focus:-ms-input-placeholder {\n @include placeholder-focus;\n}\n\n:focus::-ms-input-placeholder {\n @include placeholder-focus;\n}\n\n:focus::placeholder {\n @include placeholder-focus;\n}\n\nsearch {\n display: flex;\n width: 100%;\n border-radius: 1rem;\n border: 1px solid var(--search-border-color);\n background: var(--main-bg);\n padding: 0 0.5rem;\n\n i {\n z-index: 2;\n font-size: 0.9rem;\n color: var(--search-icon-color);\n }\n}\n\n#sidebar-trigger,\n#search-trigger {\n display: none;\n}\n\n/* 'Cancel' link */\n#search-cancel {\n color: var(--link-color);\n display: none;\n white-space: nowrap;\n\n @extend %cursor-pointer;\n}\n\n#search-input {\n background: center;\n border: 0;\n border-radius: 0;\n padding: 0.18rem 0.3rem;\n color: var(--text-color);\n height: auto;\n\n &:focus {\n box-shadow: none;\n }\n}\n\n#search-hints {\n padding: 0 1rem;\n\n h4 {\n margin-bottom: 1.5rem;\n }\n\n .post-tag {\n display: inline-block;\n line-height: 1rem;\n font-size: 1rem;\n background: var(--search-tag-bg);\n border: none;\n padding: 0.5rem;\n margin: 0 1.25rem 1rem 0;\n\n &::before {\n content: '#';\n color: var(--text-muted-color);\n padding-right: 0.2rem;\n }\n\n @extend %link-color;\n }\n}\n\n#search-results {\n padding-bottom: 3rem;\n\n a {\n &:hover {\n @extend %link-hover;\n }\n\n @extend %link-color;\n @extend %no-bottom-border;\n @extend %heading;\n\n font-size: 1.4rem;\n line-height: 2.5rem;\n }\n\n > article {\n width: 100%;\n\n &:not(:last-child) {\n margin-bottom: 1rem;\n }\n\n /* icons */\n i {\n color: #818182;\n margin-right: 0.15rem;\n font-size: 80%;\n }\n\n > p {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n }\n }\n} /* #search-results */\n\n#topbar-title {\n display: none;\n font-size: 1.1rem;\n font-weight: 600;\n font-family: sans-serif;\n color: var(--topbar-text-color);\n text-align: center;\n width: 70%;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n white-space: nowrap;\n}\n\n#mask {\n display: none;\n position: fixed;\n inset: 0 0 0 0;\n height: 100%;\n width: 100%;\n z-index: 1;\n\n @at-root [#{$sidebar-display}] & {\n display: block !important;\n }\n}\n\n/* --- basic wrappers --- */\n\n#main-wrapper {\n position: relative;\n\n @include pl-pr(0);\n\n > .container {\n min-height: 100vh;\n }\n}\n\n#topbar-wrapper.row,\n#main-wrapper > .container > .row,\n#search-result-wrapper > .row {\n @include ml-mr(0);\n}\n\n#tail-wrapper {\n > :not(script) {\n margin-top: 3rem;\n }\n}\n\n/* --- button back-to-top --- */\n\n#back-to-top {\n display: none;\n z-index: 1;\n cursor: pointer;\n position: fixed;\n right: 1rem;\n bottom: calc($footer-height-large - $back2top-size / 2);\n background: var(--button-bg);\n color: var(--btn-backtotop-color);\n padding: 0;\n width: $back2top-size;\n height: $back2top-size;\n border-radius: 50%;\n border: 1px solid var(--btn-backtotop-border-color);\n transition: transform 0.2s ease-out;\n -webkit-transition: transform 0.2s ease-out;\n\n &:hover {\n transform: translate3d(0, -5px, 0);\n -webkit-transform: translate3d(0, -5px, 0);\n }\n\n i {\n line-height: $back2top-size;\n position: relative;\n bottom: 2px;\n }\n}\n\n#notification {\n @-webkit-keyframes popup {\n from {\n opacity: 0;\n bottom: 0;\n }\n }\n\n @keyframes popup {\n from {\n opacity: 0;\n bottom: 0;\n }\n }\n\n .toast-header {\n background: none;\n border-bottom: none;\n color: inherit;\n }\n\n .toast-body {\n font-family: Lato, sans-serif;\n line-height: 1.25rem;\n\n button {\n font-size: 90%;\n min-width: 4rem;\n }\n }\n\n &.toast {\n &.show {\n display: block;\n min-width: 20rem;\n border-radius: 0.5rem;\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n background-color: rgba(255, 255, 255, 0.5);\n color: #1b1b1eba;\n position: fixed;\n left: 50%;\n bottom: 20%;\n transform: translateX(-50%);\n -webkit-animation: popup 0.8s;\n animation: popup 0.8s;\n }\n }\n}\n\n/*\n Responsive Design:\n\n {sidebar, content, panel} >= 1200px screen width\n {sidebar, content} >= 850px screen width\n {content} <= 849px screen width\n\n*/\n\n@media all and (max-width: 576px) {\n main {\n .content {\n > blockquote[class^='prompt-'] {\n @include ml-mr(-1rem);\n\n border-radius: 0;\n max-width: none;\n }\n }\n }\n\n #avatar {\n width: 5rem;\n height: 5rem;\n }\n}\n\n@media all and (max-width: 768px) {\n %full-width {\n max-width: 100%;\n }\n\n #topbar {\n @extend %full-width;\n }\n\n #main-wrapper > .container {\n @extend %full-width;\n @include pl-pr(0);\n }\n}\n\n/* hide sidebar and panel */\n@media all and (max-width: 849px) {\n @mixin slide($append: null) {\n $basic: transform 0.4s ease;\n\n @if $append {\n transition: $basic, $append;\n } @else {\n transition: $basic;\n }\n }\n\n footer {\n @include slide;\n\n height: $footer-height-large;\n padding: 1.5rem 0;\n }\n\n [#{$sidebar-display}] {\n #sidebar {\n transform: translateX(0);\n }\n\n #main-wrapper {\n transform: translateX($sidebar-width);\n }\n\n #back-to-top {\n visibility: hidden;\n }\n }\n\n #sidebar {\n @include slide;\n\n transform: translateX(-$sidebar-width); /* hide */\n -webkit-transform: translateX(-$sidebar-width);\n }\n\n #main-wrapper {\n @include slide;\n }\n\n #topbar,\n #main-wrapper > .container {\n max-width: 100%;\n }\n\n #search-result-wrapper {\n width: 100%;\n }\n\n #breadcrumb,\n search {\n display: none;\n }\n\n #topbar-wrapper {\n @include slide(top 0.2s ease);\n\n left: 0;\n }\n\n main,\n #panel-wrapper {\n margin-top: 0;\n }\n\n #topbar-title,\n #sidebar-trigger,\n #search-trigger {\n display: block;\n }\n\n #search-result-wrapper .content {\n letter-spacing: 0;\n }\n\n #tags {\n justify-content: center !important;\n }\n\n h1.dynamic-title {\n display: none;\n\n ~ .content {\n margin-top: 2.5rem;\n }\n }\n} /* max-width: 849px */\n\n/* Sidebar is visible */\n@media all and (min-width: 850px) {\n /* Solved jumping scrollbar */\n html {\n overflow-y: scroll;\n }\n\n #main-wrapper {\n margin-left: $sidebar-width;\n }\n\n #sidebar {\n .profile-wrapper {\n margin-top: 3rem;\n }\n }\n\n #search-hints {\n display: none;\n }\n\n search {\n max-width: $search-max-width;\n }\n\n #search-result-wrapper {\n max-width: $main-content-max-width;\n justify-content: start !important;\n }\n\n main {\n h1 {\n margin-top: 3rem;\n }\n }\n\n div.content .table-wrapper > table {\n min-width: 70%;\n }\n\n /* button 'back-to-Top' position */\n #back-to-top {\n right: 5%;\n bottom: calc($footer-height - $back2top-size / 2);\n }\n\n #topbar-title {\n text-align: left;\n }\n}\n\n/* Pad horizontal */\n@media all and (min-width: 992px) and (max-width: 1199px) {\n #main-wrapper > .container .col-lg-11 {\n flex: 0 0 96%;\n max-width: 96%;\n }\n}\n\n/* Compact icons in sidebar & panel hidden */\n@media all and (min-width: 850px) and (max-width: 1199px) {\n #search-results > div {\n max-width: 700px;\n }\n\n #breadcrumb {\n width: 65%;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n white-space: nowrap;\n }\n}\n\n/* panel hidden */\n@media all and (max-width: 1199px) {\n #panel-wrapper {\n display: none;\n }\n\n #main-wrapper > .container > div.row {\n justify-content: center !important;\n }\n}\n\n/* --- desktop mode, both sidebar and panel are visible --- */\n\n@media all and (min-width: 1200px) {\n search {\n margin-right: 4rem;\n }\n\n #search-input {\n transition: all 0.3s ease-in-out;\n }\n\n #search-results > article {\n width: 45%;\n\n &:nth-child(odd) {\n margin-right: 1.5rem;\n }\n\n &:nth-child(even) {\n margin-left: 1.5rem;\n }\n\n &:last-child:nth-child(odd) {\n position: relative;\n right: 24.3%;\n }\n }\n\n .content {\n font-size: 1.03rem;\n }\n}\n\n@media all and (min-width: 1400px) {\n #back-to-top {\n right: calc((100vw - $sidebar-width - 1140px) / 2 + 3rem);\n }\n}\n\n@media all and (min-width: 1650px) {\n $icon-gap: 1rem;\n\n #main-wrapper {\n margin-left: $sidebar-width-large;\n }\n\n #topbar-wrapper {\n left: $sidebar-width-large;\n }\n\n search {\n margin-right: calc(\n $main-content-max-width / 4 - $search-max-width - 0.75rem\n );\n }\n\n #main-wrapper > .container {\n max-width: $main-content-max-width;\n padding-left: 1.75rem !important;\n padding-right: 1.75rem !important;\n }\n\n main.col-12,\n #tail-wrapper {\n padding-right: 4.5rem !important;\n }\n\n #back-to-top {\n right: calc(\n (100vw - $sidebar-width-large - $main-content-max-width) / 2 + 2rem\n );\n }\n\n #sidebar {\n width: $sidebar-width-large;\n\n .profile-wrapper {\n margin-top: 3.5rem;\n margin-bottom: 2.5rem;\n padding-left: 3.5rem;\n }\n\n ul {\n li.nav-item {\n @include pl-pr(2.75rem);\n }\n }\n\n .sidebar-bottom {\n padding-left: 2.75rem;\n margin-bottom: 1.75rem;\n\n a:not(:last-child) {\n margin-right: $sb-btn-gap-lg;\n }\n\n .icon-border {\n @include ml-mr(calc(($sb-btn-gap-lg - $btn-border-width) / 2));\n }\n }\n }\n} /* min-width: 1650px */\n","/*\n * The syntax light mode typography colors\n */\n\n@mixin light-scheme {\n /* Framework color */\n --main-bg: white;\n --mask-bg: #c1c3c5;\n --main-border-color: #f3f3f3;\n\n /* Common color */\n --text-color: #34343c;\n --text-muted-color: #757575;\n --text-muted-hightlight-color: inherit;\n --heading-color: #2a2a2a;\n --label-color: #585858;\n --blockquote-border-color: #eeeeee;\n --blockquote-text-color: #757575;\n --link-color: #0056b2;\n --link-underline-color: #dee2e6;\n --button-bg: #ffffff;\n --btn-border-color: #e9ecef;\n --btn-backtotop-color: #686868;\n --btn-backtotop-border-color: #f1f1f1;\n --btn-box-shadow: #eaeaea;\n --checkbox-color: #c5c5c5;\n --checkbox-checked-color: #07a8f7;\n --img-bg: radial-gradient(\n circle,\n rgb(255, 255, 255) 0%,\n rgb(239, 239, 239) 100%\n );\n --shimmer-bg: linear-gradient(\n 90deg,\n rgba(250, 250, 250, 0) 0%,\n rgba(232, 230, 230, 1) 50%,\n rgba(250, 250, 250, 0) 100%\n );\n\n /* Sidebar */\n --site-title-color: rgb(113, 113, 113);\n --site-subtitle-color: #717171;\n --sidebar-bg: #f6f8fa;\n --sidebar-border-color: #efefef;\n --sidebar-muted-color: #545454;\n --sidebar-active-color: #1d1d1d;\n --sidebar-hover-bg: rgb(223, 233, 241, 0.64);\n --sidebar-btn-bg: white;\n --sidebar-btn-color: #8e8e8e;\n --avatar-border-color: white;\n\n /* Topbar */\n --topbar-bg: rgb(255, 255, 255, 0.7);\n --topbar-text-color: rgb(78, 78, 78);\n --search-border-color: rgb(240, 240, 240);\n --search-icon-color: #c2c6cc;\n --input-focus-border-color: #b8b8b8;\n\n /* Home page */\n --post-list-text-color: dimgray;\n --btn-patinator-text-color: #555555;\n --btn-paginator-hover-color: var(--sidebar-bg);\n\n /* Posts */\n --toc-highlight: #0550ae;\n --btn-share-hover-color: var(--link-color);\n --card-bg: white;\n --card-hovor-bg: #e2e2e2;\n --card-shadow: rgb(104, 104, 104, 0.05) 0 2px 6px 0,\n rgba(211, 209, 209, 0.15) 0 0 0 1px;\n --footnote-target-bg: lightcyan;\n --tb-odd-bg: #fbfcfd;\n --tb-border-color: #eaeaea;\n --dash-color: silver;\n --kbd-wrap-color: #bdbdbd;\n --kbd-text-color: var(--text-color);\n --kbd-bg-color: white;\n --prompt-text-color: rgb(46, 46, 46, 0.77);\n --prompt-tip-bg: rgb(123, 247, 144, 0.2);\n --prompt-tip-icon-color: #03b303;\n --prompt-info-bg: #e1f5fe;\n --prompt-info-icon-color: #0070cb;\n --prompt-warning-bg: rgb(255, 243, 205);\n --prompt-warning-icon-color: #ef9c03;\n --prompt-danger-bg: rgb(248, 215, 218, 0.56);\n --prompt-danger-icon-color: #df3c30;\n\n /* Tags */\n --tag-border: #dee2e6;\n --tag-shadow: var(--btn-border-color);\n --tag-hover: rgb(222, 226, 230);\n --search-tag-bg: #f8f9fa;\n\n [class^='prompt-'] {\n --link-underline-color: rgb(219, 216, 216);\n }\n\n .dark {\n display: none;\n }\n\n /* Categories */\n --categories-border: rgba(0, 0, 0, 0.125);\n --categories-hover-bg: var(--btn-border-color);\n --categories-icon-hover-color: darkslategray;\n\n /* Archive */\n --timeline-color: rgba(0, 0, 0, 0.075);\n --timeline-node-bg: #c2c6cc;\n --timeline-year-dot-color: #ffffff;\n} /* light-scheme */\n","/*\n * The main dark mode styles\n */\n\n@mixin dark-scheme {\n /* Framework color */\n --main-bg: rgb(27, 27, 30);\n --mask-bg: rgb(68, 69, 70);\n --main-border-color: rgb(44, 45, 45);\n\n /* Common color */\n --text-color: rgb(175, 176, 177);\n --text-muted-color: #868686;\n --text-muted-hightlight-color: #aeaeae;\n --heading-color: #cccccc;\n --label-color: #a7a7a7;\n --blockquote-border-color: rgb(66, 66, 66);\n --blockquote-text-color: #868686;\n --link-color: rgb(138, 180, 248);\n --link-underline-color: rgb(82, 108, 150);\n --button-bg: #1e1e1e;\n --btn-border-color: #2e2f31;\n --btn-backtotop-color: var(--text-color);\n --btn-backtotop-border-color: #212122;\n --btn-box-shadow: var(--main-bg);\n --card-header-bg: #292929;\n --checkbox-color: rgb(118, 120, 121);\n --checkbox-checked-color: var(--link-color);\n --img-bg: radial-gradient(circle, rgb(22, 22, 24) 0%, rgb(32, 32, 32) 100%);\n --shimmer-bg: linear-gradient(\n 90deg,\n rgba(255, 255, 255, 0) 0%,\n rgba(58, 55, 55, 0.4) 50%,\n rgba(255, 255, 255, 0) 100%\n );\n\n /* Sidebar */\n --site-title-color: #717070;\n --site-subtitle-color: #868686;\n --sidebar-bg: #1e1e1e;\n --sidebar-border-color: #292929;\n --sidebar-muted-color: #868686;\n --sidebar-active-color: rgb(255, 255, 255, 0.95);\n --sidebar-hover-bg: #262626;\n --sidebar-btn-bg: #232328;\n --sidebar-btn-color: #787878;\n --avatar-border-color: rgb(206, 206, 206, 0.9);\n\n /* Topbar */\n --topbar-bg: rgb(27, 27, 30, 0.64);\n --topbar-text-color: var(--text-color);\n --search-border-color: rgb(55, 55, 55);\n --search-icon-color: rgb(100, 102, 105);\n --input-focus-border-color: rgb(112, 114, 115);\n\n /* Home page */\n --post-list-text-color: rgb(175, 176, 177);\n --btn-patinator-text-color: var(--text-color);\n --btn-paginator-hover-color: #2e2e2e;\n\n /* Posts */\n --toc-highlight: rgb(116, 178, 243);\n --tag-hover: rgb(43, 56, 62);\n --tb-odd-bg: #252526; /* odd rows of the posts' table */\n --tb-even-bg: rgb(31, 31, 34); /* even rows of the posts' table */\n --tb-border-color: var(--tb-odd-bg);\n --footnote-target-bg: rgb(63, 81, 181);\n --btn-share-color: #6c757d;\n --btn-share-hover-color: #bfc1ca;\n --card-bg: #1e1e1e;\n --card-hovor-bg: #464d51;\n --card-shadow: rgb(21, 21, 21, 0.72) 0 6px 18px 0,\n rgb(137, 135, 135, 0.24) 0 0 0 1px;\n --kbd-wrap-color: #6a6a6a;\n --kbd-text-color: #d3d3d3;\n --kbd-bg-color: #242424;\n --prompt-text-color: rgb(216, 212, 212, 0.75);\n --prompt-tip-bg: rgb(22, 60, 36, 0.64);\n --prompt-tip-icon-color: rgb(15, 164, 15, 0.81);\n --prompt-info-bg: rgb(7, 59, 104, 0.8);\n --prompt-info-icon-color: #0075d1;\n --prompt-warning-bg: rgb(90, 69, 3, 0.88);\n --prompt-warning-icon-color: rgb(255, 165, 0, 0.8);\n --prompt-danger-bg: rgb(86, 28, 8, 0.8);\n --prompt-danger-icon-color: #cd0202;\n\n /* tags */\n --tag-border: rgb(59, 79, 88);\n --tag-shadow: rgb(32, 33, 33);\n --dash-color: rgb(63, 65, 68);\n --search-tag-bg: #292828;\n\n /* categories */\n --categories-border: rgb(64, 66, 69, 0.5);\n --categories-hover-bg: rgb(73, 75, 76);\n --categories-icon-hover-color: white;\n\n /* archives */\n --timeline-node-bg: rgb(150, 152, 156);\n --timeline-color: rgb(63, 65, 68);\n --timeline-year-dot-color: var(--timeline-color);\n\n .light {\n display: none;\n }\n\n hr {\n border-color: var(--main-border-color);\n }\n\n /* categories */\n .categories.card,\n .list-group-item {\n background-color: var(--card-bg);\n }\n\n .categories {\n .card-header {\n background-color: var(--card-header-bg);\n }\n\n .list-group-item {\n border-left: none;\n border-right: none;\n padding-left: 2rem;\n border-color: var(--categories-border);\n\n &:last-child {\n border-bottom-color: var(--card-bg);\n }\n }\n }\n\n #archives li:nth-child(odd) {\n background-image: linear-gradient(\n to left,\n rgb(26, 26, 30),\n rgb(39, 39, 45),\n rgb(39, 39, 45),\n rgb(39, 39, 45),\n rgb(26, 26, 30)\n );\n }\n\n color-scheme: dark;\n\n /* stylelint-disable-next-line selector-id-pattern */\n #disqus_thread {\n color-scheme: none;\n }\n} /* dark-scheme */\n","/*\n Style for Homepage\n*/\n\n#post-list {\n margin-top: 2rem;\n\n .card-wrapper {\n &:hover {\n text-decoration: none;\n }\n\n &:not(:last-child) {\n margin-bottom: 1.25rem;\n }\n }\n\n .card {\n border: 0;\n background: none;\n\n %img-radius {\n border-radius: $base-radius $base-radius 0 0;\n }\n\n .preview-img {\n @extend %img-radius;\n\n img {\n @extend %img-radius;\n }\n }\n\n .card-body {\n height: 100%;\n padding: 1rem;\n\n .card-title {\n @extend %text-clip;\n\n color: var(--heading-color) !important;\n font-size: 1.25rem;\n }\n\n %muted {\n color: var(--text-muted-color) !important;\n }\n\n .card-text.content {\n @extend %muted;\n\n p {\n @extend %text-clip;\n\n line-height: 1.5;\n margin: 0;\n }\n }\n\n .post-meta {\n @extend %muted;\n\n i {\n &:not(:first-child) {\n margin-left: 1.5rem;\n }\n }\n\n em {\n @extend %normal-font-style;\n\n color: inherit;\n }\n\n > div:first-child {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n} /* #post-list */\n\n.pagination {\n color: var(--text-color);\n font-family: Lato, sans-serif;\n justify-content: space-evenly;\n\n a:hover {\n text-decoration: none;\n }\n\n .page-item {\n .page-link {\n color: var(--btn-patinator-text-color);\n padding: 0 0.6rem;\n display: -webkit-box;\n -webkit-box-pack: center;\n -webkit-box-align: center;\n border-radius: 0.5rem;\n border: 0;\n background-color: inherit;\n }\n\n &.active {\n .page-link {\n background-color: var(--btn-paginator-hover-color);\n }\n }\n\n &:not(.active) {\n .page-link {\n &:hover {\n box-shadow: inset var(--btn-border-color) 0 0 0 1px;\n }\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n\n .page-link {\n color: rgba(108, 117, 125, 0.57);\n }\n }\n } /* .page-item */\n} /* .pagination */\n\n/* Tablet */\n@media all and (min-width: 768px) {\n %img-radius {\n border-radius: 0 $base-radius $base-radius 0;\n }\n\n #post-list {\n .card {\n .card-body {\n padding: 1.75rem 1.75rem 1.25rem 1.75rem;\n\n .card-text {\n display: inherit !important;\n }\n\n .post-meta {\n i {\n &:not(:first-child) {\n margin-left: 1.75rem;\n }\n }\n }\n }\n }\n }\n}\n\n/* Hide SideBar and TOC */\n@media all and (max-width: 830px) {\n .pagination {\n .page-item {\n &:not(:first-child):not(:last-child) {\n display: none;\n }\n }\n }\n}\n\n/* Sidebar is visible */\n@media all and (min-width: 831px) {\n #post-list {\n margin-top: 2.5rem;\n }\n\n .pagination {\n font-size: 0.85rem;\n justify-content: center;\n\n .page-item {\n &:not(:last-child) {\n margin-right: 0.7rem;\n }\n }\n\n .page-index {\n display: none;\n }\n } /* .pagination */\n}\n","/*\n Post-specific style\n*/\n\n@mixin btn-sharing-color($light-color, $important: false) {\n @if $important {\n color: var(--btn-share-color, $light-color) !important;\n } @else {\n color: var(--btn-share-color, $light-color);\n }\n}\n\n%btn-post-nav {\n width: 50%;\n position: relative;\n border-color: var(--btn-border-color);\n}\n\n@mixin dot($pl: 0.25rem, $pr: 0.25rem) {\n content: '\\2022';\n padding-left: $pl;\n padding-right: $pr;\n}\n\nh1 + .post-meta {\n > span + span::before {\n @include dot;\n }\n\n em,\n time {\n @extend %text-highlight;\n }\n\n em {\n a {\n color: inherit;\n }\n }\n}\n\n.post-tail-wrapper {\n @extend %text-sm;\n\n margin-top: 6rem;\n border-bottom: 1px double var(--main-border-color);\n\n .license-wrapper {\n line-height: 1.2rem;\n\n > a {\n @extend %text-highlight;\n\n &:hover {\n @extend %link-hover;\n }\n }\n\n span:last-child {\n @extend %text-sm;\n }\n } /* .license-wrapper */\n\n .post-meta a:not(:hover) {\n @extend %link-underline;\n }\n\n .share-wrapper {\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n .share-icons {\n font-size: 1.2rem;\n\n > * {\n margin-left: 0.25rem;\n\n &:hover {\n i {\n @extend %btn-share-hovor;\n }\n }\n }\n\n button {\n position: relative;\n bottom: 2px;\n padding: 0;\n\n @extend %cursor-pointer;\n }\n\n a :hover {\n text-decoration: none;\n }\n\n .fa-square-x-twitter {\n @include btn-sharing-color(black);\n }\n\n .fa-facebook-square {\n @include btn-sharing-color(rgb(66, 95, 156));\n }\n\n .fa-telegram {\n @include btn-sharing-color(rgb(39, 159, 217));\n }\n\n .fa-linkedin {\n @include btn-sharing-color(rgb(0, 119, 181));\n }\n\n .fa-weibo {\n @include btn-sharing-color(rgb(229, 20, 43));\n }\n } /* .share-icons */\n\n .fas.fa-link {\n @include btn-sharing-color(rgb(171, 171, 171));\n }\n } /* .share-wrapper */\n}\n\n.post-tags {\n line-height: 2rem;\n\n .post-tag {\n &:hover {\n @extend %link-hover;\n @extend %tag-hover;\n @extend %no-bottom-border;\n }\n }\n}\n\n.post-navigation {\n .btn {\n @extend %btn-post-nav;\n\n &:not(:hover) {\n color: var(--link-color);\n }\n\n &:hover {\n &:not(.disabled)::before {\n color: whitesmoke;\n }\n }\n\n &.disabled {\n @extend %btn-post-nav;\n\n pointer-events: auto;\n cursor: not-allowed;\n background: none;\n color: gray;\n }\n\n &.btn-outline-primary.disabled:focus {\n box-shadow: none;\n }\n\n &::before {\n color: var(--text-muted-color);\n font-size: 0.65rem;\n text-transform: uppercase;\n content: attr(aria-label);\n }\n\n &:first-child {\n border-radius: $base-radius 0 0 $base-radius;\n left: 0.5px;\n }\n\n &:last-child {\n border-radius: 0 $base-radius $base-radius 0;\n right: 0.5px;\n }\n }\n\n p {\n font-size: 1.1rem;\n line-height: 1.5rem;\n margin-top: 0.3rem;\n white-space: normal;\n }\n} /* .post-navigation */\n\n@media (hover: hover) {\n .post-navigation {\n .btn,\n .btn::before {\n transition: all 0.35s ease-in-out;\n }\n }\n}\n\n@-webkit-keyframes fade-up {\n from {\n opacity: 0;\n position: relative;\n top: 2rem;\n }\n\n to {\n opacity: 1;\n position: relative;\n top: 0;\n }\n}\n\n@keyframes fade-up {\n from {\n opacity: 0;\n position: relative;\n top: 2rem;\n }\n\n to {\n opacity: 1;\n position: relative;\n top: 0;\n }\n}\n\n#toc-wrapper {\n border-left: 1px solid rgba(158, 158, 158, 0.17);\n position: -webkit-sticky;\n position: sticky;\n top: 4rem;\n transition: top 0.2s ease-in-out;\n -webkit-animation: fade-up 0.8s;\n animation: fade-up 0.8s;\n\n ul {\n list-style: none;\n font-size: 0.85rem;\n line-height: 1.25;\n padding-left: 0;\n\n li {\n &:not(:last-child) {\n margin: 0.4rem 0;\n }\n\n a {\n padding: 0.2rem 0 0.2rem 1.25rem;\n }\n }\n\n /* Overwrite TOC plugin style */\n\n .toc-link {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover {\n color: var(--toc-highlight);\n text-decoration: none;\n }\n\n &::before {\n display: none;\n }\n }\n\n .is-active-link {\n color: var(--toc-highlight) !important;\n font-weight: 600;\n\n &::before {\n display: inline-block;\n width: 1px;\n left: -1px;\n height: 1.25rem;\n background-color: var(--toc-highlight) !important;\n }\n }\n\n ul {\n padding-left: 0.75rem;\n }\n }\n}\n\n/* --- Related Posts --- */\n\n#related-posts {\n > h3 {\n @include label(1.1rem, 600);\n }\n\n time {\n @extend %normal-font-style;\n @extend %text-xs;\n\n color: var(--text-muted-color);\n }\n\n p {\n font-size: 0.9rem;\n margin-bottom: 0.5rem;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n\n .card {\n h4 {\n @extend %text-clip;\n }\n }\n}\n\n/* stylelint-disable-next-line selector-id-pattern */\n#disqus_thread {\n min-height: 8.5rem;\n}\n\n.utterances {\n max-width: 100%;\n}\n\n%btn-share-hovor {\n color: var(--btn-share-hover-color) !important;\n}\n\n.share-label {\n @include label(inherit, 400, inherit);\n\n &::after {\n content: ':';\n }\n}\n\n@media all and (max-width: 576px) {\n .post-tail-bottom {\n flex-wrap: wrap-reverse !important;\n\n > div:first-child {\n width: 100%;\n margin-top: 1rem;\n }\n }\n}\n\n@media all and (max-width: 768px) {\n .content > p > img {\n max-width: calc(100% + 1rem);\n }\n}\n\n/* Hide SideBar and TOC */\n@media all and (max-width: 849px) {\n .post-navigation {\n padding-left: 0;\n padding-right: 0;\n margin-left: -0.5rem;\n margin-right: -0.5rem;\n }\n}\n","/*\n Styles for Tab Tags\n*/\n\n.tag {\n border-radius: 0.7em;\n padding: 6px 8px 7px;\n margin-right: 0.8rem;\n line-height: 3rem;\n letter-spacing: 0;\n border: 1px solid var(--tag-border) !important;\n box-shadow: 0 0 3px 0 var(--tag-shadow);\n\n span {\n margin-left: 0.6em;\n font-size: 0.7em;\n font-family: Oswald, sans-serif;\n }\n}\n","/*\n Style for Archives\n*/\n\n#archives {\n letter-spacing: 0.03rem;\n\n $timeline-width: 4px;\n\n %timeline {\n content: '';\n width: $timeline-width;\n position: relative;\n float: left;\n background-color: var(--timeline-color);\n }\n\n .year {\n height: 3.5rem;\n font-size: 1.5rem;\n position: relative;\n left: 2px;\n margin-left: -$timeline-width;\n\n &::before {\n @extend %timeline;\n\n height: 72px;\n left: 79px;\n bottom: 16px;\n }\n\n &:first-child::before {\n @extend %timeline;\n\n height: 32px;\n top: 24px;\n }\n\n /* Year dot */\n &::after {\n content: '';\n display: inline-block;\n position: relative;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n left: 21.5px;\n border: 3px solid;\n background-color: var(--timeline-year-dot-color);\n border-color: var(--timeline-node-bg);\n box-shadow: 0 0 2px 0 #c2c6cc;\n z-index: 1;\n }\n }\n\n ul {\n li {\n font-size: 1.1rem;\n line-height: 3rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:nth-child(odd) {\n background-color: var(--main-bg, #ffffff);\n background-image: linear-gradient(\n to left,\n #ffffff,\n #fbfbfb,\n #fbfbfb,\n #fbfbfb,\n #ffffff\n );\n }\n\n &::before {\n @extend %timeline;\n\n top: 0;\n left: 77px;\n height: 3.1rem;\n }\n }\n\n &:last-child li:last-child::before {\n height: 1.5rem;\n }\n } /* #archives ul */\n\n .date {\n white-space: nowrap;\n display: inline-block;\n position: relative;\n right: 0.5rem;\n\n &.month {\n width: 1.4rem;\n text-align: center;\n }\n\n &.day {\n font-size: 85%;\n font-family: Lato, sans-serif;\n }\n }\n\n a {\n /* post title in Archvies */\n margin-left: 2.5rem;\n position: relative;\n top: 0.1rem;\n\n &:hover {\n border-bottom: none;\n }\n\n &::before {\n /* the dot before post title */\n content: '';\n display: inline-block;\n position: relative;\n border-radius: 50%;\n width: 8px;\n height: 8px;\n float: left;\n top: 1.35rem;\n left: 71px;\n background-color: var(--timeline-node-bg);\n box-shadow: 0 0 3px 0 #c2c6cc;\n z-index: 1;\n }\n }\n} /* #archives */\n\n@media all and (max-width: 576px) {\n #archives {\n margin-top: -1rem;\n\n ul {\n letter-spacing: 0;\n }\n }\n}\n","/*\n Style for Tab Categories\n*/\n\n%category-icon-color {\n color: gray;\n}\n\n.categories {\n margin-bottom: 2rem;\n border-color: var(--categories-border);\n\n &.card,\n .list-group {\n @extend %rounded;\n }\n\n .card-header {\n $radius: calc($base-radius - 1px);\n\n padding: 0.75rem;\n border-radius: $radius;\n border-bottom: 0;\n\n &.hide-border-bottom {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n i {\n @extend %category-icon-color;\n\n font-size: 86%; /* fontawesome icons */\n }\n\n .list-group-item {\n border-left: none;\n border-right: none;\n padding-left: 2rem;\n\n &:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n} /* .categories */\n\n.category-trigger {\n width: 1.7rem;\n height: 1.7rem;\n border-radius: 50%;\n text-align: center;\n color: #6c757d !important;\n\n i {\n position: relative;\n height: 0.7rem;\n width: 1rem;\n transition: transform 300ms ease;\n }\n\n &:hover {\n i {\n color: var(--categories-icon-hover-color);\n }\n }\n}\n\n/* only works on desktop */\n@media (hover: hover) {\n .category-trigger:hover {\n background-color: var(--categories-hover-bg);\n }\n}\n\n.rotate {\n transform: rotate(-90deg);\n}\n","/*\n Style for page Category and Tag\n*/\n\n.dash {\n margin: 0 0.5rem 0.6rem 0.5rem;\n border-bottom: 2px dotted var(--dash-color);\n}\n\n#page-category,\n#page-tag {\n ul > li {\n line-height: 1.5rem;\n padding: 0.6rem 0;\n\n /* dot */\n &::before {\n background: #999999;\n width: 5px;\n height: 5px;\n border-radius: 50%;\n display: block;\n content: '';\n position: relative;\n top: 0.6rem;\n margin-right: 0.5rem;\n }\n\n /* post's title */\n > a {\n @extend %no-bottom-border;\n\n font-size: 1.1rem;\n }\n }\n}\n\n/* tag icon */\n#page-tag h1 > i {\n font-size: 1.2rem;\n}\n\n#page-category h1 > i {\n font-size: 1.25rem;\n}\n\n#page-category,\n#page-tag,\n#access-lastmod {\n a:hover {\n @extend %link-hover;\n\n margin-bottom: -1px; /* Avoid jumping */\n }\n}\n\n@media all and (max-width: 576px) {\n #page-category,\n #page-tag {\n ul > li {\n &::before {\n margin: 0 0.5rem;\n }\n\n > a {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n"],"file":"jekyll-theme-chirpy.css"}
\ No newline at end of file
diff --git a/pseo_website/_site/assets/generated_image_2023-11-08-21-43-44.png b/pseo_website/_site/assets/generated_image_2023-11-08-21-43-44.png
deleted file mode 100644
index f58c74db..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-08-21-43-44.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-08-21-44-13.png b/pseo_website/_site/assets/generated_image_2023-11-08-21-44-13.png
deleted file mode 100644
index af78b6df..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-08-21-44-13.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-08-22-21-43.png b/pseo_website/_site/assets/generated_image_2023-11-08-22-21-43.png
deleted file mode 100644
index 69e4a671..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-08-22-21-43.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-08-22-22-19.png b/pseo_website/_site/assets/generated_image_2023-11-08-22-22-19.png
deleted file mode 100644
index 6941f4f1..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-08-22-22-19.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-08-22-33-22.png b/pseo_website/_site/assets/generated_image_2023-11-08-22-33-22.png
deleted file mode 100644
index c28997ac..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-08-22-33-22.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-08-22-33-58.png b/pseo_website/_site/assets/generated_image_2023-11-08-22-33-58.png
deleted file mode 100644
index 19195622..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-08-22-33-58.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-08-22-42-43.png b/pseo_website/_site/assets/generated_image_2023-11-08-22-42-43.png
deleted file mode 100644
index 7bfd4420..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-08-22-42-43.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-08-22-43-17.png b/pseo_website/_site/assets/generated_image_2023-11-08-22-43-17.png
deleted file mode 100644
index 8df6a893..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-08-22-43-17.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-08-23-42-51.png b/pseo_website/_site/assets/generated_image_2023-11-08-23-42-51.png
deleted file mode 100644
index 3665f2aa..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-08-23-42-51.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-08-23-43-19.png b/pseo_website/_site/assets/generated_image_2023-11-08-23-43-19.png
deleted file mode 100644
index a4144020..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-08-23-43-19.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-09-07-30-40.png b/pseo_website/_site/assets/generated_image_2023-11-09-07-30-40.png
deleted file mode 100644
index 3eb1fa58..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-09-07-30-40.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-09-07-31-10.png b/pseo_website/_site/assets/generated_image_2023-11-09-07-31-10.png
deleted file mode 100644
index 15df57a1..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-09-07-31-10.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-09-07-55-51.png b/pseo_website/_site/assets/generated_image_2023-11-09-07-55-51.png
deleted file mode 100644
index 59285f50..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-09-07-55-51.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-09-07-56-18.png b/pseo_website/_site/assets/generated_image_2023-11-09-07-56-18.png
deleted file mode 100644
index 6160fbbb..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-09-07-56-18.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-09-08-49-22.png b/pseo_website/_site/assets/generated_image_2023-11-09-08-49-22.png
deleted file mode 100644
index 0f8392d6..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-09-08-49-22.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-09-08-49-57.png b/pseo_website/_site/assets/generated_image_2023-11-09-08-49-57.png
deleted file mode 100644
index c3fe6aac..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-09-08-49-57.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-09-09-11-41.png b/pseo_website/_site/assets/generated_image_2023-11-09-09-11-41.png
deleted file mode 100644
index f82cc976..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-09-09-11-41.png and /dev/null differ
diff --git a/pseo_website/_site/assets/generated_image_2023-11-09-09-12-16.png b/pseo_website/_site/assets/generated_image_2023-11-09-09-12-16.png
deleted file mode 100644
index 9a3c9fc6..00000000
Binary files a/pseo_website/_site/assets/generated_image_2023-11-09-09-12-16.png and /dev/null differ
diff --git a/pseo_website/_site/assets/img/favicons/android-chrome-192x192.png b/pseo_website/_site/assets/img/favicons/android-chrome-192x192.png
deleted file mode 100644
index a949d2fe..00000000
Binary files a/pseo_website/_site/assets/img/favicons/android-chrome-192x192.png and /dev/null differ
diff --git a/pseo_website/_site/assets/img/favicons/android-chrome-512x512.png b/pseo_website/_site/assets/img/favicons/android-chrome-512x512.png
deleted file mode 100644
index a0cdd950..00000000
Binary files a/pseo_website/_site/assets/img/favicons/android-chrome-512x512.png and /dev/null differ
diff --git a/pseo_website/_site/assets/img/favicons/apple-touch-icon.png b/pseo_website/_site/assets/img/favicons/apple-touch-icon.png
deleted file mode 100644
index 648097f4..00000000
Binary files a/pseo_website/_site/assets/img/favicons/apple-touch-icon.png and /dev/null differ
diff --git a/pseo_website/_site/assets/img/favicons/browserconfig.xml b/pseo_website/_site/assets/img/favicons/browserconfig.xml
deleted file mode 100644
index a57a0400..00000000
--- a/pseo_website/_site/assets/img/favicons/browserconfig.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- #da532c
-
-
-
-
diff --git a/pseo_website/_site/assets/img/favicons/favicon-16x16.png b/pseo_website/_site/assets/img/favicons/favicon-16x16.png
deleted file mode 100644
index f44237a9..00000000
Binary files a/pseo_website/_site/assets/img/favicons/favicon-16x16.png and /dev/null differ
diff --git a/pseo_website/_site/assets/img/favicons/favicon-32x32.png b/pseo_website/_site/assets/img/favicons/favicon-32x32.png
deleted file mode 100644
index d5d021d8..00000000
Binary files a/pseo_website/_site/assets/img/favicons/favicon-32x32.png and /dev/null differ
diff --git a/pseo_website/_site/assets/img/favicons/favicon.ico b/pseo_website/_site/assets/img/favicons/favicon.ico
deleted file mode 100644
index 56115680..00000000
Binary files a/pseo_website/_site/assets/img/favicons/favicon.ico and /dev/null differ
diff --git a/pseo_website/_site/assets/img/favicons/mstile-150x150.png b/pseo_website/_site/assets/img/favicons/mstile-150x150.png
deleted file mode 100644
index c0d045e2..00000000
Binary files a/pseo_website/_site/assets/img/favicons/mstile-150x150.png and /dev/null differ
diff --git a/pseo_website/_site/assets/img/favicons/site.webmanifest b/pseo_website/_site/assets/img/favicons/site.webmanifest
deleted file mode 100644
index 7a010e2c..00000000
--- a/pseo_website/_site/assets/img/favicons/site.webmanifest
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-{
- "name": "AI-Takia",
- "short_name": "AI-Takia",
- "description": "Begginer friendly AI technologies simplified & explained. Know & boost productivity with latest AI tools.",
- "icons": [
- {
- "src": "/assets/img/favicons/android-chrome-192x192.png",
- "sizes": "192x192",
- "type": "image/png"
- },
- {
- "src": "/assets/img/favicons/android-chrome-512x512.png",
- "sizes": "512x512",
- "type": "image/png"
- }],
- "start_url": "/index.html",
- "theme_color": "#2a1e6b",
- "background_color": "#ffffff",
- "display": "fullscreen"
-}
-
diff --git a/pseo_website/_site/assets/index.html b/pseo_website/_site/assets/index.html
deleted file mode 100644
index b9833218..00000000
--- a/pseo_website/_site/assets/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
- Redirecting…
-
-
-
-
- Redirecting…
- Click here if you are not redirected.
-
diff --git a/pseo_website/_site/assets/js/data/search.json b/pseo_website/_site/assets/js/data/search.json
deleted file mode 100644
index 901562b9..00000000
--- a/pseo_website/_site/assets/js/data/search.json
+++ /dev/null
@@ -1,123 +0,0 @@
-[
-
- {
- "title": "The Top 5 AI Animation Software Tools Choose the Perfect Tool for Your Animation Needs",
- "url": "/posts/The-Top-5-AI-Animation-Software-Tools-Choose-the-Perfect-Tool-for-Your-Animation-Needs/",
- "categories": "Animation, Technology",
- "tags": "AI Animation Software, Animation Tools",
- "date": "2023-11-09 09:13:28 +0530",
-
-
-
-
-
-
-
- "snippet": "Introduction:Creating animations has never been easier, thanks to advancements in technology. AI animation software has revolutionized the industry, allowing professional animators and motion desig...",
- "content": "Introduction:Creating animations has never been easier, thanks to advancements in technology. AI animation software has revolutionized the industry, allowing professional animators and motion designers to produce high-quality films without the challenges of traditional animation. Whether you’re a beginner or an advanced user, there are numerous AI animation software tools available in the market. In this article, we will explore the top 5 AI animation software tools, their features, pricing, and user reviews. Let’s dive in and discover the perfect tool to unleash your animation potential.Image CaptionTitle: The Top 5 AI Animation Software Tools in 2022: Which One is Right for You?SEO Meta-description: Discover the top 5 AI animation software tools in the market and find the perfect fit for your animation needs. From Leopix Converter to Heijin, explore their features, pricing, and user reviews to create stunning animations effortlessly.IntroductionCreating animations has never been easier, thanks to advancements in technology. AI animation software has revolutionized the industry, allowing professional animators and motion designers to produce high-quality films without the challenges of traditional animation. Whether you’re a beginner or an advanced user, there are numerous AI animation software tools available in the market. In this article, we will explore the top 5 AI animation software tools, their features, pricing, and user reviews. Let’s dive in!Leopix Converter: Unleash Your Visual CreativityAt number 5, we have Leopix Converter, a groundbreaking AI animation software tool that transforms 2D photographs into stunning 3D light field images. With Leopix Converter, users have the freedom to select their preferred output format from a variety of export options, including Leia image format, side-by-side 3D, depth maps, and light field animations. This free software requires a Leia login account to access its robust features. By uploading a 2D image into the converter, Leopix analyzes it using sophisticated algorithms and computational approaches to produce a depth map, resulting in a visually immersive 3D light field image. Whether you’re a visual artist or a creative enthusiast, Leopix Converter allows you to explore new levels of visual creativity and create amazing 3D animations.Adobe Express: Animate Your VoiceTaking the number 4 spot is Adobe Express, an AI animation software tool that brings your voice recordings to life. With Adobe Express, animating your voice has never been easier. Choose from a wide range of characters, including unicorns, foxes, robots, and more. Record your character’s dialogue or upload an audio file, and Adobe Express will automatically synchronize your voice with the character’s animation. With a simple interface, you can preview and customize your animation, trim audio, and choose from a variety of backgrounds. Adobe Express empowers users to quickly and easily create animated videos on the go.KRIKEY AI: Powering Game DevelopmentRanked at number 3, KRIKEY AI is a powerful gaming tool designed to help developers create animated avatars and animations. Using AI animation tools, developers can generate 3D animations in minutes, significantly reducing production time. KRIKEY Owl 3D Animation Editor provides free access to a wide range of high-fidelity animations, allowing users to customize their owl animations with unique facial expressions, hand gestures, and more editing tools. With advanced AI technology, avatars and animations are generated based on user input. Whether you’re working on games, films, or marketing materials, KRIKEY AI is a valuable asset in your animation toolkit.Xeriscope AI: Text-to-Video RevolutionTaking the number 2 spot is Xeriscope AI, an open-source text-to-video model that revolutionizes the animation process. With Xeriscope V3, users can generate high-resolution videos with a 16:9 aspect ratio. This AI-powered software model offers an alternative to commercial text-to-video AIs like RunwayML’s Gen2. Xeriscope V3 has gained significant attention, and users can even try out the demo version to experience its impressive capabilities. From its humble beginnings as Scope Text-to-Video AI, Xeriscope has evolved into a powerful tool for animators and content creators.Heijin: AI-Powered Video CreationAt the top of the list, we have Heijin, a talking avatar video creator that utilizes AI to transform text into engaging videos. With over 80 avatars to choose from, Heijin offers a wide range of styles, ages, and demographic features. These avatars can speak in more than 20 languages and accents. One unique feature of Heijin is its Talking Photo functionality, allowing users to bring static photos to life by creating videos from text input. Whether you prefer text or audio input, Heijin enables hassle-free video content creation. Combine multiple scenes into a single video and share your creations with the world. Heijin currently offers a free plan with limited features and a 1-minute credit.ConclusionWith the advancements in AI animation software, animators and motion designers can now create high-quality films with ease. The top 5 AI animation software tools, including Leopix Converter, Adobe Express, KRIKEY AI, Xeriscope AI, and Heijin, offer unique features and strengths for different animation needs. Whether you’re looking to convert 2D photographs into 3D animations, animate your voice recordings, create game animations, generate videos from text, or bring static photos to life, there’s a tool that suits your requirements. Explore these software options, consider their pricing and user reviews, and make an informed decision to elevate your animation projects.Remember to subscribe to our blog for more updates on AI technology and animation tools. Happy animating!FAQs: What is AI animation software?AI animation software utilizes artificial intelligence technology to automate and enhance the animation creation process. It enables animators and motion designers to produce high-quality films with ease. Can I try out the AI animation software before purchasing?Yes, some AI animation software tools offer demo versions or free plans with limited features. Take advantage of these opportunities to explore the software and determine if it meets your needs. Which AI animation software is the best fit for beginners?For beginners, Adobe Express is an excellent choice. Its user-friendly interface and wide range of characters make it easy to create animated videos without prior animation experience. Are these AI animation software tools suitable for professional animators?Absolutely! These software tools cater to both beginners and advanced users. Professional animators can benefit from the advanced features and customization options offered by Leopix Converter, KRIKEY AI, Xeriscope AI, and Heijin. Can I export my animations in different formats?Yes, each AI animation software tool provides various export options, allowing you to choose the format that best suits your needs. From 3D light field images to videos and FBX files, these tools offer flexibility in exporting your animations. Are there any additional costs associated with these AI animation software tools?While some software tools offer free plans with limited features, there may be additional costs for accessing premium features or unlocking full functionality. Consider your budget and requirements when selecting a software tool. References: Leopix Converter: Leopix Website Adobe Express: Adobe Website KRIKEY AI: KRIKEY AI Website Xeriscope AI: Xeriscope AI Demo Heijin: Heijin WebsiteConclusionKey takeaways: AI animation software has revolutionized the industry, making animation creation easier and more accessible. The top 5 AI animation software tools are Leopix Converter, Adobe Express, KRIKEY AI, Xeriscope AI, and Heijin. Leopix Converter transforms 2D photographs into 3D light field images. Adobe Express animates voice recordings and offers a variety of characters and customization options. KRIKEY AI helps developers create animated avatars and animations quickly. Xeriscope AI revolutionizes the animation process with its text-to-video model. Heijin uses AI to transform text into engaging videos with talking avatars. Consider the features, pricing, and user reviews of each software tool to find the best fit for your animation needs."
- },
-
- {
- "title": "How to Use Stable Diffusion in Google Colab for Free A Step-by-Step Guide",
- "url": "/posts/How-to-Use-Stable-Diffusion-in-Google-Colab-for-Free-A-Step-by-Step-Guide/",
- "categories": "Technology, Artificial Intelligence",
- "tags": "Google Colab, Stable Diffusion",
- "date": "2023-11-09 08:51:09 +0530",
-
-
-
-
-
-
-
- "snippet": "Introduction:Are you ready to unlock the power of Stable Diffusion without the need for a high-end GPU or CPU? In this step-by-step guide, we’ll show you how to use Stable Diffusion in Google Colab...",
- "content": "Introduction:Are you ready to unlock the power of Stable Diffusion without the need for a high-end GPU or CPU? In this step-by-step guide, we’ll show you how to use Stable Diffusion in Google Colab for free. Get ready to create stunning, high-quality images using this incredible tool. No more limitations - let’s dive in!Image CaptionTitle: How to Use Stable Diffusion in Google Colab for Free: A Step-by-Step GuideMeta-description: Learn how to use Stable Diffusion in Google Colab without the need for a high-end GPU or CPU. This comprehensive guide provides a step-by-step process to help you utilize Stable Diffusion and install desired models. Read on to discover how you can create stunning, high-quality images using this powerful tool.IntroductionAre you interested in using Stable Diffusion but don’t have access to a high-end GPU or computer specs? Look no further! In this article, we’ll show you how to use Stable Diffusion in Google Colab for free. We’ll provide you with a Google Collab notebook that allows you to not only use Stable Diffusion but also install your desired models. So let’s dive into the details and learn how to use Stable Diffusion without any further ado.Step-by-Step Guide Set up Google Colab and Select T4 GPUUsing Google Colab, you can access Stable Diffusion for free. Start by going to the Runtime tab and selecting “Change Runtime.” Ensure that you select the T4 GPU option instead of the default CPU. Once done, save your settings and click on the Connect button to establish a connection to your GPU. Execute the CodeIn the Google Colab notebook, navigate to the first cell and click on the “Run” button. This will execute the code necessary to run Stable Diffusion. Please note that this process may take approximately 3 to 4 minutes. So be patient and wait for the green check mark to appear on the first cell. Explore Stable Diffusion ModelsBefore proceeding to the next step, click on the provided link in the notebook. This link will showcase all the available Stable Diffusion models that you can install within the Google Colab notebook. By default, the “Stable Diffusion Realistic version 5” will be selected. If you prefer a different version, you can easily switch by replacing the word “false” with “true” in the notebook. Feel free to explore the models and make your selection. Install Desired ModelsIf you wish to install additional models from Civit AI, you have that option too. We’ll guide you through this process later in the article. For now, simply close the models selection window and proceed to run the second cell. This step may also take a few minutes, and if you encounter any errors, don’t worry as it’s a normal part of the process. Just rerun the cell to continue. Access the Invoke AI LinkOnce the second step is completed, you’ll notice the green check mark on the second cell. Now, run the third cell and wait for the Invoke AI link to appear. It’s important not to open this link yet; instead, continue to the next step. Explore the Invoke AI InterfaceClick on the first link provided in the notebook to access the Invoke AI interface. Here, you’ll find the super duper Stable Diffusion. The interface allows you to enter prompts, select the number of images, specify the number of steps, and view the list of installed models. Install Your Desired ModelsTo install additional models, click on the “Model Manager” option and choose “Import Model.” You’ll need to paste the link of the desired model, which you can find on Civit AI’s website. Once you’ve added the link, the model will be imported, and you can find it in the model section of the interface. This process may take some time, so be patient. Generate ImagesAfter installing your desired models, it’s time to generate images. Enter a prompt in the interface, such as “a beautiful lady with freckles in a coffee shop” or “a bouquet hyper-realistic.” Once you’re ready, click on the “Invoke” button to generate the image. While the image is being generated, we invite you to join our WhatsApp channel, where we share the latest AI news and cool AI stuff. Find the link in the description below. Upscale Your ImagesIf you’d like to upscale your image, simply click on the “Upscale” button in the interface. Choose your desired upscaling model, such as “real s10 4x plus,” and click on the “Upscale Image” option. This will start the upscaling process. Download Your ImageOnce the upscaling process is complete, you can download your image by selecting it and choosing the “Download Image” option. Feel free to experiment with different seed values, the number of images, and the number of steps to enhance your creations further. Additionally, the interface offers a canvas option that we can’t cover in this article due to time constraints. ConclusionCongratulations! You’ve successfully learned how to use Stable Diffusion in Google Colab without the need for a high-end GPU or CPU. By following the step-by-step guide provided, you can now create stunning images using Stable Diffusion and even install your desired models. We hope you found this article helpful and encourage you to give it a thumbs up if you did. Stay tuned for more informative content, and we’ll see you in the next article!FAQs:Q1: What is Stable Diffusion?A1: Stable Diffusion is a powerful tool that allows users to generate high-quality images using advanced AI algorithms.Q2: Can I use Stable Diffusion for free?A2: Yes, you can use Stable Diffusion for free by utilizing Google Colab and following the steps outlined in this article.Q3: Do I need a high-end GPU or CPU to use Stable Diffusion?A3: No, you can use Stable Diffusion without a high-end GPU or CPU by leveraging the capabilities of Google Colab.Q4: Can I install my desired models in Stable Diffusion?A4: Absolutely! This article provides instructions on how to install your desired models, including those from Civit AI.Q5: How can I upscale my images in Stable Diffusion?A5: The article explains how to upscale your images using the upscaling feature available in the Stable Diffusion interface.Q6: Where can I find the link to join the WhatsApp channel?A6: You can find the link to join the WhatsApp channel in the description below the article.Conclusion Use Google Colab and select T4 GPU for free access to Stable Diffusion Execute the code in the notebook to run Stable Diffusion Explore and install different Stable Diffusion models Install additional models from Civit AI Access the Invoke AI link to use Stable Diffusion interface Install desired models in the interface through Model Manager Generate images by entering prompts and clicking “Invoke” Upscale images using the upscaling feature Download the final image and experiment with different settings Conclusion: Learn how to use Stable Diffusion in Google Colab without high-end hardware and create stunning images."
- },
-
- {
- "title": "Grok Elon Musk's Revolutionary AI Chatbot Redefining the Industry",
- "url": "/posts/Grok-Elon-Musks-Revolutionary-AI-Chatbot-Redefining-the-Industry/",
- "categories": "Technology, Artificial Intelligence, chatbots",
- "tags": "AI chatbots, Elon Musk's Grok",
- "date": "2023-11-09 07:57:21 +0530",
-
-
-
-
-
-
-
- "snippet": "Title: Elon Musk’s Grok: The Revolutionary AI Chatbot Revolutionizing the IndustryMeta-description: Discover the groundbreaking features and advantages of Elon Musk’s latest AI creation, Grok. Expl...",
- "content": "Title: Elon Musk’s Grok: The Revolutionary AI Chatbot Revolutionizing the IndustryMeta-description: Discover the groundbreaking features and advantages of Elon Musk’s latest AI creation, Grok. Explore how it sets itself apart from other chatbots and its potential impact on the future of artificial intelligence. Stay updated on the latest tech news and developments with NBC News.IntroductionElon Musk, the visionary entrepreneur, has once again made headlines with the launch of his newest artificial intelligence creation, Grok. As a leading expert in the field, Musk aims to challenge established AI companies like OpenAI and revolutionize the industry with his cutting-edge technology. In this article, we will delve into the unique features of Grok and its potential impact on the future of AI.Unveiling Grok: The Revolutionary AI ChatbotElon Musk’s latest endeavor in the realm of artificial intelligence is Grok, a truth-seeking AI designed to comprehend the universe’s fundamental nature. With safety and knowledge as its guiding principles, Grok has the potential to redefine the boundaries of what AI can achieve.Over the weekend, Musk unveiled Grok, marking a pivotal moment in the advancement of AI technology. Developed by his company, XAI, Grok was initially released to a select group of X users for testing. But what makes Grok truly remarkable? Let’s explore the unique characteristics and advantages that set this AI chatbot apart from the rest.Grok’s Unique Features and Advantages Rebellious Streak: Grok defies the norms of conventional AI chatbots by embracing a sarcastic sense of humor and fearlessly tackling provocative questions. Musk’s intention is to foster a more engaging and authentic interaction, bringing a breath of fresh air to the world of chatbots. Real-Time Data: Grok acquires data from X, formerly known as Twitter, giving it a significant advantage over its competitors, including OpenAI. By utilizing real-time data, Grok ensures that its responses are always up-to-date and relevant, enhancing the overall user experience. Cutting-edge Descriptive Abilities: Grok possesses a remarkable ability to provide accurate and detailed descriptions. Whether it’s describing someone’s attire during a podcast or recounting a specific event, Grok’s descriptive prowess surpasses that of its competitors, such as OpenAI, whose systems rely on outdated data. Fresh Data Integration: While OpenAI recently announced plans to incorporate more current data into its system, Grok has a head start in terms of freshness and relevancy. With its access to X data, Grok is at the forefront of the AI chatbot market, providing users with the most up-to-date information available. Elon Musk’s Paradoxical Approach to AIElon Musk’s stance on artificial intelligence has always been a subject of fascination and curiosity. Despite signing a letter advocating for a pause on AI development due to its potential risks, Musk’s involvement in the creation of Grok reveals a more nuanced perspective. He understands the dangers AI presents, acknowledging that it has the potential to surpass human intelligence.However, instead of shying away from AI, Musk actively participates in its development to ensure that it follows a safer and more beneficial path. Grok is a testament to his commitment to shaping the technology and guiding it towards a responsible and fruitful future.ConclusionElon Musk’s latest AI creation, Grok, is poised to revolutionize the industry with its rebellious nature, access to real-time data, and exceptional descriptive abilities. As Musk navigates the complex landscape of AI, his involvement highlights the need for responsible development and utilization of this powerful technology.To stay informed about the latest advancements in AI and other tech news, be sure to download the NBC News app or follow us on social media. Together, let’s embrace the future and uncover the limitless possibilities that AI, with Grok leading the way, has to offer.Image CaptionTitle: Elon Musk’s Grok: The Revolutionary AI Chatbot Revolutionizing the IndustryMeta-description: Discover the groundbreaking features and advantages of Elon Musk’s latest AI creation, Grok. Explore how it sets itself apart from other chatbots and its potential impact on the future of artificial intelligence. Stay updated on the latest tech news and developments with NBC News.IntroductionElon Musk, the visionary entrepreneur, has once again made headlines with the launch of his newest artificial intelligence creation, Grok. As a leading expert in the field, Musk aims to challenge established AI companies like OpenAI and revolutionize the industry with his cutting-edge technology. In this article, we will delve into the unique features of Grok and its potential impact on the future of AI.Unveiling Grok: The Revolutionary AI ChatbotIn April, Elon Musk announced his plan to develop a truth-seeking AI known as GBT (Grok) - an acronym for “Grok-Based Truth-Seeker.” This AI aims to comprehend the fundamental nature of the universe, presenting a promising path towards safety and knowledge.Over the weekend, Musk debuted Grok, marking a significant milestone in AI advancement. Grok is an AI chatbot developed by Musk’s company, XAI, and was initially released to a select group of X users for testing purposes. What sets Grok apart from other chatbots? Let’s explore its unique characteristics and advantages.Grok’s Unique Features and Advantages Rebellious Streak: Unlike conventional AI chatbots, Grok possesses a sarcastic sense of humor and fearlessly answers provocative questions that others shy away from. Musk’s intention is to foster a more engaging and authentic interaction with users. Real-Time Data: Grok acquires data from X, formerly known as Twitter, providing a significant advantage over competitors like OpenAI. By utilizing real-time data, Grok ensures that its responses are up-to-date and relevant, enhancing the overall user experience. Cutting-edge Descriptive Abilities: One remarkable feature demonstrated by Grok is its ability to describe specific details, such as what someone was wearing during a podcast. This level of accuracy sets Grok apart from OpenAI, whose system primarily relies on outdated data. Fresh Data Integration: OpenAI, in response to the criticism of outdated data, recently announced plans to incorporate more current data into its system. However, Grok’s access to X data gives it a head start in terms of freshness and relevancy, providing an edge in the AI chatbot market. Elon Musk’s Paradoxical Approach to AIElon Musk’s stance on artificial intelligence has been a subject of both fascination and curiosity. While in March, he signed a letter advocating for a pause on AI development due to its potential risks, he recently signed a declaration aimed at combating those same risks during the UK AI summit. Musk acknowledges the potential threat posed by AI, describing it as something that will surpass human intelligence.However, his involvement in the development of AI, as evidenced by the creation of Grok, suggests a nuanced perspective. Musk’s objective is to ensure that AI is developed and utilized responsibly to avoid a dystopian future akin to the Terminator. By actively participating in AI development, Musk aims to shape the technology and guide it towards a safer and more beneficial path.ConclusionElon Musk’s latest AI creation, Grok, represents a significant step forward in the evolution of artificial intelligence. Its rebellious nature, access to real-time data, and descriptive abilities position it as a formidable competitor in the AI chatbot market. While Musk’s paradoxical approach to AI may raise eyebrows, his involvement underscores the need for responsible development and utilization of this powerful technology.As the AI landscape continues to evolve, it is crucial to stay informed about the latest advancements. Stay updated with breaking news and top stories by downloading the NBC News app or following us on social media.FAQs: What is Grok?Grok is the latest AI chatbot developed by Elon Musk’s company, XAI. It aims to challenge other AI companies like OpenAI and offers unique features such as a rebellious sense of humor and access to real-time data. How does Grok differ from other chatbots?Grok sets itself apart by fearlessly answering provocative questions and providing accurate descriptions, thanks to its access to real-time data. Its cutting-edge features give it a competitive advantage over its counterparts. What is Elon Musk’s stance on AI?Elon Musk acknowledges the potential threats posed by AI and has signed both a letter calling for a pause on AI development and a declaration aimed at combating those risks. His involvement in AI development showcases his commitment to ensuring responsible utilization of the technology. How can I stay updated on the latest tech news?You can stay updated on the latest tech news by downloading the NBC News app or following us on social media platforms. Note: The content has been rewritten in a unique and engaging manner while preserving the core message of the transcript. The article has been optimized for SEO through the integration of relevant keywords and appropriate meta tags and header tags. Proofreading has been done to ensure accuracy and readability.Conclusion Elon Musk’s latest AI creation, Grok, is set to revolutionize the industry Grok has a rebellious streak, embracing a sarcastic sense of humor It acquires real-time data from X (formerly Twitter) for up-to-date responses Grok’s cutting-edge descriptive abilities surpass its competitors Elon Musk’s involvement highlights the need for responsible AI development"
- },
-
- {
- "title": "State of AI Report 2022 Unveiling Innovations and Future Trends in Artificial Intelligence",
- "url": "/posts/State-of-AI-Report-2022-Unveiling-Innovations-and-Future-Trends-in-Artificial-Intelligence/",
- "categories": "Technology, Artificial Intelligence",
- "tags": "AI latest, AI Future potential",
- "date": "2023-11-09 07:32:15 +0530",
-
-
-
-
-
-
-
- "snippet": "Welcome to the captivating world of Artificial Intelligence! In this blog article, we will delve into the highly influential State of AI Report 2022, unveiling the latest advancements and future po...",
- "content": "Welcome to the captivating world of Artificial Intelligence! In this blog article, we will delve into the highly influential State of AI Report 2022, unveiling the latest advancements and future potential in the field. From mind-boggling real-time thought to image decoding to revolutionary progress in language models, we will explore the cutting-edge innovations that are shaping the future of AI. Join us on this exciting journey as we uncover the groundbreaking developments that have the power to transform our world.Image CaptionIntroductionThe annual State of AI report is widely regarded as a seminal document in the field of Artificial Intelligence. Renowned experts such as Andrej Karpathy endorse its findings, making it a highly influential resource. In this blog article, we will delve into the key insights and advancements presented in the 2022 edition of the report. From real-time thought to image decoding to revolutionary progress in language models, we will explore the latest developments and discuss their implications. Join us on this exciting journey as we uncover the cutting-edge innovations that are shaping the future of AI.Unveiling the Expanding Landscape of Modalities in AIWhile the State of AI report covers a wide range of modalities such as text, image, video, music, and even robot states, it interestingly omits the modality of thoughts. Recent breakthroughs have emerged in the realm of real-time thought to image decoding, a concept that was previously unexplored. This groundbreaking advancement, demonstrated by Meta, showcases the remarkable progress in modalities within the AI field. The exponential growth of different modalities points towards an exciting era of AI expansion.GPT-4 and the Power of Language ModelsGPT-4, a significant focus of the report, has garnered considerable attention in the AI community. However, for avid followers of AI advancements, the report offers little new information. Instead, we turn to page 14, where a paper citing the false promise of imitating proprietary LLMs catches our attention. The paper highlights Orca, a model that achieves parity with ChatGPT while being significantly smaller in size. This breakthrough leads Microsoft to consider substituting GPT-4 with Orca, providing cost-effective access to OpenAI software. The potential of these language models is vast, as they excel in professional and academic examinations.The Confluence of AI and RoboticsOne of the most intriguing aspects of the State of AI report is the intersection between AI and robotics. The fusion of vision data and embodiment or robotics data has shown promising results in improving language tasks. Palm E, a language model, demonstrates enhanced performance in pure language tasks when coupled with robotics data. This positive transfer of knowledge across modalities signifies the immense potential of leveraging multiple data sources to augment AI capabilities.Eureka: The Future of AI EmbodimentEureka, a recent breakthrough, exemplifies the future of AI by bridging language models and robotics. By feeding the source code of the environment to GPT-4 and having it write the code for the reward function, Eureka achieves remarkable results. Thanks to GPU acceleration, the simulation-based testing of reward functions becomes feasible, leading to unprecedented performance. Eureka’s autonomous learning capabilities surpass those of human experts, demonstrating the potential of AI to outperform human training data and capabilities. Excitingly, plans are underway to connect Eureka to a real robotic hand, heralding a new era of AI embodiment.AI’s Impact in Diverse FieldsThe State of AI report emphasizes the significant role of AI in various domains, including medicine, mathematics, and even competitive sports. Medical language models have shown substantial progress, raising the possibility of pocket-sized models that outperform most doctors in medical question answering. Furthermore, AI’s application in mathematics has led to breakthroughs in theorem proving and algorithmic discovery. These advancements underscore the profound impact of AI across multiple fields and highlight its potential for transformative change.The Challenges and Ethical ConsiderationsWhile AI continues to push boundaries, it is crucial to address the challenges and ethical concerns that accompany its rapid progress. The report discusses the potential risks associated with AI in warfare, including the use of autonomous killer drones. The absence of international agreements to regulate such technology raises concerns about the pace of technology outpacing diplomatic efforts. Additionally, copyright issues surrounding AI-generated content remain unresolved, with companies like Microsoft and Google assuming legal responsibility for potential copyright claims. The debate on AI safety and governance persists, with differing perspectives on the level of risk and the need for regulation.Predictions and Future OutlookThe State of AI report concludes with a series of predictions for the future. While the predictions may be seen as somewhat conservative, recent developments have already surpassed some of these projections. The increasing use of generative AI for Hollywood-grade visual effects and the emergence of self-improving AI agents in complex environments are just a few examples. With ongoing advancements in reasoning and breakthroughs in various modalities, AI’s capabilities are expanding at an unprecedented rate. However, the report acknowledges the need for global AI governance and the challenges that lie ahead.ConclusionThe State of AI Report 2022 offers a comprehensive overview of the latest advancements and future potential in the field of Artificial Intelligence. From real-time thought to image decoding to autonomous drone racing, the report showcases groundbreaking developments across various modalities. AI’s impact in medicine, mathematics, and other domains further highlights its transformative power. However, ethical considerations and challenges in governance necessitate responsible AI development. As we look to the future, the possibilities for AI seem boundless. The question arises: what can’t AI accomplish? With each passing year, the answer becomes less clear. As we navigate the evolving landscape of AI, it is imperative to strike a balance between innovation and responsible use, ensuring that AI continues to serve humanity’s best interests. State of AI Report 2022 highlights groundbreaking developments in AI Advancements in modalities include real-time thought to image decoding GPT-4 and language models have vast potential in professional and academic exams AI and robotics intersect, enhancing language tasks Eureka bridges language models and robotics, surpassing human training data AI’s impact seen in medicine, mathematics, and competitive sports Challenges include AI in warfare and copyright issues Predictions for the future include generative AI and self-improving AI agents Responsible AI development and governance are crucial for AI’s future."
- },
-
- {
- "title": "Exciting AI Advancements- Musk's Chatbot to Apple's M3 Chips",
- "url": "/posts/Exciting-AI-Advancements-Musks-Chatbot-to-Apples-M3-Chips/",
- "categories": "AI Advancements, Tech News",
- "tags": "AI Advancements, chatbots",
- "date": "2023-11-08 23:44:30 +0530",
-
-
-
-
-
-
-
- "snippet": "Welcome to the exciting world of AI advancements! From Elon Musk’s groundbreaking chatbot to Apple’s powerful M3 chips, this blog will take you on a journey through the latest and most intriguing d...",
- "content": "Welcome to the exciting world of AI advancements! From Elon Musk’s groundbreaking chatbot to Apple’s powerful M3 chips, this blog will take you on a journey through the latest and most intriguing developments in artificial intelligence. Discover how AI is revolutionizing industries like filmmaking, explore the impact of new regulations, and delve into the job market landscape. Exciting AI advancements from Elon Musk’s Grok chatbot to Apple’s M3 chips Adobe’s AI tools revolutionize filmmaking, from script to video editing Runway’s Gen 2 text-to-video generator creates realistic videos from descriptions President Biden introduces the US’ first AI regulations for safety and security LinkedIn’s AI career chatbot offers personalized job advice and insights New Computer’s personal assistant AI, ., becomes a companion in daily life IBM’s analog AI chip redefines the tech industry with power efficiency and speed Amazon partners with Anthropic for AI chip development, competing with Google Major tech companies like Microsoft, Google, Amazon, Apple, and Meta offer AI job opportunities Alibaba’s Tongyi Qianwen 2.0 advances AI capabilities for content generation Apple’s M3 chips in MacBook Pros provide computational power for demanding AI tasksImage CaptionGrok: Elon Musk’s Revolutionary AI ChatbotElon Musk, the visionary entrepreneur, has introduced a game-changing AI chatbot called Grok. Developed by his company XAI, Grok outperforms OpenAI’s chatbot, GPT, in various tests. What sets Grok apart is its ability to stay up-to-date with real-time information through its connection to the X platform. Not only is Grok incredibly intelligent, but it’s also designed to assist users in research and innovation. Additionally, Grok showcases a touch of humor when answering challenging questions. While it has surpassed GPT 3.5 in math and coding tests, it still falls short of OpenAI’s latest GPT-4. Grok is currently available to select users in the U.S. through a subscription to X Premium Plus. XAI is committed to ensuring the responsible and safe use of AI, with Grok being continuously tested and improved. This new venture is just the beginning for Musk’s AI endeavors.Adobe’s AI Tools for FilmmakersIn the realm of filmmaking, Adobe is making significant strides with its cutting-edge AI tools. While some tools are still in development, Adobe has already unveiled Firefly, a tool that can transform scripts into storyboards with a simple click. Filmmakers without access to a storyboard artist can now bring their visions to life seamlessly. Moreover, Adobe showcased other exciting projects, such as a tool that turns simple sketches into detailed drawings and a video effect tool that can intelligently remove unwanted elements from videos. They are also working on an AI-powered tool that can dub videos into different languages while matching the speaker’s voice. These advanced AI tools demonstrate Adobe’s commitment to enhancing the filmmaking process. Although not widely available yet, they offer a glimpse into the future of cinematic creativity.Runway’s Improved Text-to-Video GeneratorNew York-based AI video company, Runway, has made significant improvements to its Gen 2 text-to-video generator. This upgraded version creates remarkably realistic videos that can be generated by simply typing a description. Previously, users had to start with an existing video, but now they can craft videos lasting up to 18 seconds with enhanced clarity and smoother movements. The added feature of controlling the camera movements further enhances the cinematic experience. Runway’s Gen 2 text-to-video generator has gained popularity among creative individuals who utilize it to produce captivating music videos and short films. This advancement highlights the potential for AI to transform the world of visual storytelling.President Biden’s New AI RegulationsOn October 30th, President Joe Biden signed the United States’ first set of regulations for artificial intelligence. These regulations aim to ensure the safety and security of AI products, particularly in relation to national security, the economy, and public health. President Biden acknowledged the significant role AI plays in our lives and emphasized the need for careful management to harness its benefits effectively while mitigating potential risks. With AI progressing at a rapid pace, leaders worldwide are actively addressing the challenges posed by this technology. President Biden’s move represents a significant step towards regulating AI and ensuring its responsible deployment.LinkedIn’s AI Career ChatbotLinkedIn, the renowned professional networking platform, now boasts over a billion members and has introduced an AI chatbot to assist users in their job hunt. This chatbot serves as a personalized career guide, utilizing OpenAI’s latest GPT-4 technology to provide tailored advice and insights on job suitability and application strategies. LinkedIn, a part of Microsoft, has been actively developing AI features to streamline job searching, including automated recruiting and profile optimization. Despite recent layoffs within the engineering team, LinkedIn remains committed to fairness and bias mitigation in its AI algorithms, recognizing the sensitive nature of employment-related decisions. The AI career chatbot demonstrates LinkedIn’s dedication to enhancing the job search experience for its premium members.New Computer’s Personal Assistant AI: .In the world of personal AI assistants, . from New Computer stands out as a companion rather than just a tool. Designed to integrate seamlessly into users’ lives, . remembers conversations and utilizes that information to assist with daily tasks. It offers suggestions based on users’ preferences, making it akin to a thoughtful friend. Early users have described . as a helping hand for the brain, providing invaluable support. Although it may have occasional slip-ups or an overly eager desire to help, users find it challenging to let go once they become accustomed to its presence. New Computer is currently testing . and plans to launch it by the end of the year, potentially with a fee-based subscription. This innovative personal AI assistant promises to revolutionize daily life.IBM’s Groundbreaking Analog AI ChipIBM has introduced a groundbreaking analog AI chip that has the potential to redefine the tech industry. Unlike traditional digital chips that function as binary switches, IBM’s analog chip operates more like a slider, smoothly adjusting to different levels. This unique architecture makes it ideal for complex mathematical operations involved in AI. The new chip boasts impressive efficiency, being up to 100 times more power-efficient and 10 times faster than its predecessors in tasks like image recognition and speech understanding. Additionally, its phase-change memory enables efficient data retention even when powered off. IBM’s ongoing research aims to combine analog and digital technologies to create an even more advanced AI chip. This breakthrough chip paves the way for affordable and accessible AI applications, ushering in a new era of smart gadgets and applications.Amazon’s Strategic Partnership in AI Chip DevelopmentIn a strategic move, Amazon has partnered with Anthropic, an AI company, to enhance its position in the AI market. This partnership involves trading investment for expertise, with Anthropic utilizing and improving Amazon’s specialized AI chips. Amazon’s cloud services division, Amazon Web Services (AWS), has witnessed slower growth recently. However, their collaboration with Anthropic demonstrates their determination to remain at the forefront of the AI landscape. Unlike other tech giants that solely rely on AI companies for cloud services, Amazon is also leveraging Anthropic’s expertise in AI chip development. This strategic approach places Amazon in a favorable position to excel in the AI race. Furthermore, Google’s investment in Anthropic suggests potential collaboration between the two tech giants. The competition among big tech firms intensifies as they vie for dominance in the AI realm.AI Job Market Landscape in Major Tech CompaniesFor individuals seeking AI-related job opportunities, major tech companies like Microsoft, Google, Amazon, Apple, and Meta offer a plethora of openings. Microsoft, in collaboration with OpenAI, is expanding its AI offerings and providing the option to work remotely. Google, while racing to develop its AI platform, Bard, has experienced recent layoffs. Amazon, eager to catch up in the AI field, seeks fresh talent to strengthen its endeavors. Apple, though slower in AI adoption, is committed to investing in this area and increasing its recruitment efforts. Meta, focused on integrating AI into social media, aims to secure jobs in the AI sector by creating celebrity-mimicking bots for user entertainment. These companies’ investments in AI and the job market reflect the increasing significance of AI expertise across various industries.Alibaba’s Latest AI Tool: Tongyi Qianwen 2.0Alibaba, the Chinese e-commerce and cloud services giant, has introduced Tongyi Qianwen 2.0, an advanced AI tool. With improved capabilities, this tool tackles complex tasks, generates content, and reduces errors. Alibaba has also launched the Gen-I service platform, enabling companies to develop their AI tools while safeguarding their data. As Alibaba expands beyond China’s borders, it aims to compete with global tech leaders such as Microsoft and Amazon. Leveraging its expertise in online shopping and cloud services, Alibaba seeks to establish a prominent presence worldwide, offering innovative AI solutions to various industries.Apple’s Powerful M3 Chips for AI TasksApple has raised the bar in the tech world with its latest MacBook Pros powered by M3 chips. These chips mark a significant advancement for AI enthusiasts. The M3 chips are not only faster but also smarter, making them ideal for AI-related tasks. Equipped with a neural engine that operates 60% faster than previous iterations, MacBook Pros with M3 chips provide the necessary computational power for demanding AI applications. The M3 Max chip, capable of handling up to 128 gigabytes of memory, caters to the needs of professionals engaged in complex AI projects. Apple’s commitment to AI remains unwavering, evident in the remarkable capabilities of their M3 chips. AI enthusiasts can look forward to seamlessly executing demanding AI tasks with the new MacBook Pros.ConclusionThe AI landscape continues to evolve, presenting remarkable advancements and opportunities across various industries. Elon Musk’s Grok chatbot, Adobe’s AI tools for filmmakers, and Apple’s powerful M3 chips exemplify the transformative potential of AI. Moreover, IBM’s analog AI chip, Amazon’s strategic partnership in AI chip development, and Alibaba’s latest AI tool showcase the continuous pursuit of innovation by tech giants. With AI permeating sectors such as career guidance on LinkedIn and personal AI assistants like . from New Computer, the impact of AI on our daily lives is becoming increasingly evident. As AI job opportunities abound in major tech companies, the demand for AI expertise is on the rise. Embrace the AI revolution and explore the possibilities of this transformative technology."
- },
-
- {
- "title": "Introducing GPT-4 Turbo- The Future of AI Assistants",
- "url": "/posts/Introducing-GPT-4-Turbo-The-Future-of-AI-Assistants/",
- "categories": "AI Technology, Future Technology",
- "tags": "GPT-4 Turbo, Future of AI Assistants",
- "date": "2023-11-08 22:44:29 +0530",
-
-
-
-
-
-
-
- "snippet": "Image CaptionKey Highlights GPT-4 Turbo: A more advanced and capable model Assistance API: Simplifying the development of AI agents Customization: Tailored AI models for specific purposes Integ...",
- "content": "Image CaptionKey Highlights GPT-4 Turbo: A more advanced and capable model Assistance API: Simplifying the development of AI agents Customization: Tailored AI models for specific purposes Integration of new modalities: Vision and text-to-speech capabilities Partnership with Microsoft: Collaboration to enhance AI infrastructure Lower pricing: Making AI more affordable and accessibleImage CaptionOpenAI Dev Day: Introducing GPT-4 Turbo and the Future of AI AssistantsGPT-4 Turbo: Unleashing Powerful CapabilitiesGPT-4 Turbo is OpenAI’s latest model, designed to enhance the AI experience with its remarkable features. Here are some of the highlights: Extended Context Length: GPT-4 Turbo supports up to 128,000 tokens of context, which is 16 times longer than its predecessor. With the ability to handle extensive context, the model provides more accurate responses and a richer understanding of user inputs. Enhanced Control: OpenAI understands the importance of giving developers greater control over AI model responses. To address this, GPT-4 Turbo introduces JSON mode, ensuring valid JSON responses. It also excels in function calling, allowing multiple functions to be executed simultaneously, and follows instructions more effectively. Additionally, a new feature called reproducible outputs provides a higher degree of control over the model’s behavior. Up-to-date World Knowledge: OpenAI acknowledges the limitation of outdated knowledge in previous models. GPT-4 Turbo incorporates retrieval capabilities, enabling users to access knowledge from external documents or databases. Furthermore, the knowledge cutoff has been extended, with GPT-4 Turbo offering information up to April 2023 and a commitment to keeping knowledge current. New Modalities: OpenAI is expanding the horizons of AI capabilities with the integration of vision and speech. GPT-4 Turbo can now process image inputs, generate captions, classifications, and analysis. This breakthrough opens doors to various applications, such as assisting visually impaired individuals with tasks like product identification. Moreover, OpenAI’s new text-to-speech model enables the generation of natural-sounding audio from text, making voice interactions more engaging and accessible. Customization: OpenAI recognizes the need for models tailored to specific domains or proprietary data. With the introduction of Custom Models, OpenAI researchers collaborate closely with companies to build customized models that cater to their unique use cases. While initially priced higher, Custom Models offer an opportunity to push the boundaries of AI capabilities. Higher Rate Limits and Copyright Shield: OpenAI values its customers and strives to provide a seamless experience. To facilitate increased usage, the tokens per minute rate limits for established GPT-4 customers have been doubled. Additionally, OpenAI has implemented Copyright Shield, taking responsibility for legal claims related to copyright infringement faced by ChatGPT Enterprise and API users. Affordable Pricing: OpenAI is committed to making AI accessible to as many users as possible. GPT-4 Turbo is considerably cheaper than GPT-4, with prompt tokens priced at one cent per thousand and completion tokens priced at three cents per thousand. This reduction in pricing, combined with enhanced capabilities, makes GPT-4 Turbo a highly cost-effective choice. Image CaptionThe Power of AI Assistants: Introducing GPTsOpenAI envisions a future where AI assistants seamlessly assist users in a personalized and customizable manner. The foundation for this vision lies in GPTs, tailored versions of ChatGPT for specific purposes. GPTs allow users to build customized AI models with specific instructions, expanded knowledge, and actions. These models can be published for others to utilize.Let’s explore a few examples to illustrate the potential of GPTs: Canva GPT: Canva has leveraged GPT technology to develop an AI model that enables users to design posters by simply describing their requirements in natural language. This integration streamlines the design process and provides users with initial options generated through Canva’s APIs. Zapier GPT: Zapier has created a GPT that facilitates actions across 6,000 applications, unlocking integration possibilities. This GPT enables users to interact with various applications and perform actions, enhancing productivity and workflow efficiency. OpenAI is launching the GPT store, where users can list their GPT models, share their creations, and contribute to a vibrant ecosystem. Revenue sharing opportunities will be available for those who create popular and valuable GPTs.Building Assistive Experiences with the Assistance APIOpenAI understands the complexity of building AI assistants and aims to simplify the process. The Assistance API is introduced to empower developers in creating assistive experiences within their own applications. The API offers the following features: Persistent Threads: Developers no longer need to manage conversation history. The API handles long conversation threads, allowing developers to focus on building engaging user experiences. Retrieval: The Assistance API enables access to external knowledge by integrating retrieval capabilities. Developers can incorporate extensive text or document parsing into their AI assistants, providing users with accurate and relevant information. Code Interpreter: The API includes a code interpreter, allowing the AI model to write and execute code on the fly. Developers can harness the power of code to perform complex calculations, generate files, and create interactive experiences. The Assistance API paves the way for seamless integration between AI and user interfaces, empowering developers to create sophisticated AI-driven applications.Collaboration with Microsoft: Accelerating AI AdvancementsOpenAI’s partnership with Microsoft plays a crucial role in advancing AI capabilities. Microsoft is committed to providing the best system infrastructure to support OpenAI’s models, ensuring optimal performance and scalability. The collaboration focuses on building robust systems and prioritizing safety in AI development.Looking Ahead: The Future of AI AssistantsOpenAI’s journey towards AI agents is an exciting path to explore. GPTs and assistants are the stepping stones towards more powerful and personalized AI experiences. Over time, AI agents will evolve to perform complex tasks and act on behalf of users, revolutionizing the way we interact with technology.OpenAI encourages developers to embrace GPTs and assistants, as their feedback and usage will shape the future capabilities of AI. OpenAI is committed to constant improvement and updates based on user input, making AI a truly transformative force.ConclusionOpenAI Dev Day marked a significant milestone in AI advancement. The introduction of GPT-4 Turbo, GPTs, and the Assistance API opens up endless possibilities for developers to create innovative AI applications. OpenAI’s commitment to affordability, customization, and control ensures that AI technology remains accessible and user-centric.The future of AI assistants is bright, and OpenAI looks forward to collaborating with developers to create a world where AI seamlessly integrates into our daily lives. The revolution has just begun, and the possibilities are limitless. GPT-4 Turbo is OpenAI’s latest model, offering extended context length, enhanced control, up-to-date world knowledge, new modalities, customization options, higher rate limits, and affordable pricing. GPT-4 Turbo supports up to 128,000 tokens of context, providing more accurate responses and a richer understanding of user inputs. It introduces JSON mode, function calling, and reproducible outputs for enhanced control over AI model responses. GPT-4 Turbo incorporates retrieval capabilities, offers knowledge up to April 2023, and integrates vision and speech. OpenAI introduces Custom Models for tailored AI models and increases rate limits for customers. GPTs allow users to build customized AI models for specific purposes and will be available in the GPT store. The Assistance API simplifies the process of building AI assistants with features like persistent threads, retrieval, and a code interpreter. OpenAI’s collaboration with Microsoft accelerates AI advancements and prioritizes safety. AI assistants are the stepping stones towards more powerful and personalized AI experiences. OpenAI encourages developers to embrace GPTs and assistants, shaping the future of AI. OpenAI’s commitment to affordability, customization, and control ensures accessible and user-centric AI technology."
- },
-
- {
- "title": "The Impact of Artificial Intelligence on Microsoft's News Website",
- "url": "/posts/The-Impact-of-Artificial-Intelligence-on-Microsofts-News-Website/",
- "categories": "Technology, Media and Entertainment",
- "tags": "AI, Microsoft News Website",
- "date": "2023-11-08 14:59:37 +0530",
-
-
-
-
-
-
-
- "snippet": "IntroductionIn recent times, Microsoft’s news website, MSN.com, has become a platform for controversial headlines and false stories. From conspiracy theories about the Democratic Party orchestratin...",
- "content": "IntroductionIn recent times, Microsoft’s news website, MSN.com, has become a platform for controversial headlines and false stories. From conspiracy theories about the Democratic Party orchestrating the COVID-19 surge to obituaries that disrespect late NBA players, MSN.com has faced scrutiny for the content it publishes. This shift can be attributed to Microsoft’s decision to replace human editors with artificial intelligence (AI) for news curation. In this article, we will delve into the impact of AI on Microsoft’s news website and the concerns it raises for society and upcoming elections.The Rise of Artificial Intelligence in News CurationMicrosoft’s homepage, MSN.com, holds a significant position as one of the most visited news websites globally. Due to its default installation on Windows software, millions of people rely on it as their primary news source. Up until 2018, Microsoft employed over 800 journalists to curate news content for the site. However, in recent years, AI has taken over this responsibility, causing an upheaval in the quality and accuracy of the news presented.Microsoft AI news ChaosFormer contracted editor, Rin Pfeiffer, who worked at MSN.com for eight years, recalls the drastic changes brought about by the implementation of AI. In 2020, she and her colleagues received the shocking news that their positions were being replaced by AI automation. This move was justified by Microsoft as a step towards streamlining operations and increasing efficiency. Nevertheless, the ramifications of relying solely on AI for news curation have become apparent.Unintended Consequences: False Stories and Biased ContentAs AI took over the role of editors, concerns arose about the accuracy and impartiality of the news featured on MSN.com. Recent instances include false claims of President Biden falling asleep during a moment of silence, obituaries disrespecting late NBA players, and misleading stories about a California politician resigning after attacks by Elon Musk. These articles originate from fringe right-wing sites, raising questions about the selection process and editorial oversight.It is worrisome that content with potential political bias finds its way onto the homepage of a platform used by millions. This situation can have tangible consequences, influencing public opinion and potentially impacting elections. Ferris Cower, an MSN.com user, experienced a noticeable shift in the content presented on his homepage after a software update. As a trustworthy company, Microsoft’s inclusion of biased articles surprised him and others who rely on the platform for unbiased news.The Need for Responsible AI ImplementationRin Pfeiffer and other critics argue that Microsoft should exercise caution in utilizing AI for news curation. They emphasize the importance of human editors in determining the legitimacy and reliability of news sources. While AI can undoubtedly enhance efficiency, it must remain under the control of human oversight to ensure the accuracy and integrity of the information presented.The absence of transparency regarding the number of people responsible for Microsoft’s news AI raises further concerns. Brynn Pfeiffer reveals that the editors on her team, who were hired through a subcontractor, were all laid off. This lack of human intervention leaves room for AI to perpetuate misinformation, potentially influencing public opinion on a massive scale.Safeguarding Journalism and the Future of NewsFollowing an inquiry by The Guardian newspaper, Microsoft faced criticism for an AI-generated poll published alongside a news story about a deceased individual. The poll asked readers to speculate on the cause of death, highlighting the need for responsible AI implementation. Microsoft has since launched an investigation and discontinued the AI polling feature.In 2021, Microsoft shifted to an algorithm-based system for story selection on MSN.com. While this change aims to address concerns, it also highlights the issue of people failing to fact-check and blindly accepting information presented to them. The prevalence of such behavior further emphasizes the importance of maintaining journalistic integrity, whether through human or AI involvement.ConclusionThe integration of artificial intelligence in news curation has sparked a debate surrounding the future of journalism and the responsibility of tech giants like Microsoft. The shift from human editors to AI automation on MSN.com has resulted in the dissemination of false information and biased content. As elections loom, the potential impact of AI-generated news on public opinion cannot be ignored.Microsoft’s move towards algorithm-based story selection is a step in the right direction, but it is crucial to strike a balance between efficiency and the need for human oversight. Transparency regarding AI’s role and the inclusion of responsible journalistic practices are essential to safeguard the integrity of news and ensure informed decision-making by the public.While AI undoubtedly offers opportunities for streamlining operations, it must be used responsibly to avoid the propagation of misinformation. The future of news lies in finding the right balance between human expertise and technological advancements. As consumers of news, it is our responsibility to question and fact-check information, relying on credible sources to shape our understanding of the world.### Conclusion Microsoft’s news website, MSN.com, has faced controversy and scrutiny for publishing controversial and false stories. The shift can be attributed to Microsoft’s decision to replace human editors with AI for news curation. Concerns arise about the accuracy and impartiality of the news featured on MSN.com, with instances of false stories and biased content being published. Critics argue for the importance of human oversight in determining the legitimacy and reliability of news sources. Transparency regarding AI’s role and responsible journalistic practices are essential to safeguard the integrity of news and ensure informed decision-making. The future of news lies in finding the right balance between human expertise and technological advancements. Consumers of news have a responsibility to question and fact-check information from credible sources."
- }
-
-]
-
diff --git a/pseo_website/_site/assets/js/data/swcache.js b/pseo_website/_site/assets/js/data/swcache.js
deleted file mode 100644
index bc4db8f6..00000000
--- a/pseo_website/_site/assets/js/data/swcache.js
+++ /dev/null
@@ -1,57 +0,0 @@
-const resource = [
- /* --- CSS --- */
- '/assets/css/jekyll-theme-chirpy.css',
-
- /* --- PWA --- */
- '/app.js',
- '/sw.js',
-
- /* --- HTML --- */
- '/index.html',
- '/404.html',
-
-
- '/categories/',
-
- '/tags/',
-
- '/archives/',
-
- '/about/',
-
-
- /* --- Favicons & compressed JS --- */
-
-
- '/assets/img/favicons/android-chrome-192x192.png',
- '/assets/img/favicons/android-chrome-512x512.png',
- '/assets/img/favicons/apple-touch-icon.png',
- '/assets/img/favicons/favicon-16x16.png',
- '/assets/img/favicons/favicon-32x32.png',
- '/assets/img/favicons/favicon.ico',
- '/assets/img/favicons/mstile-150x150.png',
- '/assets/js/dist/categories.min.js',
- '/assets/js/dist/commons.min.js',
- '/assets/js/dist/home.min.js',
- '/assets/js/dist/misc.min.js',
- '/assets/js/dist/page.min.js',
- '/assets/js/dist/post.min.js'
-];
-
-/* The request url with below domain will be cached */
-const allowedDomains = [
-
-
- 'localhost:4000',
-
-
-
- 'fonts.gstatic.com',
- 'fonts.googleapis.com',
- 'cdn.jsdelivr.net',
- 'polyfill.io'
-];
-
-/* Requests that include the following path will be banned */
-const denyUrls = [];
-
diff --git a/pseo_website/_site/assets/js/dist/categories.min.js b/pseo_website/_site/assets/js/dist/categories.min.js
deleted file mode 100644
index 91c57560..00000000
--- a/pseo_website/_site/assets/js/dist/categories.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*!
- * Chirpy v6.2.3 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
- */
-!function(){"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,o=new Array(t);r.container>.row"),v=$("#topbar-title"),m=$("search"),g=$("#search-result-wrapper"),y=$("#search-results"),h=$("#search-input"),C=$("#search-hints"),w=$("html,body"),k="loaded",A="unloaded",S="input-focus",T="d-flex",j=function(){function t(){e(this,t)}return r(t,null,[{key:"on",value:function(){t.offset=window.scrollY,w.scrollTop(0)}},{key:"off",value:function(){w.scrollTop(t.offset)}}]),t}();o(j,"offset",0),o(j,"resultVisible",!1);var E=function(){function t(){e(this,t)}return r(t,null,[{key:"on",value:function(){f.addClass(A),v.addClass(A),d.addClass(A),m.addClass(T),p.addClass(k)}},{key:"off",value:function(){p.removeClass(k),m.removeClass(T),f.removeClass(A),v.removeClass(A),d.removeClass(A)}}]),t}(),O=function(){function t(){e(this,t)}return r(t,null,[{key:"on",value:function(){j.resultVisible||(j.on(),g.removeClass(A),b.addClass(A),j.resultVisible=!0)}},{key:"off",value:function(){j.resultVisible&&(y.empty(),C.hasClass(A)&&C.removeClass(A),g.addClass(A),b.removeClass(A),j.off(),h.val(""),j.resultVisible=!1)}}]),t}();function x(){return p.hasClass(k)}var P=$(".collapse");var V,I;$(".code-header>button").children().attr("class"),V=$(window),I=$("#back-to-top"),V.on("scroll",(function(){V.scrollTop()>50?I.fadeIn():I.fadeOut()})),I.on("click",(function(){V.scrollTop(0)})),n(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(e){return new bootstrap.Tooltip(e)})),0!==l.length&&l.off().on("click",(function(e){var t=$(e.target),r=t.prop("tagName")==="button".toUpperCase()?t:t.parent();modeToggle.flipMode(),r.trigger("blur")})),$("#sidebar-trigger").on("click",u.toggle),$("#mask").on("click",u.toggle),d.on("click",(function(){E.on(),O.on(),h.trigger("focus")})),p.on("click",(function(){E.off(),O.off()})),h.on("focus",(function(){m.addClass(S)})),h.on("focusout",(function(){m.removeClass(S)})),h.on("input",(function(){""===h.val()?x()?C.removeClass(A):O.off():(O.on(),x()&&C.addClass(A))})),P.on("hide.bs.collapse",(function(){var e="h_"+$(this).attr("id").substring(2);e&&($("#".concat(e," .far.fa-folder-open")).attr("class","far fa-folder fa-fw"),$("#".concat(e," i.fas")).addClass("rotate"),$("#".concat(e)).removeClass("hide-border-bottom"))})),P.on("show.bs.collapse",(function(){var e="h_"+$(this).attr("id").substring(2);e&&($("#".concat(e," .far.fa-folder")).attr("class","far fa-folder-open fa-fw"),$("#".concat(e," i.fas")).removeClass("rotate"),$("#".concat(e)).addClass("hide-border-bottom"))}))}();
diff --git a/pseo_website/_site/assets/js/dist/commons.min.js b/pseo_website/_site/assets/js/dist/commons.min.js
deleted file mode 100644
index d1967540..00000000
--- a/pseo_website/_site/assets/js/dist/commons.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*!
- * Chirpy v6.2.3 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
- */
-!function(){"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r.container>.row"),m=$("#topbar-title"),v=$("search"),y=$("#search-result-wrapper"),g=$("#search-results"),h=$("#search-input"),C=$("#search-hints"),w=$("html,body"),k="loaded",A="unloaded",S="input-focus",T="d-flex",j=function(){function t(){e(this,t)}return r(t,null,[{key:"on",value:function(){t.offset=window.scrollY,w.scrollTop(0)}},{key:"off",value:function(){w.scrollTop(t.offset)}}]),t}();n(j,"offset",0),n(j,"resultVisible",!1);var E,O,x=function(){function t(){e(this,t)}return r(t,null,[{key:"on",value:function(){f.addClass(A),m.addClass(A),d.addClass(A),v.addClass(T),p.addClass(k)}},{key:"off",value:function(){p.removeClass(k),v.removeClass(T),f.removeClass(A),m.removeClass(A),d.removeClass(A)}}]),t}(),P=function(){function t(){e(this,t)}return r(t,null,[{key:"on",value:function(){j.resultVisible||(j.on(),y.removeClass(A),b.addClass(A),j.resultVisible=!0)}},{key:"off",value:function(){j.resultVisible&&(g.empty(),C.hasClass(A)&&C.removeClass(A),y.addClass(A),b.removeClass(A),j.off(),h.val(""),j.resultVisible=!1)}}]),t}();function V(){return p.hasClass(k)}E=$(window),O=$("#back-to-top"),E.on("scroll",(function(){E.scrollTop()>50?O.fadeIn():O.fadeOut()})),O.on("click",(function(){E.scrollTop(0)})),o(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(e){return new bootstrap.Tooltip(e)})),0!==l.length&&l.off().on("click",(function(e){var t=$(e.target),r=t.prop("tagName")==="button".toUpperCase()?t:t.parent();modeToggle.flipMode(),r.trigger("blur")})),$("#sidebar-trigger").on("click",c.toggle),$("#mask").on("click",c.toggle),d.on("click",(function(){x.on(),P.on(),h.trigger("focus")})),p.on("click",(function(){x.off(),P.off()})),h.on("focus",(function(){v.addClass(S)})),h.on("focusout",(function(){v.removeClass(S)})),h.on("input",(function(){""===h.val()?V()?C.removeClass(A):P.off():(P.on(),V()&&C.addClass(A))}))}();
diff --git a/pseo_website/_site/assets/js/dist/home.min.js b/pseo_website/_site/assets/js/dist/home.min.js
deleted file mode 100644
index f1c21d6e..00000000
--- a/pseo_website/_site/assets/js/dist/home.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*!
- * Chirpy v6.2.3 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
- */
-!function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r.container>.row"),v=$("#topbar-title"),g=$("search"),h=$("#search-result-wrapper"),b=$("#search-results"),y=$("#search-input"),C=$("#search-hints"),k=$("html,body"),w="loaded",T="unloaded",A="input-focus",j="d-flex",S=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){e.offset=window.scrollY,k.scrollTop(0)}},{key:"off",value:function(){k.scrollTop(e.offset)}}]),e}();n(S,"offset",0),n(S,"resultVisible",!1);var E=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){f.addClass(T),v.addClass(T),d.addClass(T),g.addClass(j),m.addClass(w)}},{key:"off",value:function(){m.removeClass(w),g.removeClass(j),f.removeClass(T),v.removeClass(T),d.removeClass(T)}}]),e}(),x=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){S.resultVisible||(S.on(),h.removeClass(T),p.addClass(T),S.resultVisible=!0)}},{key:"off",value:function(){S.resultVisible&&(b.empty(),C.hasClass(T)&&C.removeClass(T),h.addClass(T),p.removeClass(T),S.off(),y.val(""),S.resultVisible=!1)}}]),e}();function I(){return m.hasClass(w)}$(".collapse");$(".code-header>button").children().attr("class");var M="data-src",F="data-lqip",O={SHIMMER:"shimmer",BLUR:"blur"};function R(t){$(this).parent().removeClass(t)}function D(){this.complete&&(this.hasAttribute(F)?R.call(this,O.BLUR):R.call(this,O.SHIMMER))}function P(){var t=$(this),e=t.attr(M);t.attr("src",encodeURI(e)),t.removeAttr(M)}var U,V,H=function(){function e(){t(this,e)}return r(e,null,[{key:"attrTimestamp",get:function(){return"data-ts"}},{key:"attrDateFormat",get:function(){return"data-df"}},{key:"locale",get:function(){return $("html").attr("lang").substring(0,2)}},{key:"getTimestamp",value:function(t){return Number(t.attr(e.attrTimestamp))}},{key:"getDateFormat",value:function(t){return t.attr(e.attrDateFormat)}}]),e}();U=$(window),V=$("#back-to-top"),U.on("scroll",(function(){U.scrollTop()>50?V.fadeIn():V.fadeOut()})),V.on("click",(function(){U.scrollTop(0)})),o(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(t){return new bootstrap.Tooltip(t)})),0!==l.length&&l.off().on("click",(function(t){var e=$(t.target),r=e.prop("tagName")==="button".toUpperCase()?e:e.parent();modeToggle.flipMode(),r.trigger("blur")})),$("#sidebar-trigger").on("click",c.toggle),$("#mask").on("click",c.toggle),d.on("click",(function(){E.on(),x.on(),y.trigger("focus")})),m.on("click",(function(){E.off(),x.off()})),y.on("focus",(function(){g.addClass(A)})),y.on("focusout",(function(){g.removeClass(A)})),y.on("input",(function(){""===y.val()?I()?C.removeClass(T):x.off():(x.on(),I()&&C.addClass(T))})),dayjs.locale(H.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),$("[".concat(H.attrTimestamp,"]")).each((function(){var t=dayjs.unix(H.getTimestamp($(this))),e=t.format(H.getDateFormat($(this)));$(this).text(e),$(this).removeAttr(H.attrTimestamp),$(this).removeAttr(H.attrDateFormat);var r=$(this).attr("data-bs-toggle");if(void 0!==r&&"tooltip"===r){var n=t.format("llll");$(this).attr("data-bs-title",n),new bootstrap.Tooltip($(this))}})),function(){var t=$("article img");t.length&&t.on("load",D),$('article img[loading="lazy"]').each((function(){this.complete&&R.call(this,O.SHIMMER)}));var e=$("article img[".concat(F,'="true"]'));e.length&&e.each(P)}()}();
diff --git a/pseo_website/_site/assets/js/dist/misc.min.js b/pseo_website/_site/assets/js/dist/misc.min.js
deleted file mode 100644
index d16f2a01..00000000
--- a/pseo_website/_site/assets/js/dist/misc.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*!
- * Chirpy v6.2.3 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
- */
-!function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r.container>.row"),v=$("#topbar-title"),g=$("search"),y=$("#search-result-wrapper"),b=$("#search-results"),h=$("#search-input"),C=$("#search-hints"),k=$("html,body"),w="loaded",T="unloaded",j="input-focus",A="d-flex",S=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){e.offset=window.scrollY,k.scrollTop(0)}},{key:"off",value:function(){k.scrollTop(e.offset)}}]),e}();n(S,"offset",0),n(S,"resultVisible",!1);var x=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){f.addClass(T),v.addClass(T),d.addClass(T),g.addClass(A),m.addClass(w)}},{key:"off",value:function(){m.removeClass(w),g.removeClass(A),f.removeClass(T),v.removeClass(T),d.removeClass(T)}}]),e}(),E=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){S.resultVisible||(S.on(),y.removeClass(T),p.addClass(T),S.resultVisible=!0)}},{key:"off",value:function(){S.resultVisible&&(b.empty(),C.hasClass(T)&&C.removeClass(T),y.addClass(T),p.removeClass(T),S.off(),h.val(""),S.resultVisible=!1)}}]),e}();function F(){return m.hasClass(w)}$(".collapse");$(".code-header>button").children().attr("class");var O,D,P=function(){function e(){t(this,e)}return r(e,null,[{key:"attrTimestamp",get:function(){return"data-ts"}},{key:"attrDateFormat",get:function(){return"data-df"}},{key:"locale",get:function(){return $("html").attr("lang").substring(0,2)}},{key:"getTimestamp",value:function(t){return Number(t.attr(e.attrTimestamp))}},{key:"getDateFormat",value:function(t){return t.attr(e.attrDateFormat)}}]),e}();O=$(window),D=$("#back-to-top"),O.on("scroll",(function(){O.scrollTop()>50?D.fadeIn():D.fadeOut()})),D.on("click",(function(){O.scrollTop(0)})),o(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(t){return new bootstrap.Tooltip(t)})),0!==l.length&&l.off().on("click",(function(t){var e=$(t.target),r=e.prop("tagName")==="button".toUpperCase()?e:e.parent();modeToggle.flipMode(),r.trigger("blur")})),$("#sidebar-trigger").on("click",c.toggle),$("#mask").on("click",c.toggle),d.on("click",(function(){x.on(),E.on(),h.trigger("focus")})),m.on("click",(function(){x.off(),E.off()})),h.on("focus",(function(){g.addClass(j)})),h.on("focusout",(function(){g.removeClass(j)})),h.on("input",(function(){""===h.val()?F()?C.removeClass(T):E.off():(E.on(),F()&&C.addClass(T))})),dayjs.locale(P.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),$("[".concat(P.attrTimestamp,"]")).each((function(){var t=dayjs.unix(P.getTimestamp($(this))),e=t.format(P.getDateFormat($(this)));$(this).text(e),$(this).removeAttr(P.attrTimestamp),$(this).removeAttr(P.attrDateFormat);var r=$(this).attr("data-bs-toggle");if(void 0!==r&&"tooltip"===r){var n=t.format("llll");$(this).attr("data-bs-title",n),new bootstrap.Tooltip($(this))}}))}();
diff --git a/pseo_website/_site/assets/js/dist/page.min.js b/pseo_website/_site/assets/js/dist/page.min.js
deleted file mode 100644
index 07411828..00000000
--- a/pseo_website/_site/assets/js/dist/page.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*!
- * Chirpy v6.2.3 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
- */
-!function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n.container>.row"),v=$("#topbar-title"),g=$("search"),b=$("#search-result-wrapper"),h=$("#search-results"),y=$("#search-input"),C=$("#search-hints"),w=$("html,body"),k="loaded",S="unloaded",A="input-focus",T="d-flex",E=function(){function e(){t(this,e)}return n(e,null,[{key:"on",value:function(){e.offset=window.scrollY,w.scrollTop(0)}},{key:"off",value:function(){w.scrollTop(e.offset)}}]),e}();r(E,"offset",0),r(E,"resultVisible",!1);var j=function(){function e(){t(this,e)}return n(e,null,[{key:"on",value:function(){f.addClass(S),v.addClass(S),d.addClass(S),g.addClass(T),p.addClass(k)}},{key:"off",value:function(){p.removeClass(k),g.removeClass(T),f.removeClass(S),v.removeClass(S),d.removeClass(S)}}]),e}(),I=function(){function e(){t(this,e)}return n(e,null,[{key:"on",value:function(){E.resultVisible||(E.on(),b.removeClass(S),m.addClass(S),E.resultVisible=!0)}},{key:"off",value:function(){E.resultVisible&&(h.empty(),C.hasClass(S)&&C.removeClass(S),b.addClass(S),m.removeClass(S),E.off(),y.val(""),E.resultVisible=!1)}}]),e}();function M(){return p.hasClass(k)}$(".collapse");var x=".code-header>button",O="fas fa-check",P="timeout",R="data-title-succeed",U="data-bs-original-title",V=2e3;function q(t){if($(t)[0].hasAttribute(P)){var e=$(t).attr(P);if(Number(e)>Date.now())return!0}return!1}function N(t){$(t).attr(P,Date.now()+V)}function B(t){$(t).removeAttr(P)}var H=$(x).children().attr("class");var z,D,L="data-src",J="data-lqip",Y={SHIMMER:"shimmer",BLUR:"blur"};function F(t){$(this).parent().removeClass(t)}function G(){this.complete&&(this.hasAttribute(J)?F.call(this,Y.BLUR):F.call(this,Y.SHIMMER))}function K(){var t=$(this),e=t.attr(L);t.attr("src",encodeURI(e)),t.removeAttr(L)}z=$(window),D=$("#back-to-top"),z.on("scroll",(function(){z.scrollTop()>50?D.fadeIn():D.fadeOut()})),D.on("click",(function(){z.scrollTop(0)})),o(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(t){return new bootstrap.Tooltip(t)})),0!==l.length&&l.off().on("click",(function(t){var e=$(t.target),n=e.prop("tagName")==="button".toUpperCase()?e:e.parent();modeToggle.flipMode(),n.trigger("blur")})),$("#sidebar-trigger").on("click",s.toggle),$("#mask").on("click",s.toggle),d.on("click",(function(){j.on(),I.on(),y.trigger("focus")})),p.on("click",(function(){j.off(),I.off()})),y.on("focus",(function(){g.addClass(A)})),y.on("focusout",(function(){g.removeClass(A)})),y.on("input",(function(){""===y.val()?M()?C.removeClass(S):I.off():(I.on(),M()&&C.addClass(S))})),function(){var t=$("article img");t.length&&t.on("load",G),$('article img[loading="lazy"]').each((function(){this.complete&&F.call(this,Y.SHIMMER)}));var e=$("article img[".concat(J,'="true"]'));e.length&&e.each(K)}(),$(".popup")<=0||$(".popup").magnificPopup({type:"image",closeOnContentClick:!0,showCloseBtn:!1,zoom:{enabled:!0,duration:300,easing:"ease-in-out"}}),function(){if($(x).length){var t=new ClipboardJS(x,{target:function(t){return t.parentNode.nextElementSibling.querySelector("code .rouge-code")}});o(document.querySelectorAll(x)).map((function(t){return new bootstrap.Tooltip(t,{placement:"left"})})),t.on("success",(function(t){t.clearSelection();var e=t.trigger;q(e)||(!function(t){$(t).children().attr("class",O)}(e),function(t){var e=$(t).attr(R);$(t).attr(U,e).tooltip("show")}(e),N(e),setTimeout((function(){!function(t){$(t).tooltip("hide").removeAttr(U)}(e),function(t){$(t).children().attr("class",H)}(e),B(e)}),V))}))}var e=$("#copy-link");e.on("click",(function(t){var e=$(t.target);q(e)||navigator.clipboard.writeText(window.location.href).then((function(){var t=e.attr(U),n=e.attr(R);e.attr(U,n).tooltip("show"),N(e),setTimeout((function(){e.attr(U,t),B(e)}),V)}))})),e.on("mouseleave",(function(t){$(t.target).tooltip("hide")}))}()}();
diff --git a/pseo_website/_site/assets/js/dist/post.min.js b/pseo_website/_site/assets/js/dist/post.min.js
deleted file mode 100644
index f679d252..00000000
--- a/pseo_website/_site/assets/js/dist/post.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*!
- * Chirpy v6.2.3 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/
- */
-!function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r.container>.row"),g=$("#topbar-title"),h=$("search"),v=$("#search-result-wrapper"),b=$("#search-results"),y=$("#search-input"),w=$("#search-hints"),C=$("html,body"),k="loaded",S="unloaded",T="input-focus",A="d-flex",j=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){e.offset=window.scrollY,C.scrollTop(0)}},{key:"off",value:function(){C.scrollTop(e.offset)}}]),e}();n(j,"offset",0),n(j,"resultVisible",!1);var E=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){f.addClass(S),g.addClass(S),d.addClass(S),h.addClass(A),m.addClass(k)}},{key:"off",value:function(){m.removeClass(k),h.removeClass(A),f.removeClass(S),g.removeClass(S),d.removeClass(S)}}]),e}(),x=function(){function e(){t(this,e)}return r(e,null,[{key:"on",value:function(){j.resultVisible||(j.on(),v.removeClass(S),p.addClass(S),j.resultVisible=!0)}},{key:"off",value:function(){j.resultVisible&&(b.empty(),w.hasClass(S)&&w.removeClass(S),v.addClass(S),p.removeClass(S),j.off(),y.val(""),j.resultVisible=!1)}}]),e}();function I(){return m.hasClass(k)}$(".collapse");var M=".code-header>button",D="fas fa-check",O="timeout",F="data-title-succeed",P="data-bs-original-title",R=2e3;function q(t){if($(t)[0].hasAttribute(O)){var e=$(t).attr(O);if(Number(e)>Date.now())return!0}return!1}function N(t){$(t).attr(O,Date.now()+R)}function U(t){$(t).removeAttr(O)}var V=$(M).children().attr("class");var z="data-src",B="data-lqip",H={SHIMMER:"shimmer",BLUR:"blur"};function L(t){$(this).parent().removeClass(t)}function _(){this.complete&&(this.hasAttribute(B)?L.call(this,H.BLUR):L.call(this,H.SHIMMER))}function J(){var t=$(this),e=t.attr(z);t.attr("src",encodeURI(e)),t.removeAttr(z)}var Y,G,K=function(){function e(){t(this,e)}return r(e,null,[{key:"attrTimestamp",get:function(){return"data-ts"}},{key:"attrDateFormat",get:function(){return"data-df"}},{key:"locale",get:function(){return $("html").attr("lang").substring(0,2)}},{key:"getTimestamp",value:function(t){return Number(t.attr(e.attrTimestamp))}},{key:"getDateFormat",value:function(t){return t.attr(e.attrDateFormat)}}]),e}();0!==l.length&&l.off().on("click",(function(t){var e=$(t.target),r=e.prop("tagName")==="button".toUpperCase()?e:e.parent();modeToggle.flipMode(),r.trigger("blur")})),$("#sidebar-trigger").on("click",u.toggle),$("#mask").on("click",u.toggle),d.on("click",(function(){E.on(),x.on(),y.trigger("focus")})),m.on("click",(function(){E.off(),x.off()})),y.on("focus",(function(){h.addClass(T)})),y.on("focusout",(function(){h.removeClass(T)})),y.on("input",(function(){""===y.val()?I()?w.removeClass(S):x.off():(x.on(),I()&&w.addClass(S))})),function(){var t=$("article img");t.length&&t.on("load",_),$('article img[loading="lazy"]').each((function(){this.complete&&L.call(this,H.SHIMMER)}));var e=$("article img[".concat(B,'="true"]'));e.length&&e.each(J)}(),$(".popup")<=0||$(".popup").magnificPopup({type:"image",closeOnContentClick:!0,showCloseBtn:!1,zoom:{enabled:!0,duration:300,easing:"ease-in-out"}}),dayjs.locale(K.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),$("[".concat(K.attrTimestamp,"]")).each((function(){var t=dayjs.unix(K.getTimestamp($(this))),e=t.format(K.getDateFormat($(this)));$(this).text(e),$(this).removeAttr(K.attrTimestamp),$(this).removeAttr(K.attrDateFormat);var r=$(this).attr("data-bs-toggle");if(void 0!==r&&"tooltip"===r){var n=t.format("llll");$(this).attr("data-bs-title",n),new bootstrap.Tooltip($(this))}})),function(){if($(M).length){var t=new ClipboardJS(M,{target:function(t){return t.parentNode.nextElementSibling.querySelector("code .rouge-code")}});o(document.querySelectorAll(M)).map((function(t){return new bootstrap.Tooltip(t,{placement:"left"})})),t.on("success",(function(t){t.clearSelection();var e=t.trigger;q(e)||(!function(t){$(t).children().attr("class",D)}(e),function(t){var e=$(t).attr(F);$(t).attr(P,e).tooltip("show")}(e),N(e),setTimeout((function(){!function(t){$(t).tooltip("hide").removeAttr(P)}(e),function(t){$(t).children().attr("class",V)}(e),U(e)}),R))}))}var e=$("#copy-link");e.on("click",(function(t){var e=$(t.target);q(e)||navigator.clipboard.writeText(window.location.href).then((function(){var t=e.attr(P),r=e.attr(F);e.attr(P,r).tooltip("show"),N(e),setTimeout((function(){e.attr(P,t),U(e)}),R)}))})),e.on("mouseleave",(function(t){$(t.target).tooltip("hide")}))}(),document.querySelector("main h2")&&tocbot.init({tocSelector:"#toc",contentSelector:".content",ignoreSelector:"[data-toc-skip]",headingSelector:"h2, h3, h4",orderedList:!1,scrollSmooth:!1}),Y=$(window),G=$("#back-to-top"),Y.on("scroll",(function(){Y.scrollTop()>50?G.fadeIn():G.fadeOut()})),G.on("click",(function(){Y.scrollTop(0)})),o(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(t){return new bootstrap.Tooltip(t)}))}();
diff --git a/pseo_website/_site/categories/ai-advancements/index.html b/pseo_website/_site/categories/ai-advancements/index.html
deleted file mode 100644
index 6dcd5a4d..00000000
--- a/pseo_website/_site/categories/ai-advancements/index.html
+++ /dev/null
@@ -1,1727 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI Advancements | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Category
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI Advancements
- 1
-
-
-
-
- -
- Exciting AI Advancements- Musk's Chatbot to Apple's M3 Chips
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/categories/ai-technology/index.html b/pseo_website/_site/categories/ai-technology/index.html
deleted file mode 100644
index 93963910..00000000
--- a/pseo_website/_site/categories/ai-technology/index.html
+++ /dev/null
@@ -1,1727 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI Technology | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Category
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI Technology
- 1
-
-
-
-
- -
- Introducing GPT-4 Turbo- The Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/categories/animation/index.html b/pseo_website/_site/categories/animation/index.html
deleted file mode 100644
index f6420205..00000000
--- a/pseo_website/_site/categories/animation/index.html
+++ /dev/null
@@ -1,1727 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Animation | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Category
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Animation
- 1
-
-
-
-
- -
- The Top 5 AI Animation Software Tools Choose the Perfect Tool for Your Animation Needs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/categories/artificial-intelligence/index.html b/pseo_website/_site/categories/artificial-intelligence/index.html
deleted file mode 100644
index d0ef42cd..00000000
--- a/pseo_website/_site/categories/artificial-intelligence/index.html
+++ /dev/null
@@ -1,1775 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Artificial Intelligence | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Category
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Artificial Intelligence
- 3
-
-
-
-
- -
- How to Use Stable Diffusion in Google Colab for Free A Step-by-Step Guide
-
-
-
-
-
-
-
-
-
-
- -
- Grok Elon Musk's Revolutionary AI Chatbot Redefining the Industry
-
-
-
-
-
-
-
-
-
-
- -
- State of AI Report 2022 Unveiling Innovations and Future Trends in Artificial Intelligence
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/categories/chatbots/index.html b/pseo_website/_site/categories/chatbots/index.html
deleted file mode 100644
index 789292dc..00000000
--- a/pseo_website/_site/categories/chatbots/index.html
+++ /dev/null
@@ -1,1727 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- chatbots | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Category
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- chatbots
- 1
-
-
-
-
- -
- Grok Elon Musk's Revolutionary AI Chatbot Redefining the Industry
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/categories/future-technology/index.html b/pseo_website/_site/categories/future-technology/index.html
deleted file mode 100644
index 348bf9eb..00000000
--- a/pseo_website/_site/categories/future-technology/index.html
+++ /dev/null
@@ -1,1727 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Future Technology | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Category
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Future Technology
- 1
-
-
-
-
- -
- Introducing GPT-4 Turbo- The Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/categories/index.html b/pseo_website/_site/categories/index.html
deleted file mode 100644
index d2d8c83c..00000000
--- a/pseo_website/_site/categories/index.html
+++ /dev/null
@@ -1,1969 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Categories | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Categories
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Categories
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
- Tech News
-
-
-
- 1
-
-
- post
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
- Future Technology
-
-
-
- 1
-
-
- post
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
- Technology
-
-
-
- 5
-
-
- posts
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/categories/media-and-entertainment/index.html b/pseo_website/_site/categories/media-and-entertainment/index.html
deleted file mode 100644
index 91dcd161..00000000
--- a/pseo_website/_site/categories/media-and-entertainment/index.html
+++ /dev/null
@@ -1,1727 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Media and Entertainment | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Category
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Media and Entertainment
- 1
-
-
-
-
- -
- The Impact of Artificial Intelligence on Microsoft's News Website
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/categories/tech-news/index.html b/pseo_website/_site/categories/tech-news/index.html
deleted file mode 100644
index 4f6e4c82..00000000
--- a/pseo_website/_site/categories/tech-news/index.html
+++ /dev/null
@@ -1,1727 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tech News | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Category
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tech News
- 1
-
-
-
-
- -
- Exciting AI Advancements- Musk's Chatbot to Apple's M3 Chips
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/categories/technology/index.html b/pseo_website/_site/categories/technology/index.html
deleted file mode 100644
index 883dfdb5..00000000
--- a/pseo_website/_site/categories/technology/index.html
+++ /dev/null
@@ -1,1823 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Technology | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Category
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Technology
- 5
-
-
-
-
- -
- The Top 5 AI Animation Software Tools Choose the Perfect Tool for Your Animation Needs
-
-
-
-
-
-
-
-
-
-
- -
- How to Use Stable Diffusion in Google Colab for Free A Step-by-Step Guide
-
-
-
-
-
-
-
-
-
-
- -
- Grok Elon Musk's Revolutionary AI Chatbot Redefining the Industry
-
-
-
-
-
-
-
-
-
-
- -
- State of AI Report 2022 Unveiling Innovations and Future Trends in Artificial Intelligence
-
-
-
-
-
-
-
-
-
-
- -
- The Impact of Artificial Intelligence on Microsoft's News Website
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/feed.xml b/pseo_website/_site/feed.xml
deleted file mode 100644
index 1c620053..00000000
--- a/pseo_website/_site/feed.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-
-
-
- http://localhost:4000/
- AI-Takia
- Begginer friendly AI technologies simplified & explained. Know & boost productivity with latest AI tools.
- 2023-11-09T10:34:41+05:30
-
- ajaysi
- http://localhost:4000/
-
-
-
- Jekyll
- © 2023 ajaysi
- /assets/img/favicons/favicon.ico
- /assets/img/favicons/favicon-96x96.png
-
-
-
-
- The Top 5 AI Animation Software Tools Choose the Perfect Tool for Your Animation Needs
-
- 2023-11-09T09:13:28+05:30
-
- 2023-11-09T09:13:28+05:30
-
- http://localhost:4000/posts/The-Top-5-AI-Animation-Software-Tools-Choose-the-Perfect-Tool-for-Your-Animation-Needs/
-
-
- ajaysi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Introduction:
-Creating animations has never been easier, thanks to advancements in technology. AI animation software has revolutionized the industry, allowing professional animators and motion designers to produce high-quality films without the challenges of traditional animation. Whether you’re a beginner or an advanced user, there are numerous AI animation software tools available in the mark...
-
-
-
-
-
-
-
- How to Use Stable Diffusion in Google Colab for Free A Step-by-Step Guide
-
- 2023-11-09T08:51:09+05:30
-
- 2023-11-09T08:51:09+05:30
-
- http://localhost:4000/posts/How-to-Use-Stable-Diffusion-in-Google-Colab-for-Free-A-Step-by-Step-Guide/
-
-
- ajaysi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Introduction:
-Are you ready to unlock the power of Stable Diffusion without the need for a high-end GPU or CPU? In this step-by-step guide, we’ll show you how to use Stable Diffusion in Google Colab for free. Get ready to create stunning, high-quality images using this incredible tool. No more limitations - let’s dive in!
-
-Image Caption
-
-Title: How to Use Stable Diffusion in Google Colab for Fr...
-
-
-
-
-
-
-
- Grok Elon Musk's Revolutionary AI Chatbot Redefining the Industry
-
- 2023-11-09T07:57:21+05:30
-
- 2023-11-09T07:57:21+05:30
-
- http://localhost:4000/posts/Grok-Elon-Musks-Revolutionary-AI-Chatbot-Redefining-the-Industry/
-
-
- ajaysi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Title: Elon Musk’s Grok: The Revolutionary AI Chatbot Revolutionizing the Industry
-
-Meta-description: Discover the groundbreaking features and advantages of Elon Musk’s latest AI creation, Grok. Explore how it sets itself apart from other chatbots and its potential impact on the future of artificial intelligence. Stay updated on the latest tech news and developments with NBC News.
-
-Introduction...
-
-
-
-
-
-
-
- State of AI Report 2022 Unveiling Innovations and Future Trends in Artificial Intelligence
-
- 2023-11-09T07:32:15+05:30
-
- 2023-11-09T07:32:15+05:30
-
- http://localhost:4000/posts/State-of-AI-Report-2022-Unveiling-Innovations-and-Future-Trends-in-Artificial-Intelligence/
-
-
- ajaysi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Welcome to the captivating world of Artificial Intelligence! In this blog article, we will delve into the highly influential State of AI Report 2022, unveiling the latest advancements and future potential in the field. From mind-boggling real-time thought to image decoding to revolutionary progress in language models, we will explore the cutting-edge innovations that are shaping the future of A...
-
-
-
-
-
-
-
- Exciting AI Advancements- Musk's Chatbot to Apple's M3 Chips
-
- 2023-11-08T23:44:30+05:30
-
- 2023-11-08T23:44:30+05:30
-
- http://localhost:4000/posts/Exciting-AI-Advancements-Musks-Chatbot-to-Apples-M3-Chips/
-
-
- ajaysi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Welcome to the exciting world of AI advancements! From Elon Musk’s groundbreaking chatbot to Apple’s powerful M3 chips, this blog will take you on a journey through the latest and most intriguing developments in artificial intelligence. Discover how AI is revolutionizing industries like filmmaking, explore the impact of new regulations, and delve into the job market landscape.
-
-
- Exciting AI a...
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/index.html b/pseo_website/_site/index.html
deleted file mode 100644
index 6437e833..00000000
--- a/pseo_website/_site/index.html
+++ /dev/null
@@ -1,2763 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- The Top 5 AI Animation Software Tools Choose the Perfect Tool for Your Animation Needs
-
-
-
-
-
-
-
-
-
- Introduction:
-Creating animations has never been easier, thanks to advancements in technology. AI animation software has revolutionized the industry, allowing professional animators and motion desi...
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- How to Use Stable Diffusion in Google Colab for Free A Step-by-Step Guide
-
-
-
-
-
-
-
-
-
- Introduction:
-Are you ready to unlock the power of Stable Diffusion without the need for a high-end GPU or CPU? In this step-by-step guide, we’ll show you how to use Stable Diffusion in Google Cola...
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Grok Elon Musk's Revolutionary AI Chatbot Redefining the Industry
-
-
-
-
-
-
-
-
-
- Title: Elon Musk’s Grok: The Revolutionary AI Chatbot Revolutionizing the Industry
-
-Meta-description: Discover the groundbreaking features and advantages of Elon Musk’s latest AI creation, Grok. Ex...
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- State of AI Report 2022 Unveiling Innovations and Future Trends in Artificial Intelligence
-
-
-
-
-
-
-
-
-
- Welcome to the captivating world of Artificial Intelligence! In this blog article, we will delve into the highly influential State of AI Report 2022, unveiling the latest advancements and future po...
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Exciting AI Advancements- Musk's Chatbot to Apple's M3 Chips
-
-
-
-
-
-
-
-
-
- Welcome to the exciting world of AI advancements! From Elon Musk’s groundbreaking chatbot to Apple’s powerful M3 chips, this blog will take you on a journey through the latest and most intriguing d...
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Introducing GPT-4 Turbo- The Future of AI Assistants
-
-
-
-
-
-
-
-
-
- Image Caption
-Key Highlights
-
-
- GPT-4 Turbo: A more advanced and capable model
- Assistance API: Simplifying the development of AI agents
- Customization: Tailored AI models for specific purposes
-...
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- The Impact of Artificial Intelligence on Microsoft's News Website
-
-
-
-
-
-
-
-
-
- Introduction
-
-In recent times, Microsoft’s news website, MSN.com, has become a platform for controversial headlines and false stories. From conspiracy theories about the Democratic Party orchestrat...
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/norobots/index.html b/pseo_website/_site/norobots/index.html
deleted file mode 100644
index b9833218..00000000
--- a/pseo_website/_site/norobots/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
- Redirecting…
-
-
-
-
- Redirecting…
- Click here if you are not redirected.
-
diff --git a/pseo_website/_site/posts/Exciting-AI-Advancements-Musks-Chatbot-to-Apples-M3-Chips/index.html b/pseo_website/_site/posts/Exciting-AI-Advancements-Musks-Chatbot-to-Apples-M3-Chips/index.html
deleted file mode 100644
index ce3b4407..00000000
--- a/pseo_website/_site/posts/Exciting-AI-Advancements-Musks-Chatbot-to-Apples-M3-Chips/index.html
+++ /dev/null
@@ -1,2467 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Exciting AI Advancements- Musk's Chatbot to Apple's M3 Chips | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Post
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Exciting AI Advancements- Musk's Chatbot to Apple's M3 Chips
-
-
-
-
-
-
- Welcome to the exciting world of AI advancements! From Elon Musk’s groundbreaking chatbot to Apple’s powerful M3 chips, this blog will take you on a journey through the latest and most intriguing developments in artificial intelligence. Discover how AI is revolutionizing industries like filmmaking, explore the impact of new regulations, and delve into the job market landscape.
-
-
- - Exciting AI advancements from Elon Musk’s Grok chatbot to Apple’s M3 chips
- - Adobe’s AI tools revolutionize filmmaking, from script to video editing
- - Runway’s Gen 2 text-to-video generator creates realistic videos from descriptions
- - President Biden introduces the US’ first AI regulations for safety and security
- - LinkedIn’s AI career chatbot offers personalized job advice and insights
- - New Computer’s personal assistant AI, ., becomes a companion in daily life
- - IBM’s analog AI chip redefines the tech industry with power efficiency and speed
- - Amazon partners with Anthropic for AI chip development, competing with Google
- - Major tech companies like Microsoft, Google, Amazon, Apple, and Meta offer AI job opportunities
- - Alibaba’s Tongyi Qianwen 2.0 advances AI capabilities for content generation
- - Apple’s M3 chips in MacBook Pros provide computational power for demanding AI tasks
-
-
-
-
-Grok: Elon Musk’s Revolutionary AI Chatbot
-
-Elon Musk, the visionary entrepreneur, has introduced a game-changing AI chatbot called Grok. Developed by his company XAI, Grok outperforms OpenAI’s chatbot, GPT, in various tests. What sets Grok apart is its ability to stay up-to-date with real-time information through its connection to the X platform. Not only is Grok incredibly intelligent, but it’s also designed to assist users in research and innovation. Additionally, Grok showcases a touch of humor when answering challenging questions. While it has surpassed GPT 3.5 in math and coding tests, it still falls short of OpenAI’s latest GPT-4. Grok is currently available to select users in the U.S. through a subscription to X Premium Plus. XAI is committed to ensuring the responsible and safe use of AI, with Grok being continuously tested and improved. This new venture is just the beginning for Musk’s AI endeavors.
-
-Adobe’s AI Tools for Filmmakers
-
-In the realm of filmmaking, Adobe is making significant strides with its cutting-edge AI tools. While some tools are still in development, Adobe has already unveiled Firefly, a tool that can transform scripts into storyboards with a simple click. Filmmakers without access to a storyboard artist can now bring their visions to life seamlessly. Moreover, Adobe showcased other exciting projects, such as a tool that turns simple sketches into detailed drawings and a video effect tool that can intelligently remove unwanted elements from videos. They are also working on an AI-powered tool that can dub videos into different languages while matching the speaker’s voice. These advanced AI tools demonstrate Adobe’s commitment to enhancing the filmmaking process. Although not widely available yet, they offer a glimpse into the future of cinematic creativity.
-
-Runway’s Improved Text-to-Video Generator
-
-New York-based AI video company, Runway, has made significant improvements to its Gen 2 text-to-video generator. This upgraded version creates remarkably realistic videos that can be generated by simply typing a description. Previously, users had to start with an existing video, but now they can craft videos lasting up to 18 seconds with enhanced clarity and smoother movements. The added feature of controlling the camera movements further enhances the cinematic experience. Runway’s Gen 2 text-to-video generator has gained popularity among creative individuals who utilize it to produce captivating music videos and short films. This advancement highlights the potential for AI to transform the world of visual storytelling.
-
-President Biden’s New AI Regulations
-
-On October 30th, President Joe Biden signed the United States’ first set of regulations for artificial intelligence. These regulations aim to ensure the safety and security of AI products, particularly in relation to national security, the economy, and public health. President Biden acknowledged the significant role AI plays in our lives and emphasized the need for careful management to harness its benefits effectively while mitigating potential risks. With AI progressing at a rapid pace, leaders worldwide are actively addressing the challenges posed by this technology. President Biden’s move represents a significant step towards regulating AI and ensuring its responsible deployment.
-
-LinkedIn’s AI Career Chatbot
-
-LinkedIn, the renowned professional networking platform, now boasts over a billion members and has introduced an AI chatbot to assist users in their job hunt. This chatbot serves as a personalized career guide, utilizing OpenAI’s latest GPT-4 technology to provide tailored advice and insights on job suitability and application strategies. LinkedIn, a part of Microsoft, has been actively developing AI features to streamline job searching, including automated recruiting and profile optimization. Despite recent layoffs within the engineering team, LinkedIn remains committed to fairness and bias mitigation in its AI algorithms, recognizing the sensitive nature of employment-related decisions. The AI career chatbot demonstrates LinkedIn’s dedication to enhancing the job search experience for its premium members.
-
-New Computer’s Personal Assistant AI: .
-
-In the world of personal AI assistants, . from New Computer stands out as a companion rather than just a tool. Designed to integrate seamlessly into users’ lives, . remembers conversations and utilizes that information to assist with daily tasks. It offers suggestions based on users’ preferences, making it akin to a thoughtful friend. Early users have described . as a helping hand for the brain, providing invaluable support. Although it may have occasional slip-ups or an overly eager desire to help, users find it challenging to let go once they become accustomed to its presence. New Computer is currently testing . and plans to launch it by the end of the year, potentially with a fee-based subscription. This innovative personal AI assistant promises to revolutionize daily life.
-
-IBM’s Groundbreaking Analog AI Chip
-
-IBM has introduced a groundbreaking analog AI chip that has the potential to redefine the tech industry. Unlike traditional digital chips that function as binary switches, IBM’s analog chip operates more like a slider, smoothly adjusting to different levels. This unique architecture makes it ideal for complex mathematical operations involved in AI. The new chip boasts impressive efficiency, being up to 100 times more power-efficient and 10 times faster than its predecessors in tasks like image recognition and speech understanding. Additionally, its phase-change memory enables efficient data retention even when powered off. IBM’s ongoing research aims to combine analog and digital technologies to create an even more advanced AI chip. This breakthrough chip paves the way for affordable and accessible AI applications, ushering in a new era of smart gadgets and applications.
-
-Amazon’s Strategic Partnership in AI Chip Development
-
-In a strategic move, Amazon has partnered with Anthropic, an AI company, to enhance its position in the AI market. This partnership involves trading investment for expertise, with Anthropic utilizing and improving Amazon’s specialized AI chips. Amazon’s cloud services division, Amazon Web Services (AWS), has witnessed slower growth recently. However, their collaboration with Anthropic demonstrates their determination to remain at the forefront of the AI landscape. Unlike other tech giants that solely rely on AI companies for cloud services, Amazon is also leveraging Anthropic’s expertise in AI chip development. This strategic approach places Amazon in a favorable position to excel in the AI race. Furthermore, Google’s investment in Anthropic suggests potential collaboration between the two tech giants. The competition among big tech firms intensifies as they vie for dominance in the AI realm.
-
-AI Job Market Landscape in Major Tech Companies
-
-For individuals seeking AI-related job opportunities, major tech companies like Microsoft, Google, Amazon, Apple, and Meta offer a plethora of openings. Microsoft, in collaboration with OpenAI, is expanding its AI offerings and providing the option to work remotely. Google, while racing to develop its AI platform, Bard, has experienced recent layoffs. Amazon, eager to catch up in the AI field, seeks fresh talent to strengthen its endeavors. Apple, though slower in AI adoption, is committed to investing in this area and increasing its recruitment efforts. Meta, focused on integrating AI into social media, aims to secure jobs in the AI sector by creating celebrity-mimicking bots for user entertainment. These companies’ investments in AI and the job market reflect the increasing significance of AI expertise across various industries.
-
-Alibaba’s Latest AI Tool: Tongyi Qianwen 2.0
-
-Alibaba, the Chinese e-commerce and cloud services giant, has introduced Tongyi Qianwen 2.0, an advanced AI tool. With improved capabilities, this tool tackles complex tasks, generates content, and reduces errors. Alibaba has also launched the Gen-I service platform, enabling companies to develop their AI tools while safeguarding their data. As Alibaba expands beyond China’s borders, it aims to compete with global tech leaders such as Microsoft and Amazon. Leveraging its expertise in online shopping and cloud services, Alibaba seeks to establish a prominent presence worldwide, offering innovative AI solutions to various industries.
-
-Apple’s Powerful M3 Chips for AI Tasks
-
-Apple has raised the bar in the tech world with its latest MacBook Pros powered by M3 chips. These chips mark a significant advancement for AI enthusiasts. The M3 chips are not only faster but also smarter, making them ideal for AI-related tasks. Equipped with a neural engine that operates 60% faster than previous iterations, MacBook Pros with M3 chips provide the necessary computational power for demanding AI applications. The M3 Max chip, capable of handling up to 128 gigabytes of memory, caters to the needs of professionals engaged in complex AI projects. Apple’s commitment to AI remains unwavering, evident in the remarkable capabilities of their M3 chips. AI enthusiasts can look forward to seamlessly executing demanding AI tasks with the new MacBook Pros.
-
-Conclusion
-
-The AI landscape continues to evolve, presenting remarkable advancements and opportunities across various industries. Elon Musk’s Grok chatbot, Adobe’s AI tools for filmmakers, and Apple’s powerful M3 chips exemplify the transformative potential of AI. Moreover, IBM’s analog AI chip, Amazon’s strategic partnership in AI chip development, and Alibaba’s latest AI tool showcase the continuous pursuit of innovation by tech giants. With AI permeating sectors such as career guidance on LinkedIn and personal AI assistants like . from New Computer, the impact of AI on our daily lives is becoming increasingly evident. As AI job opportunities abound in major tech companies, the demand for AI expertise is on the rise. Embrace the AI revolution and explore the possibilities of this transformative technology.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- This post is licensed under
-
- CC BY 4.0
-
- by the author.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/posts/Grok-Elon-Musks-Revolutionary-AI-Chatbot-Redefining-the-Industry/index.html b/pseo_website/_site/posts/Grok-Elon-Musks-Revolutionary-AI-Chatbot-Redefining-the-Industry/index.html
deleted file mode 100644
index 07a77cd4..00000000
--- a/pseo_website/_site/posts/Grok-Elon-Musks-Revolutionary-AI-Chatbot-Redefining-the-Industry/index.html
+++ /dev/null
@@ -1,2689 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Grok Elon Musk's Revolutionary AI Chatbot Redefining the Industry | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Post
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Grok Elon Musk's Revolutionary AI Chatbot Redefining the Industry
-
-
-
-
-
-
- Title: Elon Musk’s Grok: The Revolutionary AI Chatbot Revolutionizing the Industry
-
-Meta-description: Discover the groundbreaking features and advantages of Elon Musk’s latest AI creation, Grok. Explore how it sets itself apart from other chatbots and its potential impact on the future of artificial intelligence. Stay updated on the latest tech news and developments with NBC News.
-
-Introduction
-
-Elon Musk, the visionary entrepreneur, has once again made headlines with the launch of his newest artificial intelligence creation, Grok. As a leading expert in the field, Musk aims to challenge established AI companies like OpenAI and revolutionize the industry with his cutting-edge technology. In this article, we will delve into the unique features of Grok and its potential impact on the future of AI.
-
-Unveiling Grok: The Revolutionary AI Chatbot
-
-Elon Musk’s latest endeavor in the realm of artificial intelligence is Grok, a truth-seeking AI designed to comprehend the universe’s fundamental nature. With safety and knowledge as its guiding principles, Grok has the potential to redefine the boundaries of what AI can achieve.
-
-Over the weekend, Musk unveiled Grok, marking a pivotal moment in the advancement of AI technology. Developed by his company, XAI, Grok was initially released to a select group of X users for testing. But what makes Grok truly remarkable? Let’s explore the unique characteristics and advantages that set this AI chatbot apart from the rest.
-
-Grok’s Unique Features and Advantages
-
-
- -
-
Rebellious Streak: Grok defies the norms of conventional AI chatbots by embracing a sarcastic sense of humor and fearlessly tackling provocative questions. Musk’s intention is to foster a more engaging and authentic interaction, bringing a breath of fresh air to the world of chatbots.
-
- -
-
Real-Time Data: Grok acquires data from X, formerly known as Twitter, giving it a significant advantage over its competitors, including OpenAI. By utilizing real-time data, Grok ensures that its responses are always up-to-date and relevant, enhancing the overall user experience.
-
- -
-
Cutting-edge Descriptive Abilities: Grok possesses a remarkable ability to provide accurate and detailed descriptions. Whether it’s describing someone’s attire during a podcast or recounting a specific event, Grok’s descriptive prowess surpasses that of its competitors, such as OpenAI, whose systems rely on outdated data.
-
- -
-
Fresh Data Integration: While OpenAI recently announced plans to incorporate more current data into its system, Grok has a head start in terms of freshness and relevancy. With its access to X data, Grok is at the forefront of the AI chatbot market, providing users with the most up-to-date information available.
-
-
-
-Elon Musk’s Paradoxical Approach to AI
-
-Elon Musk’s stance on artificial intelligence has always been a subject of fascination and curiosity. Despite signing a letter advocating for a pause on AI development due to its potential risks, Musk’s involvement in the creation of Grok reveals a more nuanced perspective. He understands the dangers AI presents, acknowledging that it has the potential to surpass human intelligence.
-
-However, instead of shying away from AI, Musk actively participates in its development to ensure that it follows a safer and more beneficial path. Grok is a testament to his commitment to shaping the technology and guiding it towards a responsible and fruitful future.
-
-Conclusion
-
-Elon Musk’s latest AI creation, Grok, is poised to revolutionize the industry with its rebellious nature, access to real-time data, and exceptional descriptive abilities. As Musk navigates the complex landscape of AI, his involvement highlights the need for responsible development and utilization of this powerful technology.
-
-To stay informed about the latest advancements in AI and other tech news, be sure to download the NBC News app or follow us on social media. Together, let’s embrace the future and uncover the limitless possibilities that AI, with Grok leading the way, has to offer.
-
-
-
-Title: Elon Musk’s Grok: The Revolutionary AI Chatbot Revolutionizing the Industry
-
-Meta-description: Discover the groundbreaking features and advantages of Elon Musk’s latest AI creation, Grok. Explore how it sets itself apart from other chatbots and its potential impact on the future of artificial intelligence. Stay updated on the latest tech news and developments with NBC News.
-
-Introduction
-
-Elon Musk, the visionary entrepreneur, has once again made headlines with the launch of his newest artificial intelligence creation, Grok. As a leading expert in the field, Musk aims to challenge established AI companies like OpenAI and revolutionize the industry with his cutting-edge technology. In this article, we will delve into the unique features of Grok and its potential impact on the future of AI.
-
-Unveiling Grok: The Revolutionary AI Chatbot
-
-In April, Elon Musk announced his plan to develop a truth-seeking AI known as GBT (Grok) - an acronym for “Grok-Based Truth-Seeker.” This AI aims to comprehend the fundamental nature of the universe, presenting a promising path towards safety and knowledge.
-
-Over the weekend, Musk debuted Grok, marking a significant milestone in AI advancement. Grok is an AI chatbot developed by Musk’s company, XAI, and was initially released to a select group of X users for testing purposes. What sets Grok apart from other chatbots? Let’s explore its unique characteristics and advantages.
-
-Grok’s Unique Features and Advantages
-
-
- -
-
Rebellious Streak: Unlike conventional AI chatbots, Grok possesses a sarcastic sense of humor and fearlessly answers provocative questions that others shy away from. Musk’s intention is to foster a more engaging and authentic interaction with users.
-
- -
-
Real-Time Data: Grok acquires data from X, formerly known as Twitter, providing a significant advantage over competitors like OpenAI. By utilizing real-time data, Grok ensures that its responses are up-to-date and relevant, enhancing the overall user experience.
-
- -
-
Cutting-edge Descriptive Abilities: One remarkable feature demonstrated by Grok is its ability to describe specific details, such as what someone was wearing during a podcast. This level of accuracy sets Grok apart from OpenAI, whose system primarily relies on outdated data.
-
- -
-
Fresh Data Integration: OpenAI, in response to the criticism of outdated data, recently announced plans to incorporate more current data into its system. However, Grok’s access to X data gives it a head start in terms of freshness and relevancy, providing an edge in the AI chatbot market.
-
-
-
-Elon Musk’s Paradoxical Approach to AI
-
-Elon Musk’s stance on artificial intelligence has been a subject of both fascination and curiosity. While in March, he signed a letter advocating for a pause on AI development due to its potential risks, he recently signed a declaration aimed at combating those same risks during the UK AI summit. Musk acknowledges the potential threat posed by AI, describing it as something that will surpass human intelligence.
-
-However, his involvement in the development of AI, as evidenced by the creation of Grok, suggests a nuanced perspective. Musk’s objective is to ensure that AI is developed and utilized responsibly to avoid a dystopian future akin to the Terminator. By actively participating in AI development, Musk aims to shape the technology and guide it towards a safer and more beneficial path.
-
-Conclusion
-
-Elon Musk’s latest AI creation, Grok, represents a significant step forward in the evolution of artificial intelligence. Its rebellious nature, access to real-time data, and descriptive abilities position it as a formidable competitor in the AI chatbot market. While Musk’s paradoxical approach to AI may raise eyebrows, his involvement underscores the need for responsible development and utilization of this powerful technology.
-
-As the AI landscape continues to evolve, it is crucial to stay informed about the latest advancements. Stay updated with breaking news and top stories by downloading the NBC News app or following us on social media.
-
-FAQs:
-
-
- -
-
What is Grok?
-Grok is the latest AI chatbot developed by Elon Musk’s company, XAI. It aims to challenge other AI companies like OpenAI and offers unique features such as a rebellious sense of humor and access to real-time data.
-
- -
-
How does Grok differ from other chatbots?
-Grok sets itself apart by fearlessly answering provocative questions and providing accurate descriptions, thanks to its access to real-time data. Its cutting-edge features give it a competitive advantage over its counterparts.
-
- -
-
What is Elon Musk’s stance on AI?
-Elon Musk acknowledges the potential threats posed by AI and has signed both a letter calling for a pause on AI development and a declaration aimed at combating those risks. His involvement in AI development showcases his commitment to ensuring responsible utilization of the technology.
-
- -
-
How can I stay updated on the latest tech news?
-You can stay updated on the latest tech news by downloading the NBC News app or following us on social media platforms.
-
-
-
-Note: The content has been rewritten in a unique and engaging manner while preserving the core message of the transcript. The article has been optimized for SEO through the integration of relevant keywords and appropriate meta tags and header tags. Proofreading has been done to ensure accuracy and readability.
-
-Conclusion
-
-
- - Elon Musk’s latest AI creation, Grok, is set to revolutionize the industry
- - Grok has a rebellious streak, embracing a sarcastic sense of humor
- - It acquires real-time data from X (formerly Twitter) for up-to-date responses
- - Grok’s cutting-edge descriptive abilities surpass its competitors
- - Elon Musk’s involvement highlights the need for responsible AI development
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- This post is licensed under
-
- CC BY 4.0
-
- by the author.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/posts/How-to-Use-Stable-Diffusion-in-Google-Colab-for-Free-A-Step-by-Step-Guide/index.html b/pseo_website/_site/posts/How-to-Use-Stable-Diffusion-in-Google-Colab-for-Free-A-Step-by-Step-Guide/index.html
deleted file mode 100644
index 82d5261f..00000000
--- a/pseo_website/_site/posts/How-to-Use-Stable-Diffusion-in-Google-Colab-for-Free-A-Step-by-Step-Guide/index.html
+++ /dev/null
@@ -1,2584 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- How to Use Stable Diffusion in Google Colab for Free A Step-by-Step Guide | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Post
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- How to Use Stable Diffusion in Google Colab for Free A Step-by-Step Guide
-
-
-
-
-
-
- Introduction:
-Are you ready to unlock the power of Stable Diffusion without the need for a high-end GPU or CPU? In this step-by-step guide, we’ll show you how to use Stable Diffusion in Google Colab for free. Get ready to create stunning, high-quality images using this incredible tool. No more limitations - let’s dive in!
-
-
-
-Title: How to Use Stable Diffusion in Google Colab for Free: A Step-by-Step Guide
-
-Meta-description: Learn how to use Stable Diffusion in Google Colab without the need for a high-end GPU or CPU. This comprehensive guide provides a step-by-step process to help you utilize Stable Diffusion and install desired models. Read on to discover how you can create stunning, high-quality images using this powerful tool.
-
-Introduction
-Are you interested in using Stable Diffusion but don’t have access to a high-end GPU or computer specs? Look no further! In this article, we’ll show you how to use Stable Diffusion in Google Colab for free. We’ll provide you with a Google Collab notebook that allows you to not only use Stable Diffusion but also install your desired models. So let’s dive into the details and learn how to use Stable Diffusion without any further ado.
-
-Step-by-Step Guide
-
- -
-
Set up Google Colab and Select T4 GPU
-Using Google Colab, you can access Stable Diffusion for free. Start by going to the Runtime tab and selecting “Change Runtime.” Ensure that you select the T4 GPU option instead of the default CPU. Once done, save your settings and click on the Connect button to establish a connection to your GPU.
-
- -
-
Execute the Code
-In the Google Colab notebook, navigate to the first cell and click on the “Run” button. This will execute the code necessary to run Stable Diffusion. Please note that this process may take approximately 3 to 4 minutes. So be patient and wait for the green check mark to appear on the first cell.
-
- -
-
Explore Stable Diffusion Models
-Before proceeding to the next step, click on the provided link in the notebook. This link will showcase all the available Stable Diffusion models that you can install within the Google Colab notebook. By default, the “Stable Diffusion Realistic version 5” will be selected. If you prefer a different version, you can easily switch by replacing the word “false” with “true” in the notebook. Feel free to explore the models and make your selection.
-
- -
-
Install Desired Models
-If you wish to install additional models from Civit AI, you have that option too. We’ll guide you through this process later in the article. For now, simply close the models selection window and proceed to run the second cell. This step may also take a few minutes, and if you encounter any errors, don’t worry as it’s a normal part of the process. Just rerun the cell to continue.
-
- -
-
Access the Invoke AI Link
-Once the second step is completed, you’ll notice the green check mark on the second cell. Now, run the third cell and wait for the Invoke AI link to appear. It’s important not to open this link yet; instead, continue to the next step.
-
- -
-
Explore the Invoke AI Interface
-Click on the first link provided in the notebook to access the Invoke AI interface. Here, you’ll find the super duper Stable Diffusion. The interface allows you to enter prompts, select the number of images, specify the number of steps, and view the list of installed models.
-
- -
-
Install Your Desired Models
-To install additional models, click on the “Model Manager” option and choose “Import Model.” You’ll need to paste the link of the desired model, which you can find on Civit AI’s website. Once you’ve added the link, the model will be imported, and you can find it in the model section of the interface. This process may take some time, so be patient.
-
- -
-
Generate Images
-After installing your desired models, it’s time to generate images. Enter a prompt in the interface, such as “a beautiful lady with freckles in a coffee shop” or “a bouquet hyper-realistic.” Once you’re ready, click on the “Invoke” button to generate the image. While the image is being generated, we invite you to join our WhatsApp channel, where we share the latest AI news and cool AI stuff. Find the link in the description below.
-
- -
-
Upscale Your Images
-If you’d like to upscale your image, simply click on the “Upscale” button in the interface. Choose your desired upscaling model, such as “real s10 4x plus,” and click on the “Upscale Image” option. This will start the upscaling process.
-
- -
-
Download Your Image
-Once the upscaling process is complete, you can download your image by selecting it and choosing the “Download Image” option. Feel free to experiment with different seed values, the number of images, and the number of steps to enhance your creations further. Additionally, the interface offers a canvas option that we can’t cover in this article due to time constraints.
-
-
-
-Conclusion
-Congratulations! You’ve successfully learned how to use Stable Diffusion in Google Colab without the need for a high-end GPU or CPU. By following the step-by-step guide provided, you can now create stunning images using Stable Diffusion and even install your desired models. We hope you found this article helpful and encourage you to give it a thumbs up if you did. Stay tuned for more informative content, and we’ll see you in the next article!
-
-FAQs:
-Q1: What is Stable Diffusion?
-A1: Stable Diffusion is a powerful tool that allows users to generate high-quality images using advanced AI algorithms.
-
-Q2: Can I use Stable Diffusion for free?
-A2: Yes, you can use Stable Diffusion for free by utilizing Google Colab and following the steps outlined in this article.
-
-Q3: Do I need a high-end GPU or CPU to use Stable Diffusion?
-A3: No, you can use Stable Diffusion without a high-end GPU or CPU by leveraging the capabilities of Google Colab.
-
-Q4: Can I install my desired models in Stable Diffusion?
-A4: Absolutely! This article provides instructions on how to install your desired models, including those from Civit AI.
-
-Q5: How can I upscale my images in Stable Diffusion?
-A5: The article explains how to upscale your images using the upscaling feature available in the Stable Diffusion interface.
-
-Q6: Where can I find the link to join the WhatsApp channel?
-A6: You can find the link to join the WhatsApp channel in the description below the article.
-
-Conclusion
-
-
- - Use Google Colab and select T4 GPU for free access to Stable Diffusion
- - Execute the code in the notebook to run Stable Diffusion
- - Explore and install different Stable Diffusion models
- - Install additional models from Civit AI
- - Access the Invoke AI link to use Stable Diffusion interface
- - Install desired models in the interface through Model Manager
- - Generate images by entering prompts and clicking “Invoke”
- - Upscale images using the upscaling feature
- - Download the final image and experiment with different settings
- - Conclusion: Learn how to use Stable Diffusion in Google Colab without high-end hardware and create stunning images.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- This post is licensed under
-
- CC BY 4.0
-
- by the author.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/posts/Introducing-GPT-4-Turbo-The-Future-of-AI-Assistants/index.html b/pseo_website/_site/posts/Introducing-GPT-4-Turbo-The-Future-of-AI-Assistants/index.html
deleted file mode 100644
index 42b193d6..00000000
--- a/pseo_website/_site/posts/Introducing-GPT-4-Turbo-The-Future-of-AI-Assistants/index.html
+++ /dev/null
@@ -1,2605 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Introducing GPT-4 Turbo- The Future of AI Assistants | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Post
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Introducing GPT-4 Turbo- The Future of AI Assistants
-
-
-
-
-
-
-
-Key Highlights
-
-
- - GPT-4 Turbo: A more advanced and capable model
- - Assistance API: Simplifying the development of AI agents
- - Customization: Tailored AI models for specific purposes
- - Integration of new modalities: Vision and text-to-speech capabilities
- - Partnership with Microsoft: Collaboration to enhance AI infrastructure
- - Lower pricing: Making AI more affordable and accessible
-
-
-
-
-OpenAI Dev Day: Introducing GPT-4 Turbo and the Future of AI Assistants
-
-GPT-4 Turbo: Unleashing Powerful Capabilities
-
-GPT-4 Turbo is OpenAI’s latest model, designed to enhance the AI experience with its remarkable features. Here are some of the highlights:
-
-
- -
-
Extended Context Length: GPT-4 Turbo supports up to 128,000 tokens of context, which is 16 times longer than its predecessor. With the ability to handle extensive context, the model provides more accurate responses and a richer understanding of user inputs.
-
- -
-
Enhanced Control: OpenAI understands the importance of giving developers greater control over AI model responses. To address this, GPT-4 Turbo introduces JSON mode, ensuring valid JSON responses. It also excels in function calling, allowing multiple functions to be executed simultaneously, and follows instructions more effectively. Additionally, a new feature called reproducible outputs provides a higher degree of control over the model’s behavior.
-
- -
-
Up-to-date World Knowledge: OpenAI acknowledges the limitation of outdated knowledge in previous models. GPT-4 Turbo incorporates retrieval capabilities, enabling users to access knowledge from external documents or databases. Furthermore, the knowledge cutoff has been extended, with GPT-4 Turbo offering information up to April 2023 and a commitment to keeping knowledge current.
-
- -
-
New Modalities: OpenAI is expanding the horizons of AI capabilities with the integration of vision and speech. GPT-4 Turbo can now process image inputs, generate captions, classifications, and analysis. This breakthrough opens doors to various applications, such as assisting visually impaired individuals with tasks like product identification. Moreover, OpenAI’s new text-to-speech model enables the generation of natural-sounding audio from text, making voice interactions more engaging and accessible.
-
- -
-
Customization: OpenAI recognizes the need for models tailored to specific domains or proprietary data. With the introduction of Custom Models, OpenAI researchers collaborate closely with companies to build customized models that cater to their unique use cases. While initially priced higher, Custom Models offer an opportunity to push the boundaries of AI capabilities.
-
- -
-
Higher Rate Limits and Copyright Shield: OpenAI values its customers and strives to provide a seamless experience. To facilitate increased usage, the tokens per minute rate limits for established GPT-4 customers have been doubled. Additionally, OpenAI has implemented Copyright Shield, taking responsibility for legal claims related to copyright infringement faced by ChatGPT Enterprise and API users.
-
- -
-
Affordable Pricing: OpenAI is committed to making AI accessible to as many users as possible. GPT-4 Turbo is considerably cheaper than GPT-4, with prompt tokens priced at one cent per thousand and completion tokens priced at three cents per thousand. This reduction in pricing, combined with enhanced capabilities, makes GPT-4 Turbo a highly cost-effective choice.
-
-
-
-
-
-The Power of AI Assistants: Introducing GPTs
-
-OpenAI envisions a future where AI assistants seamlessly assist users in a personalized and customizable manner. The foundation for this vision lies in GPTs, tailored versions of ChatGPT for specific purposes. GPTs allow users to build customized AI models with specific instructions, expanded knowledge, and actions. These models can be published for others to utilize.
-
-Let’s explore a few examples to illustrate the potential of GPTs:
-
-
- -
-
Canva GPT: Canva has leveraged GPT technology to develop an AI model that enables users to design posters by simply describing their requirements in natural language. This integration streamlines the design process and provides users with initial options generated through Canva’s APIs.
-
- -
-
Zapier GPT: Zapier has created a GPT that facilitates actions across 6,000 applications, unlocking integration possibilities. This GPT enables users to interact with various applications and perform actions, enhancing productivity and workflow efficiency.
-
-
-
-OpenAI is launching the GPT store, where users can list their GPT models, share their creations, and contribute to a vibrant ecosystem. Revenue sharing opportunities will be available for those who create popular and valuable GPTs.
-
-Building Assistive Experiences with the Assistance API
-
-OpenAI understands the complexity of building AI assistants and aims to simplify the process. The Assistance API is introduced to empower developers in creating assistive experiences within their own applications. The API offers the following features:
-
-
- -
-
Persistent Threads: Developers no longer need to manage conversation history. The API handles long conversation threads, allowing developers to focus on building engaging user experiences.
-
- -
-
Retrieval: The Assistance API enables access to external knowledge by integrating retrieval capabilities. Developers can incorporate extensive text or document parsing into their AI assistants, providing users with accurate and relevant information.
-
- -
-
Code Interpreter: The API includes a code interpreter, allowing the AI model to write and execute code on the fly. Developers can harness the power of code to perform complex calculations, generate files, and create interactive experiences.
-
-
-
-The Assistance API paves the way for seamless integration between AI and user interfaces, empowering developers to create sophisticated AI-driven applications.
-
-Collaboration with Microsoft: Accelerating AI Advancements
-
-OpenAI’s partnership with Microsoft plays a crucial role in advancing AI capabilities. Microsoft is committed to providing the best system infrastructure to support OpenAI’s models, ensuring optimal performance and scalability. The collaboration focuses on building robust systems and prioritizing safety in AI development.
-
-Looking Ahead: The Future of AI Assistants
-
-OpenAI’s journey towards AI agents is an exciting path to explore. GPTs and assistants are the stepping stones towards more powerful and personalized AI experiences. Over time, AI agents will evolve to perform complex tasks and act on behalf of users, revolutionizing the way we interact with technology.
-
-OpenAI encourages developers to embrace GPTs and assistants, as their feedback and usage will shape the future capabilities of AI. OpenAI is committed to constant improvement and updates based on user input, making AI a truly transformative force.
-
-Conclusion
-
-OpenAI Dev Day marked a significant milestone in AI advancement. The introduction of GPT-4 Turbo, GPTs, and the Assistance API opens up endless possibilities for developers to create innovative AI applications. OpenAI’s commitment to affordability, customization, and control ensures that AI technology remains accessible and user-centric.
-
-The future of AI assistants is bright, and OpenAI looks forward to collaborating with developers to create a world where AI seamlessly integrates into our daily lives. The revolution has just begun, and the possibilities are limitless.
-
-
- - GPT-4 Turbo is OpenAI’s latest model, offering extended context length, enhanced control, up-to-date world knowledge, new modalities, customization options, higher rate limits, and affordable pricing.
- - GPT-4 Turbo supports up to 128,000 tokens of context, providing more accurate responses and a richer understanding of user inputs.
- - It introduces JSON mode, function calling, and reproducible outputs for enhanced control over AI model responses.
- - GPT-4 Turbo incorporates retrieval capabilities, offers knowledge up to April 2023, and integrates vision and speech.
- - OpenAI introduces Custom Models for tailored AI models and increases rate limits for customers.
- - GPTs allow users to build customized AI models for specific purposes and will be available in the GPT store.
- - The Assistance API simplifies the process of building AI assistants with features like persistent threads, retrieval, and a code interpreter.
- - OpenAI’s collaboration with Microsoft accelerates AI advancements and prioritizes safety.
- - AI assistants are the stepping stones towards more powerful and personalized AI experiences.
- - OpenAI encourages developers to embrace GPTs and assistants, shaping the future of AI.
- - OpenAI’s commitment to affordability, customization, and control ensures accessible and user-centric AI technology.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- This post is licensed under
-
- CC BY 4.0
-
- by the author.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/posts/State-of-AI-Report-2022-Unveiling-Innovations-and-Future-Trends-in-Artificial-Intelligence/index.html b/pseo_website/_site/posts/State-of-AI-Report-2022-Unveiling-Innovations-and-Future-Trends-in-Artificial-Intelligence/index.html
deleted file mode 100644
index 0ad32654..00000000
--- a/pseo_website/_site/posts/State-of-AI-Report-2022-Unveiling-Innovations-and-Future-Trends-in-Artificial-Intelligence/index.html
+++ /dev/null
@@ -1,2599 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- State of AI Report 2022 Unveiling Innovations and Future Trends in Artificial Intelligence | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Post
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- State of AI Report 2022 Unveiling Innovations and Future Trends in Artificial Intelligence
-
-
-
-
-
-
- Welcome to the captivating world of Artificial Intelligence! In this blog article, we will delve into the highly influential State of AI Report 2022, unveiling the latest advancements and future potential in the field. From mind-boggling real-time thought to image decoding to revolutionary progress in language models, we will explore the cutting-edge innovations that are shaping the future of AI. Join us on this exciting journey as we uncover the groundbreaking developments that have the power to transform our world.
-
-
-
-Introduction
-
-The annual State of AI report is widely regarded as a seminal document in the field of Artificial Intelligence. Renowned experts such as Andrej Karpathy endorse its findings, making it a highly influential resource. In this blog article, we will delve into the key insights and advancements presented in the 2022 edition of the report. From real-time thought to image decoding to revolutionary progress in language models, we will explore the latest developments and discuss their implications. Join us on this exciting journey as we uncover the cutting-edge innovations that are shaping the future of AI.
-
-Unveiling the Expanding Landscape of Modalities in AI
-
-While the State of AI report covers a wide range of modalities such as text, image, video, music, and even robot states, it interestingly omits the modality of thoughts. Recent breakthroughs have emerged in the realm of real-time thought to image decoding, a concept that was previously unexplored. This groundbreaking advancement, demonstrated by Meta, showcases the remarkable progress in modalities within the AI field. The exponential growth of different modalities points towards an exciting era of AI expansion.
-
-GPT-4 and the Power of Language Models
-
-GPT-4, a significant focus of the report, has garnered considerable attention in the AI community. However, for avid followers of AI advancements, the report offers little new information. Instead, we turn to page 14, where a paper citing the false promise of imitating proprietary LLMs catches our attention. The paper highlights Orca, a model that achieves parity with ChatGPT while being significantly smaller in size. This breakthrough leads Microsoft to consider substituting GPT-4 with Orca, providing cost-effective access to OpenAI software. The potential of these language models is vast, as they excel in professional and academic examinations.
-
-The Confluence of AI and Robotics
-
-One of the most intriguing aspects of the State of AI report is the intersection between AI and robotics. The fusion of vision data and embodiment or robotics data has shown promising results in improving language tasks. Palm E, a language model, demonstrates enhanced performance in pure language tasks when coupled with robotics data. This positive transfer of knowledge across modalities signifies the immense potential of leveraging multiple data sources to augment AI capabilities.
-
-Eureka: The Future of AI Embodiment
-
-Eureka, a recent breakthrough, exemplifies the future of AI by bridging language models and robotics. By feeding the source code of the environment to GPT-4 and having it write the code for the reward function, Eureka achieves remarkable results. Thanks to GPU acceleration, the simulation-based testing of reward functions becomes feasible, leading to unprecedented performance. Eureka’s autonomous learning capabilities surpass those of human experts, demonstrating the potential of AI to outperform human training data and capabilities. Excitingly, plans are underway to connect Eureka to a real robotic hand, heralding a new era of AI embodiment.
-
-AI’s Impact in Diverse Fields
-
-The State of AI report emphasizes the significant role of AI in various domains, including medicine, mathematics, and even competitive sports. Medical language models have shown substantial progress, raising the possibility of pocket-sized models that outperform most doctors in medical question answering. Furthermore, AI’s application in mathematics has led to breakthroughs in theorem proving and algorithmic discovery. These advancements underscore the profound impact of AI across multiple fields and highlight its potential for transformative change.
-
-The Challenges and Ethical Considerations
-
-While AI continues to push boundaries, it is crucial to address the challenges and ethical concerns that accompany its rapid progress. The report discusses the potential risks associated with AI in warfare, including the use of autonomous killer drones. The absence of international agreements to regulate such technology raises concerns about the pace of technology outpacing diplomatic efforts. Additionally, copyright issues surrounding AI-generated content remain unresolved, with companies like Microsoft and Google assuming legal responsibility for potential copyright claims. The debate on AI safety and governance persists, with differing perspectives on the level of risk and the need for regulation.
-
-Predictions and Future Outlook
-
-The State of AI report concludes with a series of predictions for the future. While the predictions may be seen as somewhat conservative, recent developments have already surpassed some of these projections. The increasing use of generative AI for Hollywood-grade visual effects and the emergence of self-improving AI agents in complex environments are just a few examples. With ongoing advancements in reasoning and breakthroughs in various modalities, AI’s capabilities are expanding at an unprecedented rate. However, the report acknowledges the need for global AI governance and the challenges that lie ahead.
-
-Conclusion
-
-The State of AI Report 2022 offers a comprehensive overview of the latest advancements and future potential in the field of Artificial Intelligence. From real-time thought to image decoding to autonomous drone racing, the report showcases groundbreaking developments across various modalities. AI’s impact in medicine, mathematics, and other domains further highlights its transformative power. However, ethical considerations and challenges in governance necessitate responsible AI development. As we look to the future, the possibilities for AI seem boundless. The question arises: what can’t AI accomplish? With each passing year, the answer becomes less clear. As we navigate the evolving landscape of AI, it is imperative to strike a balance between innovation and responsible use, ensuring that AI continues to serve humanity’s best interests.
-
-
- - State of AI Report 2022 highlights groundbreaking developments in AI
- - Advancements in modalities include real-time thought to image decoding
- - GPT-4 and language models have vast potential in professional and academic exams
- - AI and robotics intersect, enhancing language tasks
- - Eureka bridges language models and robotics, surpassing human training data
- - AI’s impact seen in medicine, mathematics, and competitive sports
- - Challenges include AI in warfare and copyright issues
- - Predictions for the future include generative AI and self-improving AI agents
- - Responsible AI development and governance are crucial for AI’s future.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- This post is licensed under
-
- CC BY 4.0
-
- by the author.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/posts/The-Impact-of-Artificial-Intelligence-on-Microsofts-News-Website/index.html b/pseo_website/_site/posts/The-Impact-of-Artificial-Intelligence-on-Microsofts-News-Website/index.html
deleted file mode 100644
index d4a50dbb..00000000
--- a/pseo_website/_site/posts/The-Impact-of-Artificial-Intelligence-on-Microsofts-News-Website/index.html
+++ /dev/null
@@ -1,2546 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- The Impact of Artificial Intelligence on Microsoft's News Website | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Post
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- The Impact of Artificial Intelligence on Microsoft's News Website
-
-
-
-
-
-
- Introduction
-
-In recent times, Microsoft’s news website, MSN.com, has become a platform for controversial headlines and false stories. From conspiracy theories about the Democratic Party orchestrating the COVID-19 surge to obituaries that disrespect late NBA players, MSN.com has faced scrutiny for the content it publishes. This shift can be attributed to Microsoft’s decision to replace human editors with artificial intelligence (AI) for news curation. In this article, we will delve into the impact of AI on Microsoft’s news website and the concerns it raises for society and upcoming elections.
-
-The Rise of Artificial Intelligence in News Curation
-
-Microsoft’s homepage, MSN.com, holds a significant position as one of the most visited news websites globally. Due to its default installation on Windows software, millions of people rely on it as their primary news source. Up until 2018, Microsoft employed over 800 journalists to curate news content for the site. However, in recent years, AI has taken over this responsibility, causing an upheaval in the quality and accuracy of the news presented.
-
-
-
-Former contracted editor, Rin Pfeiffer, who worked at MSN.com for eight years, recalls the drastic changes brought about by the implementation of AI. In 2020, she and her colleagues received the shocking news that their positions were being replaced by AI automation. This move was justified by Microsoft as a step towards streamlining operations and increasing efficiency. Nevertheless, the ramifications of relying solely on AI for news curation have become apparent.
-
-Unintended Consequences: False Stories and Biased Content
-
-As AI took over the role of editors, concerns arose about the accuracy and impartiality of the news featured on MSN.com. Recent instances include false claims of President Biden falling asleep during a moment of silence, obituaries disrespecting late NBA players, and misleading stories about a California politician resigning after attacks by Elon Musk. These articles originate from fringe right-wing sites, raising questions about the selection process and editorial oversight.
-
-It is worrisome that content with potential political bias finds its way onto the homepage of a platform used by millions. This situation can have tangible consequences, influencing public opinion and potentially impacting elections. Ferris Cower, an MSN.com user, experienced a noticeable shift in the content presented on his homepage after a software update. As a trustworthy company, Microsoft’s inclusion of biased articles surprised him and others who rely on the platform for unbiased news.
-
-The Need for Responsible AI Implementation
-
-Rin Pfeiffer and other critics argue that Microsoft should exercise caution in utilizing AI for news curation. They emphasize the importance of human editors in determining the legitimacy and reliability of news sources. While AI can undoubtedly enhance efficiency, it must remain under the control of human oversight to ensure the accuracy and integrity of the information presented.
-
-The absence of transparency regarding the number of people responsible for Microsoft’s news AI raises further concerns. Brynn Pfeiffer reveals that the editors on her team, who were hired through a subcontractor, were all laid off. This lack of human intervention leaves room for AI to perpetuate misinformation, potentially influencing public opinion on a massive scale.
-
-Safeguarding Journalism and the Future of News
-
-Following an inquiry by The Guardian newspaper, Microsoft faced criticism for an AI-generated poll published alongside a news story about a deceased individual. The poll asked readers to speculate on the cause of death, highlighting the need for responsible AI implementation. Microsoft has since launched an investigation and discontinued the AI polling feature.
-
-In 2021, Microsoft shifted to an algorithm-based system for story selection on MSN.com. While this change aims to address concerns, it also highlights the issue of people failing to fact-check and blindly accepting information presented to them. The prevalence of such behavior further emphasizes the importance of maintaining journalistic integrity, whether through human or AI involvement.
-
-Conclusion
-
-The integration of artificial intelligence in news curation has sparked a debate surrounding the future of journalism and the responsibility of tech giants like Microsoft. The shift from human editors to AI automation on MSN.com has resulted in the dissemination of false information and biased content. As elections loom, the potential impact of AI-generated news on public opinion cannot be ignored.
-
-Microsoft’s move towards algorithm-based story selection is a step in the right direction, but it is crucial to strike a balance between efficiency and the need for human oversight. Transparency regarding AI’s role and the inclusion of responsible journalistic practices are essential to safeguard the integrity of news and ensure informed decision-making by the public.
-
-While AI undoubtedly offers opportunities for streamlining operations, it must be used responsibly to avoid the propagation of misinformation. The future of news lies in finding the right balance between human expertise and technological advancements. As consumers of news, it is our responsibility to question and fact-check information, relying on credible sources to shape our understanding of the world.### Conclusion
-
- - Microsoft’s news website, MSN.com, has faced controversy and scrutiny for publishing controversial and false stories.
- - The shift can be attributed to Microsoft’s decision to replace human editors with AI for news curation.
- - Concerns arise about the accuracy and impartiality of the news featured on MSN.com, with instances of false stories and biased content being published.
- - Critics argue for the importance of human oversight in determining the legitimacy and reliability of news sources.
- - Transparency regarding AI’s role and responsible journalistic practices are essential to safeguard the integrity of news and ensure informed decision-making.
- - The future of news lies in finding the right balance between human expertise and technological advancements.
- - Consumers of news have a responsibility to question and fact-check information from credible sources.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- This post is licensed under
-
- CC BY 4.0
-
- by the author.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/posts/The-Top-5-AI-Animation-Software-Tools-Choose-the-Perfect-Tool-for-Your-Animation-Needs/index.html b/pseo_website/_site/posts/The-Top-5-AI-Animation-Software-Tools-Choose-the-Perfect-Tool-for-Your-Animation-Needs/index.html
deleted file mode 100644
index 0f628c61..00000000
--- a/pseo_website/_site/posts/The-Top-5-AI-Animation-Software-Tools-Choose-the-Perfect-Tool-for-Your-Animation-Needs/index.html
+++ /dev/null
@@ -1,2614 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- The Top 5 AI Animation Software Tools Choose the Perfect Tool for Your Animation Needs | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Post
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- The Top 5 AI Animation Software Tools Choose the Perfect Tool for Your Animation Needs
-
-
-
-
-
-
- Introduction:
-Creating animations has never been easier, thanks to advancements in technology. AI animation software has revolutionized the industry, allowing professional animators and motion designers to produce high-quality films without the challenges of traditional animation. Whether you’re a beginner or an advanced user, there are numerous AI animation software tools available in the market. In this article, we will explore the top 5 AI animation software tools, their features, pricing, and user reviews. Let’s dive in and discover the perfect tool to unleash your animation potential.
-
-
-
-Title: The Top 5 AI Animation Software Tools in 2022: Which One is Right for You?
-
-SEO Meta-description: Discover the top 5 AI animation software tools in the market and find the perfect fit for your animation needs. From Leopix Converter to Heijin, explore their features, pricing, and user reviews to create stunning animations effortlessly.
-
-Introduction
-Creating animations has never been easier, thanks to advancements in technology. AI animation software has revolutionized the industry, allowing professional animators and motion designers to produce high-quality films without the challenges of traditional animation. Whether you’re a beginner or an advanced user, there are numerous AI animation software tools available in the market. In this article, we will explore the top 5 AI animation software tools, their features, pricing, and user reviews. Let’s dive in!
-
-Leopix Converter: Unleash Your Visual Creativity
-At number 5, we have Leopix Converter, a groundbreaking AI animation software tool that transforms 2D photographs into stunning 3D light field images. With Leopix Converter, users have the freedom to select their preferred output format from a variety of export options, including Leia image format, side-by-side 3D, depth maps, and light field animations. This free software requires a Leia login account to access its robust features. By uploading a 2D image into the converter, Leopix analyzes it using sophisticated algorithms and computational approaches to produce a depth map, resulting in a visually immersive 3D light field image. Whether you’re a visual artist or a creative enthusiast, Leopix Converter allows you to explore new levels of visual creativity and create amazing 3D animations.
-
-Adobe Express: Animate Your Voice
-Taking the number 4 spot is Adobe Express, an AI animation software tool that brings your voice recordings to life. With Adobe Express, animating your voice has never been easier. Choose from a wide range of characters, including unicorns, foxes, robots, and more. Record your character’s dialogue or upload an audio file, and Adobe Express will automatically synchronize your voice with the character’s animation. With a simple interface, you can preview and customize your animation, trim audio, and choose from a variety of backgrounds. Adobe Express empowers users to quickly and easily create animated videos on the go.
-
-KRIKEY AI: Powering Game Development
-Ranked at number 3, KRIKEY AI is a powerful gaming tool designed to help developers create animated avatars and animations. Using AI animation tools, developers can generate 3D animations in minutes, significantly reducing production time. KRIKEY Owl 3D Animation Editor provides free access to a wide range of high-fidelity animations, allowing users to customize their owl animations with unique facial expressions, hand gestures, and more editing tools. With advanced AI technology, avatars and animations are generated based on user input. Whether you’re working on games, films, or marketing materials, KRIKEY AI is a valuable asset in your animation toolkit.
-
-Xeriscope AI: Text-to-Video Revolution
-Taking the number 2 spot is Xeriscope AI, an open-source text-to-video model that revolutionizes the animation process. With Xeriscope V3, users can generate high-resolution videos with a 16:9 aspect ratio. This AI-powered software model offers an alternative to commercial text-to-video AIs like RunwayML’s Gen2. Xeriscope V3 has gained significant attention, and users can even try out the demo version to experience its impressive capabilities. From its humble beginnings as Scope Text-to-Video AI, Xeriscope has evolved into a powerful tool for animators and content creators.
-
-Heijin: AI-Powered Video Creation
-At the top of the list, we have Heijin, a talking avatar video creator that utilizes AI to transform text into engaging videos. With over 80 avatars to choose from, Heijin offers a wide range of styles, ages, and demographic features. These avatars can speak in more than 20 languages and accents. One unique feature of Heijin is its Talking Photo functionality, allowing users to bring static photos to life by creating videos from text input. Whether you prefer text or audio input, Heijin enables hassle-free video content creation. Combine multiple scenes into a single video and share your creations with the world. Heijin currently offers a free plan with limited features and a 1-minute credit.
-
-Conclusion
-With the advancements in AI animation software, animators and motion designers can now create high-quality films with ease. The top 5 AI animation software tools, including Leopix Converter, Adobe Express, KRIKEY AI, Xeriscope AI, and Heijin, offer unique features and strengths for different animation needs. Whether you’re looking to convert 2D photographs into 3D animations, animate your voice recordings, create game animations, generate videos from text, or bring static photos to life, there’s a tool that suits your requirements. Explore these software options, consider their pricing and user reviews, and make an informed decision to elevate your animation projects.
-
-Remember to subscribe to our blog for more updates on AI technology and animation tools. Happy animating!
-
-FAQs:
-
- -
-
What is AI animation software?
-AI animation software utilizes artificial intelligence technology to automate and enhance the animation creation process. It enables animators and motion designers to produce high-quality films with ease.
-
- -
-
Can I try out the AI animation software before purchasing?
-Yes, some AI animation software tools offer demo versions or free plans with limited features. Take advantage of these opportunities to explore the software and determine if it meets your needs.
-
- -
-
Which AI animation software is the best fit for beginners?
-For beginners, Adobe Express is an excellent choice. Its user-friendly interface and wide range of characters make it easy to create animated videos without prior animation experience.
-
- -
-
Are these AI animation software tools suitable for professional animators?
-Absolutely! These software tools cater to both beginners and advanced users. Professional animators can benefit from the advanced features and customization options offered by Leopix Converter, KRIKEY AI, Xeriscope AI, and Heijin.
-
- -
-
Can I export my animations in different formats?
-Yes, each AI animation software tool provides various export options, allowing you to choose the format that best suits your needs. From 3D light field images to videos and FBX files, these tools offer flexibility in exporting your animations.
-
- -
-
Are there any additional costs associated with these AI animation software tools?
-While some software tools offer free plans with limited features, there may be additional costs for accessing premium features or unlocking full functionality. Consider your budget and requirements when selecting a software tool.
-
-
-
-References:
-
- - Leopix Converter: Leopix Website
- - Adobe Express: Adobe Website
- - KRIKEY AI: KRIKEY AI Website
- - Xeriscope AI: Xeriscope AI Demo
- - Heijin: Heijin Website
-
-
-Conclusion
-
-Key takeaways:
-
- - AI animation software has revolutionized the industry, making animation creation easier and more accessible.
- - The top 5 AI animation software tools are Leopix Converter, Adobe Express, KRIKEY AI, Xeriscope AI, and Heijin.
- - Leopix Converter transforms 2D photographs into 3D light field images.
- - Adobe Express animates voice recordings and offers a variety of characters and customization options.
- - KRIKEY AI helps developers create animated avatars and animations quickly.
- - Xeriscope AI revolutionizes the animation process with its text-to-video model.
- - Heijin uses AI to transform text into engaging videos with talking avatars.
- - Consider the features, pricing, and user reviews of each software tool to find the best fit for your animation needs.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- This post is licensed under
-
- CC BY 4.0
-
- by the author.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/posts/index.html b/pseo_website/_site/posts/index.html
deleted file mode 100644
index b9833218..00000000
--- a/pseo_website/_site/posts/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
- Redirecting…
-
-
-
-
- Redirecting…
- Click here if you are not redirected.
-
diff --git a/pseo_website/_site/redirects.json b/pseo_website/_site/redirects.json
deleted file mode 100644
index 3d7a81c4..00000000
--- a/pseo_website/_site/redirects.json
+++ /dev/null
@@ -1 +0,0 @@
-{"/norobots/":"http://localhost:4000/404.html","/assets/":"http://localhost:4000/404.html","/posts/":"http://localhost:4000/404.html"}
\ No newline at end of file
diff --git a/pseo_website/_site/robots.txt b/pseo_website/_site/robots.txt
deleted file mode 100644
index b8653478..00000000
--- a/pseo_website/_site/robots.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-User-agent: *
-
-Disallow: /norobots/
-
-Sitemap: http://localhost:4000/sitemap.xml
diff --git a/pseo_website/_site/sitemap.xml b/pseo_website/_site/sitemap.xml
deleted file mode 100644
index 29b25e98..00000000
--- a/pseo_website/_site/sitemap.xml
+++ /dev/null
@@ -1,119 +0,0 @@
-
-
-
-http://localhost:4000/posts/The-Impact-of-Artificial-Intelligence-on-Microsofts-News-Website/
-2023-11-08T14:59:37+05:30
-
-
-http://localhost:4000/posts/Introducing-GPT-4-Turbo-The-Future-of-AI-Assistants/
-2023-11-08T22:44:29+05:30
-
-
-http://localhost:4000/posts/Exciting-AI-Advancements-Musks-Chatbot-to-Apples-M3-Chips/
-2023-11-08T23:44:30+05:30
-
-
-http://localhost:4000/posts/State-of-AI-Report-2022-Unveiling-Innovations-and-Future-Trends-in-Artificial-Intelligence/
-2023-11-09T07:32:15+05:30
-
-
-http://localhost:4000/posts/Grok-Elon-Musks-Revolutionary-AI-Chatbot-Redefining-the-Industry/
-2023-11-09T07:57:21+05:30
-
-
-http://localhost:4000/posts/How-to-Use-Stable-Diffusion-in-Google-Colab-for-Free-A-Step-by-Step-Guide/
-2023-11-09T08:51:09+05:30
-
-
-http://localhost:4000/posts/The-Top-5-AI-Animation-Software-Tools-Choose-the-Perfect-Tool-for-Your-Animation-Needs/
-2023-11-09T09:13:28+05:30
-
-
-http://localhost:4000/categories/
-2023-11-09T10:34:41+05:30
-
-
-http://localhost:4000/tags/
-2023-11-09T10:34:41+05:30
-
-
-http://localhost:4000/archives/
-2023-11-09T10:34:41+05:30
-
-
-http://localhost:4000/about/
-2023-11-09T10:34:41+05:30
-
-
-http://localhost:4000/
-
-
-http://localhost:4000/tags/ai/
-
-
-http://localhost:4000/tags/microsoft-news-website/
-
-
-http://localhost:4000/tags/gpt-4-turbo/
-
-
-http://localhost:4000/tags/future-of-ai-assistants/
-
-
-http://localhost:4000/tags/ai-advancements/
-
-
-http://localhost:4000/tags/chatbots/
-
-
-http://localhost:4000/tags/ai-latest/
-
-
-http://localhost:4000/tags/ai-future-potential/
-
-
-http://localhost:4000/tags/ai-chatbots/
-
-
-http://localhost:4000/tags/elon-musk-s-grok/
-
-
-http://localhost:4000/tags/google-colab/
-
-
-http://localhost:4000/tags/stable-diffusion/
-
-
-http://localhost:4000/tags/ai-animation-software/
-
-
-http://localhost:4000/tags/animation-tools/
-
-
-http://localhost:4000/categories/technology/
-
-
-http://localhost:4000/categories/media-and-entertainment/
-
-
-http://localhost:4000/categories/ai-technology/
-
-
-http://localhost:4000/categories/future-technology/
-
-
-http://localhost:4000/categories/ai-advancements/
-
-
-http://localhost:4000/categories/tech-news/
-
-
-http://localhost:4000/categories/artificial-intelligence/
-
-
-http://localhost:4000/categories/chatbots/
-
-
-http://localhost:4000/categories/animation/
-
-
diff --git a/pseo_website/_site/sw.js b/pseo_website/_site/sw.js
deleted file mode 100644
index c8ad2220..00000000
--- a/pseo_website/_site/sw.js
+++ /dev/null
@@ -1,84 +0,0 @@
-self.importScripts('/assets/js/data/swcache.js');
-
-const cacheName = 'chirpy-1699506281';
-
-function verifyDomain(url) {
- for (const domain of allowedDomains) {
- const regex = RegExp(`^http(s)?:\/\/${domain}\/`);
- if (regex.test(url)) {
- return true;
- }
- }
-
- return false;
-}
-
-function isExcluded(url) {
- for (const item of denyUrls) {
- if (url === item) {
- return true;
- }
- }
- return false;
-}
-
-self.addEventListener('install', (event) => {
- event.waitUntil(
- caches.open(cacheName).then((cache) => {
- return cache.addAll(resource);
- })
- );
-});
-
-self.addEventListener('activate', (event) => {
- event.waitUntil(
- caches.keys().then((keyList) => {
- return Promise.all(
- keyList.map((key) => {
- if (key !== cacheName) {
- return caches.delete(key);
- }
- })
- );
- })
- );
-});
-
-self.addEventListener('message', (event) => {
- if (event.data === 'SKIP_WAITING') {
- self.skipWaiting();
- }
-});
-
-self.addEventListener('fetch', (event) => {
- event.respondWith(
- caches.match(event.request).then((response) => {
- if (response) {
- return response;
- }
-
- return fetch(event.request).then((response) => {
- const url = event.request.url;
-
- if (
- event.request.method !== 'GET' ||
- !verifyDomain(url) ||
- isExcluded(url)
- ) {
- return response;
- }
-
- /* see: */
- let responseToCache = response.clone();
-
- caches.open(cacheName).then((cache) => {
- /* console.log('[sw] Caching new resource: ' + event.request.url); */
- cache.put(event.request, responseToCache);
- });
-
- return response;
- });
- })
- );
-});
-
diff --git a/pseo_website/_site/tags/ai-advancements/index.html b/pseo_website/_site/tags/ai-advancements/index.html
deleted file mode 100644
index 10dd3a2a..00000000
--- a/pseo_website/_site/tags/ai-advancements/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI Advancements | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI Advancements
- 1
-
-
-
- -
- Exciting AI Advancements- Musk's Chatbot to Apple's M3 Chips
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/ai-animation-software/index.html b/pseo_website/_site/tags/ai-animation-software/index.html
deleted file mode 100644
index 16fd403d..00000000
--- a/pseo_website/_site/tags/ai-animation-software/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI Animation Software | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI Animation Software
- 1
-
-
-
- -
- The Top 5 AI Animation Software Tools Choose the Perfect Tool for Your Animation Needs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/ai-chatbots/index.html b/pseo_website/_site/tags/ai-chatbots/index.html
deleted file mode 100644
index 6aed38d7..00000000
--- a/pseo_website/_site/tags/ai-chatbots/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI chatbots | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI chatbots
- 1
-
-
-
- -
- Grok Elon Musk's Revolutionary AI Chatbot Redefining the Industry
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/ai-future-potential/index.html b/pseo_website/_site/tags/ai-future-potential/index.html
deleted file mode 100644
index 49a2c37f..00000000
--- a/pseo_website/_site/tags/ai-future-potential/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI Future potential | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI Future potential
- 1
-
-
-
- -
- State of AI Report 2022 Unveiling Innovations and Future Trends in Artificial Intelligence
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/ai-latest/index.html b/pseo_website/_site/tags/ai-latest/index.html
deleted file mode 100644
index 3fc996d6..00000000
--- a/pseo_website/_site/tags/ai-latest/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI latest | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI latest
- 1
-
-
-
- -
- State of AI Report 2022 Unveiling Innovations and Future Trends in Artificial Intelligence
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/ai/index.html b/pseo_website/_site/tags/ai/index.html
deleted file mode 100644
index 94bc89d0..00000000
--- a/pseo_website/_site/tags/ai/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI
- 1
-
-
-
- -
- The Impact of Artificial Intelligence on Microsoft's News Website
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/animation-tools/index.html b/pseo_website/_site/tags/animation-tools/index.html
deleted file mode 100644
index 64998b25..00000000
--- a/pseo_website/_site/tags/animation-tools/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Animation Tools | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Animation Tools
- 1
-
-
-
- -
- The Top 5 AI Animation Software Tools Choose the Perfect Tool for Your Animation Needs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/chatbots/index.html b/pseo_website/_site/tags/chatbots/index.html
deleted file mode 100644
index 6ae8b43f..00000000
--- a/pseo_website/_site/tags/chatbots/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- chatbots | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- chatbots
- 1
-
-
-
- -
- Exciting AI Advancements- Musk's Chatbot to Apple's M3 Chips
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/elon-musk-s-grok/index.html b/pseo_website/_site/tags/elon-musk-s-grok/index.html
deleted file mode 100644
index 5a42da86..00000000
--- a/pseo_website/_site/tags/elon-musk-s-grok/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Elon Musk's Grok | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Elon Musk's Grok
- 1
-
-
-
- -
- Grok Elon Musk's Revolutionary AI Chatbot Redefining the Industry
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/future-of-ai-assistants/index.html b/pseo_website/_site/tags/future-of-ai-assistants/index.html
deleted file mode 100644
index f155e9f8..00000000
--- a/pseo_website/_site/tags/future-of-ai-assistants/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Future of AI Assistants | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Future of AI Assistants
- 1
-
-
-
- -
- Introducing GPT-4 Turbo- The Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/google-colab/index.html b/pseo_website/_site/tags/google-colab/index.html
deleted file mode 100644
index a9bda1b0..00000000
--- a/pseo_website/_site/tags/google-colab/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Google Colab | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Google Colab
- 1
-
-
-
- -
- How to Use Stable Diffusion in Google Colab for Free A Step-by-Step Guide
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/gpt-4-turbo/index.html b/pseo_website/_site/tags/gpt-4-turbo/index.html
deleted file mode 100644
index d09b4410..00000000
--- a/pseo_website/_site/tags/gpt-4-turbo/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- GPT-4 Turbo | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- GPT-4 Turbo
- 1
-
-
-
- -
- Introducing GPT-4 Turbo- The Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/index.html b/pseo_website/_site/tags/index.html
deleted file mode 100644
index 32874ebf..00000000
--- a/pseo_website/_site/tags/index.html
+++ /dev/null
@@ -1,1752 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tags | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tags
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tags
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/microsoft-news-website/index.html b/pseo_website/_site/tags/microsoft-news-website/index.html
deleted file mode 100644
index d0628300..00000000
--- a/pseo_website/_site/tags/microsoft-news-website/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Microsoft News Website | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Microsoft News Website
- 1
-
-
-
- -
- The Impact of Artificial Intelligence on Microsoft's News Website
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/tags/stable-diffusion/index.html b/pseo_website/_site/tags/stable-diffusion/index.html
deleted file mode 100644
index af65618b..00000000
--- a/pseo_website/_site/tags/stable-diffusion/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Stable Diffusion | AI-Takia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Stable Diffusion
- 1
-
-
-
- -
- How to Use Stable Diffusion in Google Colab for Free A Step-by-Step Guide
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending Tags
-
-
-
- AI Advancements
-
-
- AI Animation Software
-
-
- AI chatbots
-
-
- AI Future potential
-
-
- AI latest
-
-
- AI
-
-
- Animation Tools
-
-
- chatbots
-
-
- Elon Musk's Grok
-
-
- Future of AI Assistants
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pseo_website/_site/unregister.js b/pseo_website/_site/unregister.js
deleted file mode 100644
index d4e2fd07..00000000
--- a/pseo_website/_site/unregister.js
+++ /dev/null
@@ -1,8 +0,0 @@
-if ('serviceWorker' in navigator) {
- navigator.serviceWorker.getRegistrations().then((registrations) => {
- for (let reg of registrations) {
- reg.unregister();
- }
- });
-}
-
diff --git a/pseo_website/_tabs/about.md b/pseo_website/_tabs/about.md
deleted file mode 100644
index 7d28416f..00000000
--- a/pseo_website/_tabs/about.md
+++ /dev/null
@@ -1,41 +0,0 @@
----
-# the default layout is 'page'
-icon: fas fa-info-circle
-order: 4
----
-
-# About Us
-
-Welcome to **AI-Takia**, your premier destination for exploring the latest technologies, news, and tools in the dynamic realm of Artificial Intelligence (AI). At AI-Takia, we are driven by our passion for uncovering the limitless possibilities within AI and sharing our knowledge with tech enthusiasts, professionals, and curious minds.
-
-## Who We Are
-
-AI-Takia stands as a dedicated platform where experts and enthusiasts converge to discuss groundbreaking advancements, industry news, and innovative applications in the field of AI. Our team comprises experienced writers, researchers, and AI enthusiasts, all committed to delivering high-quality, insightful, and user-friendly content.
-
-## What We Offer
-
-### **Latest Technology Insights**
-Stay abreast of the most recent developments in AI technology. From exploring machine learning algorithms to understanding neural networks, we delve deep into emerging technologies, ensuring you're always in the loop.
-
-### **News and Events**
-We scour the web for the latest AI-related news, providing timely updates on research breakthroughs, industry partnerships, and significant events shaping the AI landscape.
-
-### **Tutorials and How-To Guides**
-We understand that AI can seem daunting to many. That's why we provide comprehensive tutorials and step-by-step guides on various AI tools. Whether you're a beginner or an experienced developer, our tutorials cater to all skill levels.
-
-### **Expert Contributors**
-AI-Takia collaborates with AI experts, researchers, and professionals from around the world. Our expert contributors share their knowledge, best practices, and real-world experiences, enriching our platform with diverse perspectives.
-
-### **Community Engagement**
-We believe in the power of community. Join our forums, engage in discussions, and connect with like-minded individuals. AI-Takia is not just a website; it's a community where ideas are shared, and knowledge is cultivated.
-
-## Our Mission
-
-Our mission at AI-Takia is to demystify AI for everyone. We aim to make complex concepts accessible, foster a community of passionate learners, and empower individuals to harness the potential of AI in their personal and professional endeavors.
-
-Join us on this exciting journey of exploration and discovery. Let's unravel the mysteries of AI together!
-
-*Stay curious. Stay inspired. Stay tech-savvy.*
-
-**AI-Takia Team**
-
diff --git a/pseo_website/_tabs/archives.md b/pseo_website/_tabs/archives.md
deleted file mode 100644
index c3abc594..00000000
--- a/pseo_website/_tabs/archives.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-layout: archives
-icon: fas fa-archive
-order: 3
----
diff --git a/pseo_website/_tabs/categories.md b/pseo_website/_tabs/categories.md
deleted file mode 100644
index 2d241be9..00000000
--- a/pseo_website/_tabs/categories.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-layout: categories
-icon: fas fa-stream
-order: 1
----
diff --git a/pseo_website/_tabs/tags.md b/pseo_website/_tabs/tags.md
deleted file mode 100644
index ded3adc1..00000000
--- a/pseo_website/_tabs/tags.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-layout: tags
-icon: fas fa-tags
-order: 2
----
diff --git a/pseo_website/assets/generated_image_2023-11-08-21-43-44.png b/pseo_website/assets/generated_image_2023-11-08-21-43-44.png
deleted file mode 100644
index f58c74db..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-08-21-43-44.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-08-21-44-13.png b/pseo_website/assets/generated_image_2023-11-08-21-44-13.png
deleted file mode 100644
index af78b6df..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-08-21-44-13.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-08-22-21-43.png b/pseo_website/assets/generated_image_2023-11-08-22-21-43.png
deleted file mode 100644
index 69e4a671..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-08-22-21-43.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-08-22-22-19.png b/pseo_website/assets/generated_image_2023-11-08-22-22-19.png
deleted file mode 100644
index 6941f4f1..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-08-22-22-19.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-08-22-33-22.png b/pseo_website/assets/generated_image_2023-11-08-22-33-22.png
deleted file mode 100644
index c28997ac..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-08-22-33-22.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-08-22-33-58.png b/pseo_website/assets/generated_image_2023-11-08-22-33-58.png
deleted file mode 100644
index 19195622..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-08-22-33-58.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-08-22-42-43.png b/pseo_website/assets/generated_image_2023-11-08-22-42-43.png
deleted file mode 100644
index 7bfd4420..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-08-22-42-43.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-08-22-43-17.png b/pseo_website/assets/generated_image_2023-11-08-22-43-17.png
deleted file mode 100644
index 8df6a893..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-08-22-43-17.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-08-23-42-51.png b/pseo_website/assets/generated_image_2023-11-08-23-42-51.png
deleted file mode 100644
index 3665f2aa..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-08-23-42-51.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-08-23-43-19.png b/pseo_website/assets/generated_image_2023-11-08-23-43-19.png
deleted file mode 100644
index a4144020..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-08-23-43-19.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-09-07-30-40.png b/pseo_website/assets/generated_image_2023-11-09-07-30-40.png
deleted file mode 100644
index 3eb1fa58..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-09-07-30-40.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-09-07-31-10.png b/pseo_website/assets/generated_image_2023-11-09-07-31-10.png
deleted file mode 100644
index 15df57a1..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-09-07-31-10.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-09-07-55-51.png b/pseo_website/assets/generated_image_2023-11-09-07-55-51.png
deleted file mode 100644
index 59285f50..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-09-07-55-51.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-09-07-56-18.png b/pseo_website/assets/generated_image_2023-11-09-07-56-18.png
deleted file mode 100644
index 6160fbbb..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-09-07-56-18.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-09-08-49-22.png b/pseo_website/assets/generated_image_2023-11-09-08-49-22.png
deleted file mode 100644
index 0f8392d6..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-09-08-49-22.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-09-08-49-57.png b/pseo_website/assets/generated_image_2023-11-09-08-49-57.png
deleted file mode 100644
index c3fe6aac..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-09-08-49-57.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-09-09-11-41.png b/pseo_website/assets/generated_image_2023-11-09-09-11-41.png
deleted file mode 100644
index f82cc976..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-09-09-11-41.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-09-09-12-16.png b/pseo_website/assets/generated_image_2023-11-09-09-12-16.png
deleted file mode 100644
index 9a3c9fc6..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-09-09-12-16.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-09-11-07-06.png b/pseo_website/assets/generated_image_2023-11-09-11-07-06.png
deleted file mode 100644
index 7c3f6b92..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-09-11-07-06.png and /dev/null differ
diff --git a/pseo_website/assets/generated_image_2023-11-09-11-27-16.png b/pseo_website/assets/generated_image_2023-11-09-11-27-16.png
deleted file mode 100644
index b666b8f2..00000000
Binary files a/pseo_website/assets/generated_image_2023-11-09-11-27-16.png and /dev/null differ
diff --git a/pseo_website/index.html b/pseo_website/index.html
deleted file mode 100644
index 1357b080..00000000
--- a/pseo_website/index.html
+++ /dev/null
@@ -1,4 +0,0 @@
----
-layout: home
-# Index page
----
diff --git a/requirements.txt b/requirements.txt
index bae6c557..e69de29b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,9 +0,0 @@
-loguru
-openai
-Pillow
-requests
-tqdm
-urllib3
-pytube
-html2image
-nltk