<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Marine</title>
    <description>The latest articles on Forem by Marine (@marisogo).</description>
    <link>https://forem.com/marisogo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1177677%2F4947a9f8-ba30-4008-9f77-4b08c5b1c901.jpg</url>
      <title>Forem: Marine</title>
      <link>https://forem.com/marisogo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/marisogo"/>
    <language>en</language>
    <item>
      <title>How we saved our partners 💵$460,000 and 2,5 months⏰ of work</title>
      <dc:creator>Marine</dc:creator>
      <pubDate>Fri, 24 May 2024 09:16:35 +0000</pubDate>
      <link>https://forem.com/taipy/how-we-saved-our-partners-460000-and-25-months-of-work-40kg</link>
      <guid>https://forem.com/taipy/how-we-saved-our-partners-460000-and-25-months-of-work-40kg</guid>
      <description>&lt;p&gt;In 2022, I worked on a data science project for a retailer. The project was to predict cashflows through better demand forecasting and inventory management. This project followed the common pitfalls of all data science and AI projects and made me rethink our strategy and tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsjpjg2syavppd0sz7cdf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsjpjg2syavppd0sz7cdf.png" alt="quote_intro" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’ll tell you all about the mistakes I made ( and will never do again) and what tool I used to save money and time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common pitfalls in AI &amp;amp; Data projects
&lt;/h2&gt;

&lt;p&gt;Over the years, I’ve worked on many AI and dastascience projects, delivering substantial ROI through algorithms and AI models. Despite the AI hype, many non-software companies struggle with successful AI strategies, often limited to standard data projects and few impactful AI deployments, resulting in uneven AI adoption.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgkyojcz22ot2fenia1z6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgkyojcz22ot2fenia1z6.png" alt="quote" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Here are the main causes:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Siloed Teams&lt;/strong&gt;: There’s often a big disconnect between the data scientists and the end-users. There are valid reasons for having different roles and the need for specialization. 
However, it's important to recognize that in real projects, this leads to a significant gap between data scientists and end-users. Each group tends to use different technology stacks; for instance, data scientists usually work with Python, while IT developers might use JavaScript, Java, Scala, and other languages. 
This influences teamwork in taking more time and making teamwork tricky.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are the various groups involved in a typical AI/ DS project:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3sm4hdysyv6o0b5qof0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3sm4hdysyv6o0b5qof0.png" alt="silo" width="800" height="290"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Getting acceptance from the end-users / business users:&lt;/strong&gt; If end-users aren't part of the development process, they might not use the software once it’s up and running.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcjkw599f6ypgzz66ucfl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcjkw599f6ypgzz66ucfl.png" alt="Low success rate" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What I needed:
&lt;/h2&gt;

&lt;p&gt;1- &lt;strong&gt;Go All-In on Python&lt;/strong&gt;: It's easy to learn and works well with other tech. It is at the heart of the AI stack and ideal for integrating with other environments. We considered libraries like Streamlit, which is excellent for prototype quick applications, but we quickly felt the limits of this library for performant multi-user applications.&lt;/p&gt;

&lt;p&gt;2- &lt;strong&gt;Better Interaction with end-users&lt;/strong&gt;: It is critical to ensure the software works well for users and track how happy they are with it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The solution:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu4nm9fykqit0095yfr6r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu4nm9fykqit0095yfr6r.png" alt="Taipy first page" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Taipy came from the need for a easy tool, like Python, and strong enough for big projects. It handles loads of data fast, can be tailored to specific business needs, and connects data scientists with business users. It also makes decision-making smarter with features that let users play with different scenarios. &lt;br&gt;
Now let's go into detail:&lt;/p&gt;

&lt;h3&gt;
  
  
  - Answer to the siloed teams
&lt;/h3&gt;

&lt;p&gt;The obvious answers would go towards these points:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Standardize on a single programming language.&lt;/li&gt;
&lt;li&gt;Provide an easy-to-learn and use programming experience for all skill levels.&lt;/li&gt;
&lt;li&gt;Python is ideal for AI, with many user-friendly libraries, though they often face performance and customization issues.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For instance, libraries like Plotly Dash offer full-code solutions, while Streamlit or Gradio are easier but lack performance and flexibility. Python developers shouldn't have to choose between productivity and performance.&lt;/p&gt;

&lt;p&gt;We created Taipy to combine ease of development with high performance and customization.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ygzb6y32sl37uxuw1s6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ygzb6y32sl37uxuw1s6.gif" alt="optim_isights" width="1705" height="1018"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faovlod7vjzzot0ja4iux.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faovlod7vjzzot0ja4iux.gif" alt="large_data" width="1705" height="1055"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  - Answer to bringing back the end-user to the center of the project
&lt;/h3&gt;

&lt;p&gt;Addressing the two key points is crucial:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Smooth end-user interaction with backend algorithms.&lt;br&gt;
For smooth interaction, end-users need control over algorithm variables through the GUI, the ability to run algorithms with different parameters, and the option to compare results and track KPI performance over time. Taipy addresses this with the 'scenario' concept, storing all data elements and enabling users to track runs, revisit past scenarios, and analyze results.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Easy tracking of business-user satisfaction.&lt;br&gt;
For tracking satisfaction, Taipy's scenario function bridges the gap between end-users and data scientists by providing access to all runs and allowing end-users to tag and share scenarios with data scientists. This feature enhances software acceptance beyond basic testing and drift detection.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frxm29gcvrtc92o4gpi2p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frxm29gcvrtc92o4gpi2p.png" alt="Scenario" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Taipy - Build Python Data &amp;amp; AI web applications
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F51ypp4z3ecud0ju3v28p.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F51ypp4z3ecud0ju3v28p.gif" alt="Taipy GIF" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Support open-source and give Taipy a star: &lt;a href="https://github.com/Avaiga/taipy"&gt;https://github.com/Avaiga/taipy&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What about the results?
&lt;/h2&gt;

&lt;p&gt;Implementing Taipy transformed our approach to managing cash flow and demand forecasting. The tool improved our processing capabilities by leaps and bounds and gained quick acceptance from end-users thanks to its intuitive design and relevance to their daily tasks. &lt;br&gt;
We went from using 4 full-time developers to 1.5. The initial team was eclectic, with specialties ranging from Javascript and Java and Python.&lt;br&gt;
The use of Taipy enabled the data scientist using Python to create a full-blown application ready for use by the end-users. This facilitated communication and reduced the siloed team process common to all AI projects. A gain of time and money is crucial to the success of any project.&lt;/p&gt;

&lt;p&gt;For the concrete results, Taipy reduced the overall costs by a factor 10!&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project Phase&lt;/th&gt;
&lt;th&gt;Budget&lt;/th&gt;
&lt;th&gt;IT Staff&lt;/th&gt;
&lt;th&gt;Duration&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Initial Setup&lt;/td&gt;
&lt;td&gt;$600K&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;8 months&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;With Taipy&lt;/td&gt;
&lt;td&gt;$60K&lt;/td&gt;
&lt;td&gt;1.5&lt;/td&gt;
&lt;td&gt;2 months&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Achievements:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;4x Faster Projects&lt;/strong&gt;: We sped up everything from start to finish and spent less on keeping things running.&lt;br&gt;
&lt;strong&gt;10x Cheaper&lt;/strong&gt;: Most of the tech work was done by Python developers, reducing the need for help from other departments and making project management a breeze.&lt;/p&gt;

&lt;p&gt;Check out these applications made with Taipy: &lt;a href="https://docs.taipy.io/en/latest/gallery/"&gt;https://docs.taipy.io/en/latest/gallery/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbngh54gl8oj96iwywsi8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbngh54gl8oj96iwywsi8.png" alt="Application" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Hope you enjoyed a little context on the creation of Taipy and what we to achieve with it.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>startup</category>
      <category>datascience</category>
      <category>ai</category>
    </item>
    <item>
      <title>Building A ChatGPT Wizard with MistralAI Using Taipy</title>
      <dc:creator>Marine</dc:creator>
      <pubDate>Tue, 21 May 2024 13:58:23 +0000</pubDate>
      <link>https://forem.com/taipy/building-a-chatgpt-wizard-with-mistralai-using-taipy-54na</link>
      <guid>https://forem.com/taipy/building-a-chatgpt-wizard-with-mistralai-using-taipy-54na</guid>
      <description>&lt;h2&gt;
  
  
  TL; DR
&lt;/h2&gt;

&lt;p&gt;Let's learn how to build a simple chatbot using the Taipy GUI library and the Mistral-7B-Instruct-v0.1-GGUF language model from the ctransformers library.&lt;/p&gt;




&lt;h2&gt;
  
  
  The walkthrough
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;loading the language model&lt;/li&gt;
&lt;li&gt;generating responses to user prompts&lt;/li&gt;
&lt;li&gt;updating &amp;amp; clearing conversation history&lt;/li&gt;
&lt;li&gt;application styling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the end of this article, we will have a basic understanding of how to build a chatbot using these tools.&lt;/p&gt;




&lt;h1&gt;
  
  
  Loading the Mistral-7B-Instruct-v0.1-GGUF model
&lt;/h1&gt;

&lt;p&gt;Mistral 7B is a super-smart language model with 7 billion parameters! &lt;br&gt;
It beats the best 13B model, Llama 2, in all tests and even outperforms the powerful 34B model, Llama 1, in reasoning, math, and code generation. &lt;br&gt;
&lt;strong&gt;How?&lt;/strong&gt; &lt;br&gt;
Mistral 7B uses smart tricks like grouped-query attention (GQA) for quick thinking and sliding window attention (SWA) to handle all sorts of text lengths without slowing down.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9dmy24ao6nnz66w5qc1x.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9dmy24ao6nnz66w5qc1x.PNG" alt="Model Accuracy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://mistral.ai/news/announcing-mistral-7b/" rel="noopener noreferrer"&gt;Mistral.AI Docs&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;And there's more! Mistral AI Team fine-tuned Mistral 7B for specific tasks with Mistral 7B – Instruct. &lt;br&gt;
It outshines Llama 2 13B in chat and rocks both human and automated tests. &lt;br&gt;
The best part? Mistral 7B – was released under the Apache 2.0 license. &lt;/p&gt;


&lt;h2&gt;
  
  
  Download GGUF files using ctransformers
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Install ctransformers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With no GPU acceleration&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

pip &lt;span class="nb"&gt;install &lt;/span&gt;ctransformers


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;or install with ctransformers with CUDA GPU acceleration&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

pip &lt;span class="nb"&gt;install &lt;/span&gt;ctransformers[cuda]


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;or install with ctransformers with AMD ROCm GPU acceleration (Linux only)&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nv"&gt;CT_HIPBLAS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1 pip &lt;span class="nb"&gt;install &lt;/span&gt;ctransformers &lt;span class="nt"&gt;--no-binary&lt;/span&gt; ctransformers


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;or install with ctransformers with Metal GPU acceleration for macOS systems only&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nv"&gt;CT_METAL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1 pip &lt;span class="nb"&gt;install &lt;/span&gt;ctransformers &lt;span class="nt"&gt;--no-binary&lt;/span&gt; ctransformers


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Load the model
&lt;/h2&gt;

&lt;p&gt;All set? Let's run the code below to download and send a prompt to the model. Make sure to free up space on your computer and connect to a good internet connection.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="c1"&gt;# import the AutoModelForCausalLM class from the ctransformers library
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ctransformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;

&lt;span class="c1"&gt;# load Mistral-7B-Instruct-v0.1-GGUF, Set gpu_layers to the number of layers to offload to GPU. The value is set to 0 because no GPU acceleration is available on my current system.
&lt;/span&gt;&lt;span class="n"&gt;llm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;TheBloke/Mistral-7B-Instruct-v0.1-GGUF&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;model_file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mistral-7b-instruct-v0.1.Q4_K_M.gguf&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;model_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mistral&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;gpu_layers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# call the model to generate text.
&lt;/span&gt;&lt;span class="n"&gt;ask&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt; 
&lt;span class="n"&gt;turn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;turn&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;ask&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Enter your message: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;The model will continue the statement as follows, &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2zn5hsmrgl9srns4c9h.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2zn5hsmrgl9srns4c9h.jpeg" alt="output real"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Say Hello Taipy!
&lt;/h2&gt;

&lt;p&gt;Taipy is an open-source Python library that makes it simple to create data-driven web applications. &lt;br&gt;
It takes care of the visible part (Frontend) and the behind-the-scenes (Backend) operations. &lt;br&gt;
Its goal is to speed up the process of developing applications, from the early design stages to having a fully functional product ready for use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk24u6ko4tkjffice6thz.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk24u6ko4tkjffice6thz.gif" alt="Taipy Intro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://docs.taipy.io/en/latest/" rel="noopener noreferrer"&gt;Taipy Docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Requirement:&lt;/strong&gt; Python 3.8 or later on Linux, Windows, and Mac. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fehjta5wqqm7x9psu853u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fehjta5wqqm7x9psu853u.png" alt="Lisan"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Avaiga/taipy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Taipy repository&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Your support means a lot🌱, and helps us in many ways, like writing articles! 🙏&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Installing Taipy:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Open up a terminal and run the following command, which will install Taipy with all its dependencies.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

pip &lt;span class="nb"&gt;install &lt;/span&gt;taipy


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;We're set!&lt;br&gt;
Let's say hello to Taipy!&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="c1"&gt;# import the library
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;taipy&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Gui&lt;/span&gt;

&lt;span class="n"&gt;hello&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;# Hello Taipy!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; 

&lt;span class="c1"&gt;# run the gui
&lt;/span&gt;&lt;span class="nc"&gt;Gui&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hello&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Save the code as a Python file: e.g., &lt;code&gt;hi_taipy.py&lt;/code&gt;. &lt;br&gt;
Run the code and wait for the client link &lt;code&gt;http://127.0.0.1:5000&lt;/code&gt; to display and pop up in your browser. &lt;br&gt;
You can change the port if you want to run multiple servers at the same time with &lt;code&gt;Gui(...).run(port=xxxx)&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6w2h2jryumg8kumid3ms.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6w2h2jryumg8kumid3ms.PNG" alt="App_1"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Create a chat interface with Taipy
&lt;/h2&gt;

&lt;p&gt;Now we are familiar with Taipy, let's get our hands dirty and build our chat interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Import the AutoModelForCausalLM class from the ctransformers library&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this step, we import the AutoModelForCausalLM class from the ctransformers library, which is used to generate text using pre-trained language models. &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ctransformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Step 2: Import the Taipy library&lt;/strong&gt; &lt;br&gt;
In this step, we import the Taipy GUI library, which is used to build the user interface for our chatbot.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;taipy.gui&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Gui&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;notify&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;: Load the Mistral-7B-Instruct-v0.1-GGUF model&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="n"&gt;llm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;TheBloke/Mistral-7B-Instruct-v0.1-GGUF&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;model_file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mistral-7b-instruct-v0.1.Q4_K_M.gguf&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;model_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mistral&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;gpu_layers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Step 4: Initialize the prompt and response variables&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this step, we initialize the prompt and response variables as empty strings.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;
&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Step 5: Define the &lt;em&gt;chat&lt;/em&gt; function&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this step, we define the chat function, which is called when the user clicks the "Chat" button in the user interface. This function takes the current state of the GUI as an input, generates text using the pre-trained language model based on the user's prompt, and updates the response variable in the state.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nf"&gt;notify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;info&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Thinking...&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Step 6: Define the user interface&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Time to define the user interface for our chatbot using the Taipy GUI library. The user interface consists of an input field where the user can enter a prompt, a "Chat" button that triggers the chat function, and a display area where the chatbot's response is shown.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
# Chatbot Wizard! {: .color-primary}
Enter Prompt: &amp;lt;|{prompt}|input|&amp;gt; &amp;lt;br /&amp;gt;
&amp;lt;|Chat|button|class_name=plain mt1|on_action=chat|&amp;gt; &amp;lt;br /&amp;gt;
MistralAI: &amp;lt;br /&amp;gt; &amp;lt;|{response}|&amp;gt;
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Step 7: Run the Taipy GUI application&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now let's run the Taipy GUI application using the run method.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="nc"&gt;Gui&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;h3&gt;
  
  
  Full Code
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="c1"&gt;# import the AutoModelForCausalLM class from the ctransformers library
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ctransformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;

&lt;span class="c1"&gt;# import taipy library
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;taipy.gui&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Gui&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;notify&lt;/span&gt;

&lt;span class="c1"&gt;# load Mistral-7B-Instruct-v0.1-GGUF, Set gpu_layers to the number of layers to offload to GPU. The value is set to 0 because no GPU acceleration is available on my current system.
&lt;/span&gt;&lt;span class="n"&gt;llm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;TheBloke/Mistral-7B-Instruct-v0.1-GGUF&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;model_file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mistral-7b-instruct-v0.1.Q4_K_M.gguf&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;model_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mistral&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;gpu_layers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# initialize the `prompt` and `response` variables as empty strings.
&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;
&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nf"&gt;notify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;info&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Thinking...&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
# Chatbot Wizard! {: .color-primary}
Enter Prompt: &amp;lt;|{prompt}|input|&amp;gt;
&amp;lt;|Send Prompt|button|class_name=plain mt1|on_action=chat|&amp;gt; &amp;lt;br /&amp;gt;
MistralAI: &amp;lt;br /&amp;gt; &amp;lt;|{response}|&amp;gt;
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt; 

&lt;span class="nc"&gt;Gui&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Here it is, a simple chat interface!&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbq84cxhiurzn52kqputb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbq84cxhiurzn52kqputb.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
Let's level up our application to become a chatbot, as we imagine.&lt;/p&gt;




&lt;h2&gt;
  
  
  Mistral AI Chatbot
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1: In this step, we initialize the prompt and response and the conversation&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;
&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;
&lt;span class="n"&gt;conversation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Conversation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hi there!   What would you like to talk about today?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Step 2: Update the chat function&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# Notify the user that the chatbot is thinking
&lt;/span&gt;    &lt;span class="nf"&gt;notify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;info&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Thinking...&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Generate a response using the loaded language model
&lt;/span&gt;    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Add the user's prompt and the bot's response to the conversation history
&lt;/span&gt;    &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Conversation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Conversation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Update the conversation object to contain the entire conversation history
&lt;/span&gt;    &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conversation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Conversation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Conversation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]}&lt;/span&gt;

    &lt;span class="c1"&gt;# Clear the user's input prompt
&lt;/span&gt;    &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;

    &lt;span class="c1"&gt;# Notify the user that the bot has generated a response
&lt;/span&gt;    &lt;span class="nf"&gt;notify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;info&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Response received!&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Step 3: Add clear_conversation function to clear the conversation history&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The function sets the &lt;em&gt;state.conversation&lt;/em&gt; object to a new dictionary with a single key-value pair, where the key is &lt;em&gt;Conversation&lt;/em&gt; and the value is an empty list.&lt;br&gt;
This effectively clears the conversation history, as the &lt;em&gt;state.conversation&lt;/em&gt; object is now an empty dictionary with a single key-value pair containing an empty list. &lt;br&gt;
The updated &lt;em&gt;state.conversation&lt;/em&gt; object will be reflected in the chatbot UI, showing an empty conversation history.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;clear_conversation&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conversation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Conversation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[]}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Step 4: ZHUZH it up&lt;/strong&gt;&lt;br&gt;
Let's define the layout of the user interface for the Chatbot.&lt;br&gt;
Let's add a logo by downloading and saving it in the same directory as the script. &lt;br&gt;
Then attach &lt;em&gt;clear_conversation&lt;/em&gt; to the New chat button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fapmfufeois8j77p5gxjo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fapmfufeois8j77p5gxjo.png" alt="APPV2"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Styling with CSS
&lt;/h2&gt;

&lt;p&gt;Now, let's style our chat ui by floating the response the left and the prompt to the right hand side.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg10ajxvzuabmurx5x6nd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg10ajxvzuabmurx5x6nd.png" alt="Style1"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;: Create a CSS file with the same title as the python file and save it in the same directory.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="nc"&gt;.mistral_mssg&lt;/span&gt; &lt;span class="nt"&gt;td&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;relative&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;inline-block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#ff8c00&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;80%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;4px&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;6px&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0.19&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;medium&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nc"&gt;.user_mssg&lt;/span&gt; &lt;span class="nt"&gt;td&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;relative&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;inline-block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;float&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;right&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#9400D3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;80%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;4px&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;6px&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0.19&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;medium&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.flexy&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;50vw&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;4em&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;align-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Step 2: Create the style_conv function&lt;/strong&gt;&lt;br&gt;
 The &lt;em&gt;style_conv&lt;/em&gt; function is a callback function that is used to apply styles to the conversation history table in the Taipy GUI. It takes three arguments: &lt;em&gt;state&lt;/em&gt;, &lt;em&gt;idx&lt;/em&gt;, and &lt;em&gt;row&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;state&lt;/em&gt; argument is a dictionary containing the GUI's current &lt;em&gt;state&lt;/em&gt;, including the conversation history. &lt;br&gt;
The &lt;em&gt;idx&lt;/em&gt; argument is the index of the current row in the table, and the row argument is the index of the current column in the table.&lt;/p&gt;

&lt;p&gt;The function checks the value of the &lt;em&gt;idx&lt;/em&gt; argument to determine which style to apply to the current row. If &lt;em&gt;idx&lt;/em&gt; is &lt;em&gt;None&lt;/em&gt;, the function returns &lt;em&gt;None&lt;/em&gt;, indicating no style should be applied.&lt;/p&gt;

&lt;p&gt;If &lt;em&gt;idx&lt;/em&gt; is an even number, the function returns the string &lt;em&gt;user_mssg&lt;/em&gt;, corresponding to the CSS class for the user's prompts. If &lt;em&gt;idx&lt;/em&gt; is an odd number, the function returns the string &lt;em&gt;mistral_mssg&lt;/em&gt;, corresponding to the CSS class for the chatbot's responses.&lt;/p&gt;

&lt;p&gt;Here is the code for the style_conv function:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;style_conv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;idx&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;idx&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user_mssg&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;  &lt;span class="c1"&gt;# return user_mssg style
&lt;/span&gt;    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mistral_mssg&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;  &lt;span class="c1"&gt;# return mistral_mssg style
&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;To use the style_conv function in the Taipy GUI, we need to pass it as the value of the style attribute in the table element. For example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="o"&gt;&amp;lt;|&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;table&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;style_conv&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;show_all&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="o"&gt;%|&lt;/span&gt;&lt;span class="n"&gt;rebuild&lt;/span&gt;&lt;span class="o"&gt;|&amp;gt;&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Step 3: Add a sidebar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Redefine the page to add the sidebar.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
&amp;lt;|layout|columns=300px 1|
&amp;lt;|part|render=True|class_name=sidebar bg_black|
# Chat **Wizard**{: .color-primary} # {: .logo-text}
&amp;lt;|New Chat|button|class_name=fullwidth plain|on_action=clear_conversation|&amp;gt;

### History
&amp;lt;|{history}|table|show_all|&amp;gt;
|&amp;gt;

&amp;lt;|part|render=True|class_name=p2 align-item-bottom table|
&amp;lt;|{conversation}|table|style=style_conv|show_all|width=100%|rebuild|&amp;gt;

&amp;lt;|part|class_name=card mt1|
&amp;lt;|{prompt}|input|label=Ask anything...|class_name=fullwidth|on_action=chat|&amp;gt;
&amp;lt;|Send Prompt|button|class_name=plain mt1 fullwidth|on_action=chat|&amp;gt;
|&amp;gt;
|&amp;gt;
|&amp;gt;
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8jv92m2ewggdcr6w0o4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8jv92m2ewggdcr6w0o4.png" alt="Stryle2"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;In conclusion, this article demonstrated how to build a simple chatbot using the Taipy GUI library and the Mistral-7B-Instruct-v0.1-GGUF language model from the ctransformers library. The code provided shows how to load the language model, generate responses to user prompts, update the conversation history, and clear the conversation history. The chatbot's UI, built using the Taipy GUI library, provides a user-friendly interface for interacting with the chatbot. Overall, this article provides a useful starting point for building more sophisticated chatbots using these Taipy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources:
&lt;/h2&gt;

&lt;p&gt;HuggingFace: &lt;a href="https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.1-GGUF" rel="noopener noreferrer"&gt;Mistral-7B-Instruct-v0.1-GGUF&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Taipy: &lt;a href="https://docs.taipy.io/en/latest/" rel="noopener noreferrer"&gt;Taipy Docs&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>tutorial</category>
      <category>chatgpt</category>
      <category>ai</category>
    </item>
    <item>
      <title>Python for AI : Cheatlist</title>
      <dc:creator>Marine</dc:creator>
      <pubDate>Wed, 20 Mar 2024 16:15:40 +0000</pubDate>
      <link>https://forem.com/taipy/python-for-ai-cheatlist-33ec</link>
      <guid>https://forem.com/taipy/python-for-ai-cheatlist-33ec</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Getting into AI and ML without using Python is very difficult and, might I say, even impossible. &lt;br&gt;
So here's a list of prominent Python libraries for your AI and ML models. &lt;br&gt;
These libraries have been, and continue to be, institutions in the AI landscape. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp7pqdk8ygu8ek412sjac.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp7pqdk8ygu8ek412sjac.png" alt="Entry" width="800" height="336"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;
&lt;h2&gt;
  
  
  I. Building an application for your AI
&lt;/h2&gt;

&lt;p&gt;What is ML &amp;amp; AI if you can't share it with non-data scientists/programmers? &lt;br&gt;
Let's start with two major frameworks that help showcase your results through GUIs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3ij16cpj8k34ex97tz0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3ij16cpj8k34ex97tz0.png" alt="App builders" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  1- Taipy
&lt;/h3&gt;

&lt;p&gt;Taipy was created to give data scientists the skills to develop production-ready applications.&lt;/p&gt;

&lt;p&gt;This open-source Python library is designed for easy development for front-end (GUI) and ML/Data pipelines. Don’t compromise on customization, performance, and scaling.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fekf55mwti2wvaiarehwz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fekf55mwti2wvaiarehwz.png" alt="Taipy" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Avaiga/taipy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Taipy repository&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Your support means a lot🌱, and helps us in many ways, like writing articles! 🙏&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  2- Gradio
&lt;/h3&gt;

&lt;p&gt;This Python library facilitates the quick sharing of AI/ML models through easy-to-create basic applications. It’s a great way to showcase your model quickly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpr3k48bwc0pwza0zqyyq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpr3k48bwc0pwza0zqyyq.png" alt="Gradio" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/gradio-app/gradio" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Gradio repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  II. AI and ML frameworks
&lt;/h2&gt;

&lt;p&gt;Now let's enter the main part of the article, the major, most important Python libraries that'll help getting into ML/AI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68ocvb1c6pspat5egg0y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68ocvb1c6pspat5egg0y.png" alt="ML" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  3- Scikit learn
&lt;/h3&gt;

&lt;p&gt;This might be Python’s top 3 most famous libraries, and rightfully so.&lt;br&gt;
Sklearn is a reference in Machine Learning. It includes different models such as K-means clustering, regression, and classification algorithms.&lt;br&gt;
It also excels in dimension reduction techniques.&lt;br&gt;
Sklearn also provides data selection and validation functions. It's easy to learn/use and should be your go-to ML library during your data science journey.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/scikit-learn/scikit-learn" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Sklearn repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  4- Tensorflow
&lt;/h3&gt;

&lt;p&gt;This library is a must-know for Neural Network modeling. Perfect when dealing with unstructured data such as image classification or NLP (Natural Language Processing). TensorFlow is widely used in research and industries as it provides a complete API for designing and manipulating Neural Networks. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/tensorflow/tensorflow" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the TensorFlow repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  5- Pytorch
&lt;/h3&gt;

&lt;p&gt;Pytorch is known for its more significant focus on natural language processing and a more Pythonic feel, reducing the steep learning curve for TensorFlow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pytorch/pytorch" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the PyTorch repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  6- Keras
&lt;/h3&gt;

&lt;p&gt;Keras is a high-level API that runs on top of frameworks such as TensorFlow. If starting with Neural Networks, start with Keras. It is ideal for quick implementations as it simplifies the implementation process, making it the best beginner-friendly option for Neural Network implementation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/keras-team/keras" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Keras repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  7- FastAI
&lt;/h3&gt;

&lt;p&gt;This library simplifies training fast and accurate neural nets; it’s built on top of PyTorch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/fastai/fastai" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the FastAI repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  8- FLAML
&lt;/h3&gt;

&lt;p&gt;This library is a game changer. It finds and tests the optimal hyperparameters and machine learning models for your data and use cases.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/microsoft/FLAML" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the FLAML repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  9- Catboost
&lt;/h3&gt;

&lt;p&gt;This library, standing for Categorical Boosting, is the way to go if your dataset predominantly consists of categorical data. This library will remove the preprocessing headache of complex one-hot encoding, eliminating the need to preprocess categorical data. It can provide better accuracy than XGBoost when running with default parameters.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/catboost/catboost" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Catboost repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  10- PyCaret
&lt;/h3&gt;

&lt;p&gt;This is an excellent Machine Learning automation tool. It automates all your ML workflows easily as it is low code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pycaret/pycaret" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the PyCaret repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  11- H20
&lt;/h3&gt;

&lt;p&gt;H20 is a user-friendly machine-learning platform for more innovative applications. It is fast and scalable. It includes algorithms for Deep Learning, GLM, PCA, RulkeFIt, etc… &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/h2oai/h2o-3" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the H20 repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  12- XGBoost
&lt;/h3&gt;

&lt;p&gt;XGBoost is one of the most popular libraries regarding Machine Learning algorithms.&lt;br&gt;
This gradient-boosting library is widely used in real-life use cases, particularly for tabular data.&lt;br&gt;
It is a favorite among Kaggle competition winners.&lt;br&gt;
This library includes regression and classification algorithms but also provides feature selection tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/dmlc/xgboost" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the XGBoost repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  13- TPOT
&lt;/h3&gt;

&lt;p&gt;This library for AutoML will optimize your Machine Learning pipelines using genetic programming.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/EpistasisLab/tpot" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the TPOT repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  14- ChatterBot
&lt;/h3&gt;

&lt;p&gt;Quickly build your chatbot with this library. You’ll be able to enhance your user engagement and interactions and services.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/gunthercox/ChatterBot" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the ChatterBot repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  III. Natural Language Processing (NLP)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyogn3jkoc632dsmh264d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyogn3jkoc632dsmh264d.png" alt="NLP" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  15- NTLK
&lt;/h3&gt;

&lt;p&gt;NLTK is an essential toolkit for Natural Language Processing.&lt;br&gt;
NLTKs' key features include processing and manipulating text( tokenization, stemming, etc.…) and classifications with NLP tasks for sentiment analysis, for example.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/nltk/nltk" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the NLTK repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  16- SpaCy
&lt;/h3&gt;

&lt;p&gt;It is the newer kid on the block, focusing on making NLP more accessible and user-friendly.&lt;br&gt;
The library optimized the process to guarantee incredible speed and efficiency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/explosion/spaCy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the SpaCy repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  17- Gensim
&lt;/h3&gt;

&lt;p&gt;This library specializes in topic modeling and document similarity—a good fit for your unsupervised text use cases and tasks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/RaRe-Technologies/gensim" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Gensim repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  18- HF transformers
&lt;/h3&gt;

&lt;p&gt;This is your tool for advanced NLP tasks. This library has state-of-the-art natural language processing models and algorithms.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/huggingface/transformers" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the HF transformers repository&lt;/a&gt;
 &lt;/p&gt;


&lt;h2&gt;
  
  
  IV. Model Visualization &amp;amp; Evaluation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3vd6oxq2vhdk074imoj9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3vd6oxq2vhdk074imoj9.png" alt="Eval" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  19- Matplotlib
&lt;/h3&gt;

&lt;p&gt;Matplotlib is the main widget library in Python, and for a good reason.&lt;br&gt;
Matplotlib allows the plotting of 2D graphs with a wide range of chart types and also allows for significant customization.&lt;br&gt;
The fine-grain control of the elements is a real advantage of this library.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/matplotlib/matplotlib" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Matplotlib repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  20- imbalanced-learn
&lt;/h3&gt;

&lt;p&gt;This library gives you tools for dealing with imbalanced data—a life-saver when your dataset is far from balanced.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/scikit-learn-contrib/imbalanced-learn" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the imbalanced-learn repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  21- SHAP
&lt;/h3&gt;

&lt;p&gt;This library helps generate an explanation of your model’s output. It’s a great way to bring in some interpretability in black-grey box models.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/slundberg/shap" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the SHAP repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  22- Missingno
&lt;/h3&gt;

&lt;p&gt;It is a great solution to identify missing values in your data. Missingo helps you visualize them quickly, making this process simpler and more efficient.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ResidentMario/missingno" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Missingno repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  23- Lazy predict
&lt;/h3&gt;

&lt;p&gt;It helps build baseline models to compare and evaluate without extensive code. A great tool for newbies in ML. It is low-code and takes care of the parameter-tuning hassle for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/shankarpandala/lazypredict" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Lazy Predict repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  24- Category Encoders
&lt;/h3&gt;

&lt;p&gt;This library will help you deal with categorical data. It helps build baseline models to compare and evaluate without extensive code. This library is Sklearn compatible.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/scikit-learn-contrib/category_encoders" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Category Encoders repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  V. Computer Vision
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbi998xxqqx9u8am9ulhx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbi998xxqqx9u8am9ulhx.png" alt="Computer Vision" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  25- OpenCV
&lt;/h3&gt;

&lt;p&gt;OpenCV provides various algorithms around real-time computer vision.&lt;br&gt;
You can process multiple formats, including objects, humans, and handwriting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/opencv/opencv" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the OpenCV repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Have fun!
&lt;/h2&gt;

&lt;p&gt;Exploring these libraries will allow you to handle most AI and ML use cases. Python libraries go beyond tools, they participate in the continuous innovation in the AI landscape, so make sure to support them!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Python libraries you need to know in 2025</title>
      <dc:creator>Marine</dc:creator>
      <pubDate>Tue, 12 Mar 2024 13:46:51 +0000</pubDate>
      <link>https://forem.com/taipy/python-libraries-you-need-to-know-in-2024-37ka</link>
      <guid>https://forem.com/taipy/python-libraries-you-need-to-know-in-2024-37ka</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Are you getting into Python?  It’s a jungle! &lt;br&gt;
You have libraries just about anything you can think about - from creating games to building web applications. &lt;/p&gt;

&lt;p&gt;With this list, get a quick idea of 50 standard Python libraries and what they do whether you’re just getting started or looking to deepen your Python game.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fat6swte9i2adqyeni03w.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fat6swte9i2adqyeni03w.gif" alt="Intro" width="325" height="168"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  1. &lt;strong&gt;Taipy&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Taipy has been designed to expedite application development, from initial prototypes to production-ready applications.&lt;br&gt;
This open-source Python library is designed for easy development for both front-end (GUI) and ML/Data pipelines. &lt;br&gt;
It is low code and designed for any pythonista.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fscksaelbdhxsyzkv0bdq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fscksaelbdhxsyzkv0bdq.png" alt="Lisan" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Avaiga/taipy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Taipy repository&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Your support means a lot🌱, and helps us in many ways, like writing articles! 🙏&lt;/p&gt;




&lt;h2&gt;
  
  
  2. &lt;strong&gt;NumPy&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Essential for numerical computations, supporting large, multi-dimensional arrays and matrices. This library is part of Python royalty.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/numpy/numpy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Numpy repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  3. &lt;strong&gt;Pandas&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A cornerstone for data manipulation and analysis, offering intuitive data structures and operations for manipulating numerical tables and time series. Another Python indispensable library, a must-know library.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pandas-dev/pandas" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Pandas repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  4. &lt;strong&gt;Matplotlib&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A versatile tool for creating a wide range of static, minimal, and interactive visualizations. A lot of parameters to play with, this library is very useful when plotting ML and AI graphs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/matplotlib/matplotlib" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Matplotlib repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  5. &lt;strong&gt;SciPy&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Specialized in technical and scientific computing, with Scipy you can do optimization, integration, interpolation, and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/scipy/scipy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the SciPy repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  6. &lt;strong&gt;Scikit-learn&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A go-to library for machine learning, providing a wide range of supervised and unsupervised learning algorithms. The only library you should know when starting with Machine Learning.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/scikit-learn/scikit-learn" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Scikit-learn repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  7. &lt;strong&gt;TensorFlow&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A comprehensive framework for machine learning offers various tools, libraries, and community resources. THe learning curve might be a little steep, but TF is important to know in the Python and ML landscape.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/tensorflow/tensorflow" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the TensorFlow repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  8. &lt;strong&gt;PyTorch&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Favored for both academic research and production due to its flexibility, offering dynamic neural network creation and manipulation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pytorch/pytorch" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the PyTorch repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  9. &lt;strong&gt;Keras&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A high-level API for building and training deep learning models, designed to facilitate building and working with neural networks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/keras-team/keras" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Keras repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  10. &lt;strong&gt;Requests&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Simplifies the process of making HTTP requests, making web scraping and API consumption more accessible.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/psf/requests" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Requests repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  11. &lt;strong&gt;Beautiful Soup&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A tool for web scraping that facilitates data extraction from HTML and XML files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/waylan/beautifulsoup" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Beautiful Soup repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  12. &lt;strong&gt;Flask&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A lightweight and extensible web framework, making it ideal for building small to medium web applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pallets/flask" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Flask repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  13. &lt;strong&gt;Django&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Designed for rapid development and clean, pragmatic design, this high-level framework.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/django/django" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Django repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  14. &lt;strong&gt;Selenium&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This library automates web browsers, enabling the simulation of actual user actions for testing web applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/SeleniumHQ/selenium" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Selenium repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  15. &lt;strong&gt;Pygame&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Provides Python modules for writing video games, including graphical and sound libraries.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pygame/pygame" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Pygame repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  16. &lt;strong&gt;Pillow (PIL Fork)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Extends Python Imaging Library capabilities, supporting various image file formats.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/python-pillow/Pillow" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Pillow repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  17. &lt;strong&gt;SQLAlchemy&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This library offers a full suite of tools for working with databases through Python, providing a robust ORM layer and SQL expression language.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sqlalchemy/sqlalchemy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the SQLAlchemy repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  18. &lt;strong&gt;PySpark&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As you can tell from the name, this library brings the power of Apache Spark to Python, facilitating big data processing and analysis with a Pythonic approach.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/apache/spark" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the PySpark repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  19. &lt;strong&gt;Dash&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Enables the creation of analytical web applications directly in Python without requiring deep knowledge of web development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/plotly/dash" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Dash repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  20. &lt;strong&gt;Plotly&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Specializes in creating interactive and visually appealing graphs and charts suitable for web and mobile applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/plotly/plotly.py" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Plotly repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  21. &lt;strong&gt;Nltk&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This library makes natural language processing accessible and easy to use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/nltk/nltk" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Nltk repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  22. &lt;strong&gt;SpaCy&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Offers industrial-strength natural language processing capabilities with pre-trained models for many languages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/explosion/spaCy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the SpaCy repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  23. &lt;strong&gt;Gensim&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Focused on unsupervised topic modeling and natural language processing, you can use this library to analyze document similarity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/RaRe-Technologies/gensim" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Gensim repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  24. &lt;strong&gt;PyTest&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A robust framework for writing small to complex functional tests, enhancing test readability and maintainability.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pytest-dev/pytest" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the PyTest repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  25. &lt;strong&gt;unittest&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The built-in framework for constructing and running tests mirroring the xUnit architecture found in other languages.&lt;/p&gt;

&lt;p&gt;Unitest is built-in.&lt;/p&gt;




&lt;h2&gt;
  
  
  26. &lt;strong&gt;Fabric&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Simplifies SSH for application deployment or system administration tasks, automating remote shell commands.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/fabric/fabric" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Fabric repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  27. &lt;strong&gt;Vizzu&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Aimed at animated data visualizations and storytelling, Vizzu is the go-to library to create dynamic and interactive charts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vizzuhq/vizzu-lib" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Vizzu repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  28. &lt;strong&gt;Polars&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A DataFrame library optimized for performance and efficiency, capable of easily handling large datasets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pola-rs/polars" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Polars repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  29. &lt;strong&gt;Docker-Py&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Provides Pythonic access to the Docker Remote API, enabling automation of Docker container management.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/docker/docker-py" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Docker-Py repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  30. &lt;strong&gt;OpenCV&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A staple in computer vision and image processing, offering a comprehensive suite of algorithms and tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/opencv/opencv" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the OpenCV repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  31. &lt;strong&gt;Scikit-image&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Dedicated to image processing, it extends the capabilities of SciPy and NumPy to the visual landscape.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/scikit-image/scikit-image" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Scikit-image repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  32. &lt;strong&gt;SymPy&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This library is made for your symbolic computation, offering features ranging from algebraic solving to calculus.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sympy/sympy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the SymPy repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  33. &lt;strong&gt;Virtualenv&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Essential for creating isolated Python environments and managing project dependencies cleanly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pypa/virtualenv" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Virtualenv repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  34. &lt;strong&gt;Click&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Streamlines the creation of command-line interfaces, promoting code that is both composable and easy to extend.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pallets/click" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Click repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  35. &lt;strong&gt;Argparse&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Facilitates the parsing of command-line arguments, which is essential for CLI application development.&lt;/p&gt;

&lt;p&gt;Argparse is built-in.&lt;/p&gt;




&lt;h2&gt;
  
  
  36. &lt;strong&gt;Logging&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Offers a flexible logging system, from simple logging to complex per-module configurations.&lt;/p&gt;

&lt;p&gt;Logging is built-in.&lt;/p&gt;




&lt;h2&gt;
  
  
  37. &lt;strong&gt;PyYAML&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Handles YAML files, supporting serialization and deserialization of Python objects to and from YAML.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/yaml/pyyaml" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the PyYAML repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  38. &lt;strong&gt;xlrd/xlwt&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Ideal for reading and writing Excel files, bridging the gap between Python and Excel documents.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/python-excel/xlrd" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the xlrd repository&lt;/a&gt;
&lt;br&gt;
&lt;a href="https://github.com/python-excel/xlwt" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the xlwt repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  39. &lt;strong&gt;Pandas-Profiling&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Generates comprehensive profile reports from pandas&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pandas-profiling/pandas-profiling" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Pandas-Profiling repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  40.  &lt;strong&gt;TQDM&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Tqdm is a wrapper to any loop that will track the advancement with a progress bar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/tqdm/tqdm" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the TQDM repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  41. &lt;strong&gt;Faker&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Need fake data that looks real? Faker's got your back.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/joke2k/faker" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Faker repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  42. &lt;strong&gt;Flake8&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A must-need library to keep your code cleaner with easily to implement style checks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/PyCQA/flake8" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Flake8 repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  43. &lt;strong&gt;Black&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Bring your code formatting to the next level.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/psf/black" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Black repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  44.  &lt;strong&gt;Mypy&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;It's like having a grammar teacher for your code but for types.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/python/mypy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Mypy repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  45. &lt;strong&gt;Pydantic&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The library you need to validate your Python scripts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/samuelcolvin/pydantic" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Pydantic repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  46.  &lt;strong&gt;FastAPI&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;FastAPI is a web framework for building RESTful APIs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/tiangolo/fastapi" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the FastAPI repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  47. &lt;strong&gt;Catboost&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Gives your machine-learning models ways to handle categorical data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/catboost/catboost" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Catboost repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  48.  &lt;strong&gt;Seaborn&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Making elevated data visualization.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mwaskom/seaborn" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Seaborn repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  49. &lt;strong&gt;Turtle&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Brings programming to life with cool graphics and animations. A great way to learn and get started with Python.&lt;/p&gt;

&lt;p&gt;Turtle is built-in.&lt;/p&gt;




&lt;h2&gt;
  
  
  50. &lt;strong&gt;Asciimatics&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Asciimatics is a library that allows you to create full-screen text UIs. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/peterbrittain/asciimatics" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Asciimatics repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;And there you have it!&lt;br&gt;
A sneak peek in the Python jungle! Knowing most of these libraries sets you up to tackle any project!  So get at it, Pythonista!&lt;/p&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>programming</category>
      <category>list</category>
    </item>
    <item>
      <title>+10 Resources to Empower Women in Technology</title>
      <dc:creator>Marine</dc:creator>
      <pubDate>Wed, 06 Mar 2024 09:46:35 +0000</pubDate>
      <link>https://forem.com/marisogo/10-resources-to-empower-women-in-technology-2m6n</link>
      <guid>https://forem.com/marisogo/10-resources-to-empower-women-in-technology-2m6n</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;With March 8th coming up, it’s always a time for me to get a little reflective on my experience as a woman in tech.&lt;/p&gt;

&lt;p&gt;I’ve been working in tech for more than five years. &lt;br&gt;
I started as a Data Scientist, and now I’m exploring and loving the DevRel 🥑 role for &lt;a href="https://github.com/Avaiga/taipy"&gt;Taipy&lt;/a&gt;. &lt;br&gt;
Needless to say, evolving in the tech scene has been a ride full of ups, downs, and everything in between. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupvr60s75yue60ebdbff.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupvr60s75yue60ebdbff.png" alt="Gendergap" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;International Women’s Day isn’t just a date on the calendar; this day is essential for us to question how things can improve. A day for celebration, reflection, and change! &lt;/p&gt;



&lt;p&gt;This day makes me question my own evolution. &lt;br&gt;
Progressing in tech has been rewarding and exhilarating, though I’ve had to overcome impostor syndrome and continuously find a sense of belonging. &lt;br&gt;
Yet, these challenges have shaped the woman I am today and honed my greatest strengths. &lt;/p&gt;

&lt;p&gt;Throughout my evolution, I’ve discovered an incredible support system within various communities and resources that I’m excited to share with you: &lt;/p&gt;


&lt;h2&gt;
  
  
  Communities
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Pyladies
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa8uky29xpk6n2mfmge5l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa8uky29xpk6n2mfmge5l.png" alt="Pyladies" width="800" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a Python enthusiast, Pyladies holds a special place in my heart.  I have attended their meetups in Paris and London, and they host events in 50+ cities worldwide. As the name reveals, this group is an active part of the open-source Python community. A great place to be up-to-date on the newest trends in Python and even better your coding skills with their workshops.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pyladies.com/" class="ltag_cta ltag_cta--branded"&gt;Check out PyLadies&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Women in Machine Learning and Data Science
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faodbft8fk16d9mmcrj9p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faodbft8fk16d9mmcrj9p.png" alt="WiMLDS" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Women in Machine Learning and Data Science supports and promotes women interested in advancing in the Machine Learning and data science landscape. &lt;br&gt;
Attending their events in France and the UK has been an excellent opportunity to learn the latest trends and connect with fellow data science enthusiasts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://wimlds.org/" class="ltag_cta ltag_cta--branded"&gt;Check out WiMLDS&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Women in Tech
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Finilre39c2idekq9bh2m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Finilre39c2idekq9bh2m.png" alt="WIT" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This global organization works to help women embrace technology. They have a global vision and push for empowerment and closing the gender gap.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://women-in-tech.org/" class="ltag_cta ltag_cta--branded"&gt;Check out Women in Tech&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Women Who Code
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz1av53wrxvufpn1vmttv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz1av53wrxvufpn1vmttv.png" alt="WWC" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Created to empower women in technical careers. They have coding events and resources focusing on helping women in their career paths. If you feel you need some guidance carrer-wise, don't hesistate to check their website out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://womenwhocode.com/" class="ltag_cta ltag_cta--branded"&gt;Check out Women Who Code&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Conferences
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Grace Hopper Celebration
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5qltssqxjnvsc40v98el.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5qltssqxjnvsc40v98el.png" alt="GH" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most significant event gathering women in technology. This event is named after an inspirational computer-scientist and showcases women's careers and research in the computing landscape.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ghc.anitab.org/" class="ltag_cta ltag_cta--branded"&gt;Check out Grace Hopper Celebration&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Women In Tech Festival
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcggr6cyfcd9mzng2tdsf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcggr6cyfcd9mzng2tdsf.png" alt="fest" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A dynamic event that showcases women in tech through inspiring talks, networking, and workshops.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ghc.anitab.org/" class="ltag_cta ltag_cta--branded"&gt;Check out Grace Hopper Celebration&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Women+ in Data and AI
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4jf6of1jozopgqiqefa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4jf6of1jozopgqiqefa.png" alt="Wplus" width="800" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This was one of my favorite conferences last year. The energy was&lt;br&gt;&lt;br&gt;
inspiring— a modern take on conferences showcasing underrepresented genders' contributions in the field.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.womenintechfestivalglobal.com/womenintechfestivalglobal2024/en/page/home" class="ltag_cta ltag_cta--branded"&gt;Check out the Women in Tech Festival&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Podcasts
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Women in Tech Podcast
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy6dl4vh8g6lalb3eo4if.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy6dl4vh8g6lalb3eo4if.png" alt="esp" width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A podcast that will inspire you with great stories from women in tech, from their journeys to their challenges, and some well- constructed advice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://podcast.womenintechshow.com/" class="ltag_cta ltag_cta--branded"&gt;Check out the Women in Tech Podcast&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Tech Girls Cast
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ez1o0kwicb0urqt26ii.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ez1o0kwicb0urqt26ii.png" alt="TC" width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another inspirational podcast, it will take you through the stories of women and inspire you in your daily life.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://podcasts.apple.com/us/podcast/tech-girls-cast/id1557400427" class="ltag_cta ltag_cta--branded"&gt;Check out the Tech Girls Cast&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  She Talks Tech
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8bppajq0h7sgs4zp0zsl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8bppajq0h7sgs4zp0zsl.png" alt="She talks" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This podcast brings powerful conversations with key women in the sector. They cover subjects around leadership and personal growth. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://wearetechwomen.com/she-talks-tech-podcast/" class="ltag_cta ltag_cta--branded"&gt;Check out the She Talks Tech podcast&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Subreddits
&lt;/h2&gt;

&lt;h3&gt;
  
  
  /girlsgonewired
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fosdfsw36p2rm08vuuwj9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fosdfsw36p2rm08vuuwj9.png" alt="wired" width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A community for women and non-binary people in STEM. You can share your story and ask for advice. A subreddit to use as a support system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.reddit.com/r/girlsgonewired/" class="ltag_cta ltag_cta--branded"&gt;Check out the Girls Gone Wired  subreddit&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  /womenintech
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyleoylj40cdebwb81ar.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyleoylj40cdebwb81ar.png" alt="wit" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A great subreddit to discuss your experiences, challenges and achievements in the tech industry. Shine and support women in the subreddits.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.reddit.com/r/womenintech/" class="ltag_cta ltag_cta--branded"&gt;Check out the Women in Tech subreddit&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  /LadiesOfScience
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxcej49410cof23q1zaes.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxcej49410cof23q1zaes.png" alt="ladies" width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's a support subreddit for women in tech. You'll find testimonies, advice, and showcases.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.reddit.com/r/LadiesofScience/" class="ltag_cta ltag_cta--branded"&gt;Check out the Ladies if Science subreddit&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;My tech journey has been a mix of sometimes feeling like an outsider and learning to embrace my strengths and uniqueness. These communities have played a part in this evolution.&lt;/p&gt;

&lt;p&gt;Let’s continue to break barriers and make sure the tech world is inclusive and welcoming. &lt;/p&gt;

&lt;p&gt;Don't hesitate to share your favorite resources in the comments!&lt;/p&gt;

</description>
      <category>womenintech</category>
      <category>resources</category>
      <category>wecoded</category>
    </item>
    <item>
      <title>How To Create an AI Photo App with Python</title>
      <dc:creator>Marine</dc:creator>
      <pubDate>Tue, 27 Feb 2024 16:47:06 +0000</pubDate>
      <link>https://forem.com/taipy/how-to-create-an-ai-photo-app-with-python-23g8</link>
      <guid>https://forem.com/taipy/how-to-create-an-ai-photo-app-with-python-23g8</guid>
      <description>&lt;p&gt;Let's learn how to build an image recognition application using Python and Taipy.&lt;br&gt;
We'll start by developing the model, and then we will use Taipy to build a Graphical User Interface (GUI) to use it.&lt;br&gt;
The application will allow us to upload an image, and it will identify the content using our trained model.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupcro013hlvelhxq0v9a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupcro013hlvelhxq0v9a.png" alt="application" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  What is a Neural Network Builder
&lt;/h2&gt;

&lt;p&gt;Let’s start! &lt;br&gt;
The first phase is to create a Neural Network for image classification. &lt;br&gt;
We will use a Neural Network Builder from &lt;strong&gt;TensorFlow&lt;/strong&gt; and the &lt;strong&gt;CIFAR-10&lt;/strong&gt; dataset. &lt;br&gt;
Tensorflow is an essential for Artificial Intelligence library to develop and train our neural network.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/tensorflow/tensorflow" class="ltag_cta ltag_cta--branded"&gt;Star ⭐ the TensorFlow repository&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;The dataset comprises +50,000 images and is crucial for training image recognition models.&lt;br&gt;
We will be able to put our model to the test with Taipy, and build an application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Avaiga/taipy" class="ltag_cta ltag_cta--branded"&gt;Star ⭐ the Taipy repository&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Your support means a lot🌱, and really helps us in so many ways, like writing articles! 🙏&lt;/p&gt;




&lt;p&gt;Our model will be trained on the ten categories present in the CIFAR dataset:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;airplane ✈️&lt;/li&gt;
&lt;li&gt;automobile 🚗&lt;/li&gt;
&lt;li&gt;bird 🦜&lt;/li&gt;
&lt;li&gt;cat 🐈&lt;/li&gt;
&lt;li&gt;deer 🦌&lt;/li&gt;
&lt;li&gt;dog 🐶&lt;/li&gt;
&lt;li&gt;frog 🐸&lt;/li&gt;
&lt;li&gt;horse 🐴&lt;/li&gt;
&lt;li&gt;ship ⚓&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Our model will be able to classify images into these ten categories. &lt;/p&gt;




&lt;h2&gt;
  
  
  Creating a Neural Network Builder
&lt;/h2&gt;




&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Python&lt;/em&gt;&lt;/strong&gt;- The Python programming language should be available on your computer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;virtualenv&lt;/em&gt;&lt;/strong&gt; - A tool for creating isolated virtual Python environments
&lt;em&gt;I will be using virtualenv for this project; however, you can use your preference,  like venv, or Conda, and adapt your commands.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;IMPORTANT : Depending on your setup, you might need to use the command python or python3 when running commands in the terminal&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Setup
&lt;/h3&gt;

&lt;p&gt;Ok, time to build!&lt;br&gt;
Run these commands to set your project up:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir ml-photo-app
cd ml-photo-app
mkdir neural-network-builder
cd neural-network-builder
virtualenv venv
source venv/bin/activate
cd venv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let's install the real deal,  two Python libraries: &lt;strong&gt;TensorFlow&lt;/strong&gt; and &lt;strong&gt;numpy&lt;/strong&gt;- &lt;em&gt;a library for mathematical operations on arrays.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Use the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install tensorflow numpy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Download CIFAR dataset
&lt;/h3&gt;

&lt;p&gt;But first, data!&lt;br&gt;
Now, let’s download the CIFAR-10 dataset from &lt;a href="https://www.cs.toronto.edu/~kriz/cifar.html"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbmvgqqxds91ps38n3pbm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbmvgqqxds91ps38n3pbm.png" alt="CIFAR" width="800" height="310"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The one we need is the &lt;em&gt;CIFAR-10 Python version&lt;/em&gt;. &lt;br&gt;
When you download and unzip the files, you should see a folder named &lt;em&gt;cifar-10-batches-py&lt;/em&gt;. &lt;br&gt;
Copy that folder and all the files inside the project we just created: &lt;em&gt;neural-network-builder/venv&lt;/em&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  Python script: generate-model.py
&lt;/h3&gt;

&lt;p&gt;Create a file called &lt;em&gt;generate-model.py&lt;/em&gt;.&lt;br&gt;
This will be our Python script for the model training and exporting.&lt;br&gt;&lt;br&gt;
Add the code below to the &lt;em&gt;generate-model.py&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;shutil&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pickle&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;tensorflow&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tf&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;tensorflow.keras&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datasets&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;layers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;models&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;load_cifar10_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data_dir&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;train_images&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="n"&gt;train_labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data_dir&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;data_batch_&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;rb&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;data_dict&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pickle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;bytes&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;images&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data_dict&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;data&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="n"&gt;labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data_dict&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;labels&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

            &lt;span class="n"&gt;train_images&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;images&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;train_labels&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;train_images&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;train_images&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;reshape&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                  &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;transpose&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;train_labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;train_labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data_dir&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;test_batch&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;rb&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;data_dict&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pickle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;bytes&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;test_images&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data_dict&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;data&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;reshape&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;transpose&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;test_labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data_dict&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;labels&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

    &lt;span class="nf"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;train_images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;train_labels&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;test_images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;test_labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;build_model&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="c1"&gt;# Define the model architecture
&lt;/span&gt;    &lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Sequential&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;layers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Conv2D&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;activation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;relu&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;input_shape&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;layers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;MaxPooling2D&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;layers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Conv2D&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;activation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;relu&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;layers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;MaxPooling2D&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;layers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Conv2D&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;activation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;relu&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

    &lt;span class="c1"&gt;# Add dense layers on top
&lt;/span&gt;    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;layers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Flatten&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;layers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Dense&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;activation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;relu&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;layers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Dense&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;train_model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;train_images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;train_labels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;test_images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;test_labels&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# Compile and train the model
&lt;/span&gt;    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;compile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;adam&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                  &lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keras&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;losses&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;SparseCategoricalCrossentropy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                      &lt;span class="n"&gt;from_logits&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                  &lt;span class="n"&gt;metrics&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;accuracy&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

    &lt;span class="n"&gt;history&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;train_images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;train_labels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;epochs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                        &lt;span class="n"&gt;validation_data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;test_images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;test_labels&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

    &lt;span class="c1"&gt;# Check if the model directory exists
&lt;/span&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="c1"&gt;# If it does, delete it
&lt;/span&gt;        &lt;span class="n"&gt;shutil&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rmtree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# Recreate the model directory
&lt;/span&gt;    &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;makedirs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Save the model
&lt;/span&gt;    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;model/cifar-10-batches-py-model.keras&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;history&lt;/span&gt;

&lt;span class="c1"&gt;# Load and preprocess the CIFAR10 dataset
&lt;/span&gt;&lt;span class="n"&gt;data_dir&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;C:/Users/marin/Documents/GitHub/AB/ml-photo-app/neural-network-builder/venv/cifar-10-batches-py&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;train_images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;train_labels&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;test_images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                               &lt;span class="n"&gt;test_labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;load_cifar10_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data_dir&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="c1"&gt;# Normalize pixel values to be between 0 and 1
&lt;/span&gt;&lt;span class="n"&gt;train_images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;test_images&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;train_images&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;255.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;test_images&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;255.0&lt;/span&gt;

&lt;span class="c1"&gt;# Build and train the model
&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;build_model&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;history&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;train_model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;train_images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;train_labels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                      &lt;span class="n"&gt;test_images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;test_labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="c1"&gt;# Print the history dictionary
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;history&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;history&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Run the &lt;em&gt;generate-model.py&lt;/em&gt; script
&lt;/h3&gt;

&lt;p&gt;Moment of truth! Run your file.&lt;br&gt;
This file will build, train, and save our model.&lt;br&gt;&lt;br&gt;
Depending on your computer, this process can take more or less time.&lt;/p&gt;

&lt;p&gt;Let’s focus on the parameter called epochs in our script, which is set to &lt;em&gt;epochs=50.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcb3mclcefqy3472itcv2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcb3mclcefqy3472itcv2.png" alt="epochs" width="800" height="125"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An epoch is an important hyperparameter, representing one complete cycle through all training datasets.&lt;br&gt;
Each sample will update the model’s parameters. &lt;br&gt;
This cycle is not about the time it takes but the number of times it runs through the data. &lt;br&gt;
This key parameter influences the training process. Indeed, having more epochs affects the model’s learning rate.&lt;br&gt;&lt;br&gt;
The higher the number, the longer it will take to train the model.&lt;/p&gt;

&lt;p&gt;Underfitting could happen if there are insufficient epochs for the model to identify the underlying patterns in the data. However, an excessive number of epochs might cause the model to overfit the training set, resulting in subpar generalization on fresh, untried data.&lt;/p&gt;

&lt;p&gt;To run the script, use this command here (you might need to use &lt;em&gt;python&lt;/em&gt; or &lt;em&gt;python3&lt;/em&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 generate-model.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, a little patience! Wait for your model to be trained and saved in the &lt;em&gt;model&lt;/em&gt; folder.&lt;br&gt;
When creating our GUI front end, we will copy that model folder. &lt;br&gt;
Now, let’s add a GUI to play with our model!&lt;/p&gt;


&lt;h2&gt;
  
  
  Build our GUI using Taipy
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Setup
&lt;/h3&gt;

&lt;p&gt;Navigate back to the main project folder ml-photo-app and then run these scripts to set up our interface:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir frontend
cd frontend
virtualenv venv
source venv/bin/activate
cd venv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, let’s install the Python libraries we will be using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Taipy&lt;/li&gt;
&lt;li&gt;TensorFlow&lt;/li&gt;
&lt;li&gt;Numpy&lt;/li&gt;
&lt;li&gt;Pillow ( PIL) - Python imaging library&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Run this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install taipy tensorflow pillow numpy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Frontend folder
&lt;/h3&gt;

&lt;p&gt;Let’s get our fresh new model and copy it from our neural-network-builder project into our frontend folder. &lt;br&gt;
Create two files in our root folder inside of &lt;em&gt;frontend&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;index.py&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;index.css&lt;/em&gt;. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are the files we will run for our GUI.&lt;/p&gt;


&lt;h3&gt;
  
  
  Set your CSS preferences: index.css
&lt;/h3&gt;

&lt;p&gt;Add this code to the index.css file we just made:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="sx"&gt;url('https://fonts.googleapis.com/css2?family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&amp;amp;display=swap')&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;rgb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;36&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;57&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;86&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;'Alegreya Sans'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;sans-serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;400&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;font-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;normal&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;18px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.attachment&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="nc"&gt;.prediction&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;flex-flow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="nb"&gt;nowrap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;align-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.attachment&lt;/span&gt; &lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.prediction&lt;/span&gt; &lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;margin-right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Create the index.py Python script
&lt;/h3&gt;

&lt;p&gt;To create an application with Taipy, you can use Markdown, the Python API, or HTML. &lt;br&gt;
In this tutorial, we will use the &lt;strong&gt;HTML&lt;/strong&gt; method, but feel free to use whichever option!&lt;/p&gt;

&lt;p&gt;And lastly, add this code to the &lt;em&gt;index.py&lt;/em&gt; script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;taipy.gui&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Gui&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;taipy.gui&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Html&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;tensorflow.keras&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;models&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;PIL&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;tensorflow&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;


&lt;span class="n"&gt;class_names&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;airplane&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;automobile&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;bird&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;cat&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;deer&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;dog&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;frog&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;horse&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ship&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;truck&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load_model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;C:/Users/marin/Documents/GitHub/AB/ml-photo-app/model/cifar-10-batches-py-model.keras&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;predict_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;path_to_img&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path_to_img&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;convert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;RGB&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;resize&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;asarray&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;
    &lt;span class="n"&gt;logits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;predict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;array&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;])[:&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="n"&gt;probs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tensorflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;softmax&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;logits&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;numpy&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="n"&gt;top_prob&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;probs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;max&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;top_pred&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;class_names&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;argmax&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;probs&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;top_prob&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;top_pred&lt;/span&gt;


&lt;span class="n"&gt;opt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tensorflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keras&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;optimizers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;legacy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Adam&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;learning_rate&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;
&lt;span class="n"&gt;img_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://placehold.co/600?text=No+Image+Available&amp;amp;font=roboto&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;prob&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="n"&gt;pred&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;


&lt;span class="n"&gt;html_page&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Html&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
&amp;lt;div class=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;container&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
&amp;lt;h1&amp;gt;Machine Learning Photo App&amp;lt;/h1&amp;gt;
&amp;lt;p&amp;gt;There is a prediction indication that ranges from 0 to 100. The greater the value, the more certain the machine model is that the prediction is true. This all depends on the Neural Network Builder model that we generated. The longer you train the model, the smarter it will get. If it does not have enough training time, it will make incorrect predictions.&amp;lt;/p&amp;gt;
&amp;lt;div class=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;attachment&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
&amp;lt;div&amp;gt;&amp;lt;taipy:file_selector extensions=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;{content}&amp;lt;/taipy:file_selector&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;&amp;lt;p&amp;gt;Choose an image from your computer to upload&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;
&amp;lt;taipy:image&amp;gt;{img_path}&amp;lt;/taipy:image&amp;gt;
&amp;lt;taipy:indicator min=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; max=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;100&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; width=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;25vw&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; height=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;25vh&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; orientation=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;vertical&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; value=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{prob}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;{prob}&amp;lt;/taipy:indicator&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prediction&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
&amp;lt;p&amp;gt;Prediction:&amp;lt;/p&amp;gt;&amp;lt;div&amp;gt;&amp;lt;taipy:text&amp;gt;{pred}&amp;lt;/taipy:text&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_change&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var_val&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;var_name&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;top_prob&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;top_pred&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;predict_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var_val&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prob&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;top_prob&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pred&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Its a &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;top_pred&lt;/span&gt;
        &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;img_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;var_val&lt;/span&gt;


&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Gui&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;html_page&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;use_reloader&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Our application will run on the 8000 port here, but feel free to change it.&lt;/p&gt;




&lt;h3&gt;
  
  
  Run the application
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app.run(use_reloader=True, port=8000)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With the &lt;em&gt;use_realoder&lt;/em&gt; set to *True”, if you make any changes to your GUI code, you don’t have to rerun everything; just refresh your application page.&lt;/p&gt;

&lt;p&gt;To run our app, use this command here:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;taipy run index.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  How to use the application?
&lt;/h3&gt;

&lt;p&gt;Upload any &lt;em&gt;.png&lt;/em&gt;, preferably with an image part of these ten categories! &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;airplane&lt;/li&gt;
&lt;li&gt;automobile&lt;/li&gt;
&lt;li&gt;bird&lt;/li&gt;
&lt;li&gt;cat&lt;/li&gt;
&lt;li&gt;deer&lt;/li&gt;
&lt;li&gt;dog&lt;/li&gt;
&lt;li&gt;frog&lt;/li&gt;
&lt;li&gt;horse&lt;/li&gt;
&lt;li&gt;ship&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Have fun seeing how your application classifies images!&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Our project is completed!&lt;/p&gt;

&lt;p&gt;We used Python to create an image classifier model that we could use directly through a GUI with Taipy. Don't hesitate to check out Tensflow's and Taipy's documentation if you want to make a more comprehensive application.&lt;/p&gt;

&lt;p&gt;Feedback welcomed!&lt;/p&gt;

</description>
      <category>python</category>
      <category>tutorial</category>
      <category>opensource</category>
      <category>coding</category>
    </item>
    <item>
      <title>Python libraries for your DataScience CV in 2024</title>
      <dc:creator>Marine</dc:creator>
      <pubDate>Tue, 13 Feb 2024 12:07:03 +0000</pubDate>
      <link>https://forem.com/taipy/python-libraries-for-your-datascience-cv-in-2024-5cl7</link>
      <guid>https://forem.com/taipy/python-libraries-for-your-datascience-cv-in-2024-5cl7</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;TL;DR&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In 2024, Python is still the primary language for data science thanks to its simplicity but also with the various libraries for data cleaning, feature engineering, visualization, and machine learning.&lt;br&gt;
If you want to start or pivot your career to be more data science-oriented, this list will give you the libraries you need to know.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwkuszl36ow451qqonbc5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwkuszl36ow451qqonbc5.gif" alt="GIF"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  1- Taipy
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Field: Full application&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj6z61hrjtov7vjymjt5d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj6z61hrjtov7vjymjt5d.png" alt="Taipy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Taipy has been designed to expedite application development, from initial prototypes to production-ready applications.&lt;br&gt;
This open-source Python library is designed for easy development for both front-end (GUI) and ML/Data pipelines. &lt;br&gt;
It is low code and designed for any pythonista.&lt;/p&gt;

&lt;p&gt;Key features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Towards Data science: Notebook compatible &amp;amp; easy integration with Machine learning platforms (Dataiku, Databricks, etc.…)&lt;/li&gt;
&lt;li&gt;Taipy scales as more users on the application&lt;/li&gt;
&lt;li&gt;Taipy works with large datasets&lt;/li&gt;
&lt;li&gt;Asynchronous mode: ideal for handling high-load applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0un08vhstrk6zpst5yti.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0un08vhstrk6zpst5yti.gif" alt="QueenB GIF"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Avaiga/taipy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Taipy repository&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Your support means a lot🌱, and really helps us in so many ways, like writing articles! 🙏&lt;/p&gt;




&lt;h2&gt;
  
  
  2- Matplotlib
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Field: Data Visualization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmspnyvvpbi9vk5qw9dp1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmspnyvvpbi9vk5qw9dp1.png" alt="Mat"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Matplotlib is the most famous visualization widget library. &lt;br&gt;
With this library, you can plot any 2D graph easily with its extensive range of charts and customization capabilities.&lt;br&gt;
A great library to check your model’s performance with simple and quick charts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/matplotlib/matplotlib" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  3- Pandas
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Field: Data Manipulation and Analysis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp2xnkvuwpwzok4o1zpci.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp2xnkvuwpwzok4o1zpci.png" alt="Pandas"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How to code in Python without knowing Pandas? Pandas are Python royalty!&lt;br&gt;
The two data structures of this library are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dataframes&lt;/li&gt;
&lt;li&gt;series
This library allows data loading, cleaning, and preparation quickly and efficiently.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key  functions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Loading data&lt;/li&gt;
&lt;li&gt;Reshaping data frames&lt;/li&gt;
&lt;li&gt;Basic statistics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/pandas-dev/pandas" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  4- Numpy
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Field: Numerical Computing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhjpcse69no86muy2lpd9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhjpcse69no86muy2lpd9.png" alt="Numpy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Numpy is less generalist than Pandas, but this is an essential tool for scientific computing and data preprocessing.&lt;br&gt;
When using Numpy, you will become familiar with arrays and know how to efficiently make data manipulations and mathematical functions.&lt;br&gt;
This library is definitely essential to your data science projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/numpy/numpy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  5- Scikit-Learn
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Field: Machine Learning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9a14zmbtz9xx9wwgx4ck.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9a14zmbtz9xx9wwgx4ck.png" alt="Sklearn"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another Python library, and this time, your top choice for machine learning in Python.&lt;br&gt;
This library has various algorithms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;K-means clustering&lt;/li&gt;
&lt;li&gt;Regression&lt;/li&gt;
&lt;li&gt;Classification&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But it also sets up your machine learning project through data splitting and dimension reduction techniques, for example.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/scikit-learn/scikit-learn" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the  repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  6- Seaborn
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Field: Statistical Data Visualization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fafzvf6tgmbp3v90p0res.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fafzvf6tgmbp3v90p0res.png" alt="Seaborn"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Seaborn will bring some added features to Matplotlib.&lt;br&gt;
This library brings in complex and attractive visualizations when Matplotlib emphasizes preciseness and simplicity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mwaskom/seaborn" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  7- TensorFlow or Pytorch
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Field: Deep Learning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3yn7zvjiut485x5ni4o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3yn7zvjiut485x5ni4o.png" alt="Deep Learning "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pytorch or TensorFlow that is the question. &lt;br&gt;
These two libraries offer an interface for neural networks. &lt;br&gt;
They are flexible and give you efficient APIs to build and create neural network models.&lt;/p&gt;

&lt;p&gt;The choice is up to you, but here are some differences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PyTorch has a more Natural Language Processing angle&lt;/li&gt;
&lt;li&gt;Pytorch has a more pythonic feel&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/tensorflow/tensorflow" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the TensorFlow repository&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pytorch/pytorch" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the PyTorch repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  8- Keras
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Field: Deep Learning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F51dvps6qkwilxfttge85.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F51dvps6qkwilxfttge85.png" alt="Keras"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keras is a great way to start with Deep Learning as it runs on top of TensorFlow but with a simplified implementation process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/keras-team/keras" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  9- Statsmodel
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Field: Statistical Modeling&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhzzy1arx88hr6404r79j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhzzy1arx88hr6404r79j.png" alt="Stats"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This library has an array of statistical models. &lt;br&gt;
It is an excellent tool for the Exploratory Data Analysis phase of your Machine Learning project.&lt;/p&gt;

&lt;p&gt;The array of capabilities ranges from descriptive analysis to statistical tests; it is also a suitable library for handling time series data, univariate and multivariate statistics, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/statsmodels/statsmodels" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the  repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  10- Polars
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Field: Fast Data Manipulation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpsrc89710z73zechouya.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpsrc89710z73zechouya.png" alt="Polars"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Polars is a DataFrame library created to handle and process large datasets.&lt;br&gt;
It was inspired by Python’s top library- Pandas, but with a (fast) twist, it’s 10 to 100 times faster. A must-know tool when handling large datasets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pola-rs/polars" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;These ten libraries are essential for any ML project, and mastering them will enhance your Datascience CV.&lt;/p&gt;

&lt;p&gt;Don't hesitate to comment your favorite ML/AI libraries!&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>python</category>
      <category>learning</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Getting Started in your Contributing Journey</title>
      <dc:creator>Marine</dc:creator>
      <pubDate>Mon, 05 Feb 2024 18:03:39 +0000</pubDate>
      <link>https://forem.com/taipy/getting-started-in-your-contributing-journey-bel</link>
      <guid>https://forem.com/taipy/getting-started-in-your-contributing-journey-bel</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;In this article, you will find the key steps to starting your open-source contributing journey and some essential resources on where to start. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdzo262yxq45sb44h9hzm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdzo262yxq45sb44h9hzm.png" alt="First Gif" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Some Open-Source Repos to Get Started
&lt;/h2&gt;

&lt;p&gt;Before getting started, here are some projects that have some first good issues. &lt;br&gt;
These are great tags to look up for in projects. They offer opportunities for beginners to tackle their first set of manageable issues.&lt;/p&gt;
&lt;h3&gt;
  
  
  Taipy
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F23aplym3pz2mapscrm2t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F23aplym3pz2mapscrm2t.png" alt="Taipy" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Avaiga/taipy" class="ltag_cta ltag_cta--branded"&gt;Star ⭐ the Taipy repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Pytorch
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwhthch6lliynkgwsdp0q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwhthch6lliynkgwsdp0q.png" alt="Pytorch" width="800" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pytorch/pytorch" class="ltag_cta ltag_cta--branded"&gt;Star ⭐ the repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Hugging face
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbcjxjvak01kfeqzynwas.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbcjxjvak01kfeqzynwas.png" alt="Hugging face" width="800" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/huggingface/transformers" class="ltag_cta ltag_cta--branded"&gt;Star ⭐ the repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Scikit Learn
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjn4wllv9tyev176tgw6p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjn4wllv9tyev176tgw6p.png" alt="Sklearn" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/scikit-learn/scikit-learn" class="ltag_cta ltag_cta--branded"&gt;Star ⭐ the repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Novu
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frego8wn2qpeiee35285v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frego8wn2qpeiee35285v.png" alt="Novu" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/novuhq/novu" class="ltag_cta ltag_cta--branded"&gt;Star ⭐ the repository&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Date-fns
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92ancfqebflphjjufcpb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92ancfqebflphjjufcpb.png" alt="Date" width="800" height="297"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/date-fns/date-fns" class="ltag_cta ltag_cta--branded"&gt;Star ⭐ the repository&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  1- Get to know the Open-Source Culture
&lt;/h2&gt;

&lt;p&gt;First things first, get deep into understanding the open-source culture. Get to know the practice of sharing and collaborating on resources in a way that allows others to use and modify them.&lt;br&gt;
&lt;strong&gt;Resources&lt;/strong&gt;: Check out this &lt;a href="https://opensource.guide/"&gt;website&lt;/a&gt;. They have insightful articles about how to get started, best practices, and valuable hands-on advice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrznz29quwd9qnzicdem.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrznz29quwd9qnzicdem.png" alt="First" width="800" height="285"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2- Selecting your First Project
&lt;/h2&gt;

&lt;p&gt;For a first contribution, ensuring your projects align with your interests is essential. &lt;br&gt;
Look up libraries in the language you like or in thematics that might bring added value to your portfolio. &lt;br&gt;
Don’t forget to coordinate your first contribution with your skillset; I recommend looking for “First Good Issues” tags. &lt;br&gt;
Ensure the project you choose has a good and active community to guarantee they are responsive in helping you.&lt;br&gt;
&lt;strong&gt;Resources&lt;/strong&gt;: Check out this &lt;a href="https://goodfirstissue.dev/"&gt;website &lt;/a&gt; that curates a list of the first good issues available making your search easier.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq4544nc5l9xldscu554m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq4544nc5l9xldscu554m.png" alt="Second" width="800" height="277"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  3- Mastering GitHub
&lt;/h2&gt;

&lt;p&gt;Contributing to your first project goes hand in hand with mastering GitHub. &lt;br&gt;
&lt;strong&gt;Resources&lt;/strong&gt;: I recommend using this GitHub app, &lt;a href="https://github.com/apps/github-learning-lab"&gt;GitHub Learning Lab&lt;/a&gt;, to get started with GitHub and make sure you master it before starting contributing.&lt;br&gt;
Also, check out this &lt;a href="https://github.com/firstcontributions/first-contributions"&gt;repository&lt;/a&gt; that gives a hands-on guide on how to make your first contribution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuph67yc55axavjl9yrxa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuph67yc55axavjl9yrxa.png" alt="Third" width="800" height="282"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4- Understanding the licenses
&lt;/h2&gt;

&lt;p&gt;When contributing, you will always see a license on the repository. &lt;br&gt;
Make sure you get familiar with the different open-source licenses to understand how your contribution is protected and shared.&lt;br&gt;
&lt;strong&gt;Resources&lt;/strong&gt;: Thanks to this &lt;a href="https://choosealicense.com/"&gt;website&lt;/a&gt;, licensing will hold no mysteries. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wb133fzseggo0o7xxz4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wb133fzseggo0o7xxz4.png" alt="License" width="800" height="279"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  5- The "CONTRIBUTING.md" file
&lt;/h2&gt;

&lt;p&gt;A vital and recurring part of the contribution process is examining and understanding the CONTRIBUTING.md file or contribution guidelines of the repository before making your PR.&lt;br&gt;
&lt;strong&gt;Example&lt;/strong&gt;: Check out &lt;a href="https://github.com/Avaiga/taipy/blob/develop/CONTRIBUTING.md"&gt;this example&lt;/a&gt; of contributing guidelines.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8bwgbfhj7zyzzrqdl84.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8bwgbfhj7zyzzrqdl84.png" alt="Contributing" width="800" height="273"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  6- Monetize your Work
&lt;/h2&gt;

&lt;p&gt;Once you have contributed a couple of times and feel it’s something you enjoy and are comfortable with, you can look into projects that help you monetize your contributions.&lt;br&gt;
&lt;strong&gt;Resources&lt;/strong&gt;: Check out &lt;a href="https://quine.sh/"&gt;Quine&lt;/a&gt;; this website showcases open-source projects and their issues, a great way to combine business with pleasure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmgld23qkn9fu4zde6e6x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmgld23qkn9fu4zde6e6x.png" alt="Monetize" width="800" height="276"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Contributing is not just about coding.&lt;/strong&gt;&lt;br&gt;
You can contribute through documentation, design, and community support, so don’t feel intimidated and start contributing and make the community stronger! &lt;br&gt;
If you have some projects to share that are good for newbie contributors, don't hesitate to share them!&lt;/p&gt;

</description>
      <category>github</category>
      <category>programming</category>
      <category>opensource</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Specialized Python libraries for Unique Tasks</title>
      <dc:creator>Marine</dc:creator>
      <pubDate>Wed, 31 Jan 2024 15:06:59 +0000</pubDate>
      <link>https://forem.com/taipy/specialized-python-libraries-for-unique-tasks-5dgm</link>
      <guid>https://forem.com/taipy/specialized-python-libraries-for-unique-tasks-5dgm</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Python is the language of Data, ML, and AI, but Python also has various libraries for other specific needs. These lesser-known libraries serve interesting and particular needs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6t3wr7xjji1l5xkh9j7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6t3wr7xjji1l5xkh9j7.gif" alt="GIF entry"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/Avaiga/taipy" rel="noopener noreferrer"&gt;Taipy&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu3kzd5qdbvwpnqjxdcpg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu3kzd5qdbvwpnqjxdcpg.png" alt="Taipy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;: Taipy is an open-source Python library for building production-ready applications, front-end &amp;amp; back-end, in no time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s unique&lt;/strong&gt;: With Taipy, Python programmers can bring any ML/AI application to an automated and production-ready project. There is no need to know other languages; with Taipy, do front-end and back-end in Python.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0un08vhstrk6zpst5yti.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0un08vhstrk6zpst5yti.gif" alt="QueenB GIF"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Avaiga/taipy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Taipy repository&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Your support means a lot🌱, and really helps us in so many ways, like writing articles! 🙏&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/py-pdf/pypdf" rel="noopener noreferrer"&gt;PyPDF2&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrixzbipzt4i387m8byc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrixzbipzt4i387m8byc.png" alt="PyPDF"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;: This Python library focuses on PDF files. With it, you can do any action, from merging, cropping, and transforming your PDF files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s unique&lt;/strong&gt;: It makes dealing with PDFs easier (no need for sketchy websites) and directly accessible to Pythonistas. &lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/arrow-py/arrow" rel="noopener noreferrer"&gt;Arrow&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1jmhgmtu04se6h5wqmb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1jmhgmtu04se6h5wqmb.png" alt="arrow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;: Arrow makes dealing with dates, times, and timestamps easy with a beginner-friendly interface. You can create, manipulate, format, and convert dates and times.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s unique&lt;/strong&gt;: Arrow fills the Python datetime module's gap with added functionalities with the timezone conversions, for example.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/tqdm/tqdm" rel="noopener noreferrer"&gt;TQDM&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3ewpox011sf04ciht3k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3ewpox011sf04ciht3k.png" alt="TQDM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;: TQDM adds progress bars for your iterative processes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s unique&lt;/strong&gt;: This accessible library enhances user experience with appealing and informative progress bars.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/geopy/geopy" rel="noopener noreferrer"&gt;Geopy&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvu56uis35eo5hejntzdn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvu56uis35eo5hejntzdn.png" alt="Geopy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;: Geopy focuses on coordinates. With it, you can locate countries, cities, or addresses through coordinates using third-party geocoders.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s unique&lt;/strong&gt;: It groups APIs of multiple geolocation services, making it a unified framework for dealing with geographical data.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/asweigart/pyautogui" rel="noopener noreferrer"&gt;PyAutoGUI&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz2av5wm77fn7i4d84rad.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz2av5wm77fn7i4d84rad.png" alt="Pyauto"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;: This Python library will replace your hands on your mouse and keyboard to automate processes with other applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s unique&lt;/strong&gt;: A real productivity win, this library can automate all your repetitive tasks on your computer.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/tartley/colorama" rel="noopener noreferrer"&gt;Colorama&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpr4civy5b5go2jqts0zp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpr4civy5b5go2jqts0zp.png" alt="Colorama"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;: Add some color to your terminal with Colorama. A real game-changer for your eyes!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s unique&lt;/strong&gt;: Colorama will increase the readability and user experience of all your command line and script outputs and of course beautify them.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/mchaput/whoosh" rel="noopener noreferrer"&gt;Whoosh&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffsdfvxv0jmfj0v0velj8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffsdfvxv0jmfj0v0velj8.png" alt="Whoosh"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;: It is your Python search engine library. With Whoosh, you can index all your texts to facilitate searching. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s unique&lt;/strong&gt;: This library is a great productivity feature for any of your applications; it adds a search functionality!&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/Zulko/moviepy" rel="noopener noreferrer"&gt;MoviePy&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F18sm2z4s8681jd94arc4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F18sm2z4s8681jd94arc4.png" alt="Moviepy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;: This Python library simplifies movie editing using Python. With MoviePy, you can cut, concatenate, and add titles (and more!) to your videos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s unique&lt;/strong&gt;: This library brings the video editing process to Python.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/pyjokes/pyjokes" rel="noopener noreferrer"&gt;Pyjokes.es&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3xyfau7ana62s8371fw2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3xyfau7ana62s8371fw2.png" alt="Pyjoke"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;What it does&lt;/strong&gt;: This library generates one-liner jokes on command! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s unique&lt;/strong&gt;: This elementary and straight-to-the-point library is great to try for a little added humor in the day.&lt;/p&gt;




&lt;p&gt;Conclusion:&lt;/p&gt;

&lt;p&gt;All these libraries show Python’s versatility and how the language is growing to cater to specific needs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fb59ro68thirps81nrd.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fb59ro68thirps81nrd.gif" alt="End GIF"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to reach out if you have any questions or feedback!&lt;/p&gt;

</description>
      <category>python</category>
      <category>productivity</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
    <item>
      <title>Web frameworks📊: Your 🐍Python Picks</title>
      <dc:creator>Marine</dc:creator>
      <pubDate>Mon, 22 Jan 2024 13:28:10 +0000</pubDate>
      <link>https://forem.com/taipy/web-frameworks-your-python-picks-3a46</link>
      <guid>https://forem.com/taipy/web-frameworks-your-python-picks-3a46</guid>
      <description>&lt;p&gt;TL;DR&lt;/p&gt;

&lt;p&gt;Python’s web framework landscape is diverse and keeps on expanding. &lt;br&gt;
Let’s focus on 10 libraries and understand their strengths and weaknesses. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2t7blc54d0t9q8h6z6v.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2t7blc54d0t9q8h6z6v.jpg" alt="Meme"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  1- &lt;a href="https://github.com/Avaiga/taipy" rel="noopener noreferrer"&gt;Taipy&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvhquvphsbn3ax1cera0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvhquvphsbn3ax1cera0s.png" alt="Taipy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌟 Advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User-friendliness: Taipy is a Python library that creates production-grade applications with minimal coding&lt;/li&gt;
&lt;li&gt;Full-stack capabilities: Taipy has both front-end and back-end functionalities, simplifying complex interface development&lt;/li&gt;
&lt;li&gt;Geared towards Data science: Notebook compatible &amp;amp; easy integration with Machine learning platforms (Dataiku, Databricks, etc.…)&lt;/li&gt;
&lt;li&gt;Asynchronous mode: ideal for handling high-load applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Disadvantage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Emerging Community: still growing, with fewer resources and a smaller community compared to established libraries&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0un08vhstrk6zpst5yti.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0un08vhstrk6zpst5yti.gif" alt="QueenB GIF"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Avaiga/taipy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Taipy repository&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Your support means a lot🌱, and really helps us in so many ways, like writing articles! 🙏&lt;/p&gt;




&lt;h2&gt;
  
  
  2- &lt;a href="https://github.com/plotly/dash" rel="noopener noreferrer"&gt;Dash&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj92k4pjszexhkj0ki30z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj92k4pjszexhkj0ki30z.png" alt="Dash"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌟Advantages: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integration with Plotly: creates interactive and data-driven dashboards with a plethora of graph options and customization&lt;/li&gt;
&lt;li&gt;Python-centric workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Disadvantage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learning curve: understanding the callback and layout concepts can be challenging for beginners&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3- &lt;a href="https://github.com/django/django" rel="noopener noreferrer"&gt;Django&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjsi9y1esdnlrnbsxmfxp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjsi9y1esdnlrnbsxmfxp.png" alt="Django"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌟 Advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scalable and versatile: good for large-scale projects thanks to its robustness and flexibility&lt;/li&gt;
&lt;li&gt;Rich ecosystem: various integrations with third-party apps and plugins&lt;/li&gt;
&lt;li&gt;Strong Community: active and prosperous user base&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Disadvantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Suitability for more minor projects: complex for more minor use cases&lt;/li&gt;
&lt;li&gt;Learning Curve: completeness of the library makes the time to master high&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4- &lt;a href="https://github.com/tiangolo/fastapi" rel="noopener noreferrer"&gt;Fast API&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fspbgjlnu66jmxelrkuo2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fspbgjlnu66jmxelrkuo2.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌟 Advantages: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High Performance: Fast API focuses on speed and efficiency&lt;/li&gt;
&lt;li&gt;Asynchronous mode: suitable for high-load applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Disadvantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Less established: fewer resources relative to more stable competitors (i.e., Flask or Django)&lt;/li&gt;
&lt;li&gt;Complexity: some concepts (asynchronous mode) can be challenging for beginners to apprehend&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5- &lt;a href="https://github.com/streamlit/streamlit" rel="noopener noreferrer"&gt;Streamlit&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw8x5b0m6byf6cwj6ngy0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw8x5b0m6byf6cwj6ngy0.png" alt="Streamlit"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌟 Advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User-friendly interface: simplifies the design and creation of web applications&lt;/li&gt;
&lt;li&gt;Fast prototyping: suitable for quick development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Disadvantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Limited use cases: not suitable for complex, production-ready applications&lt;/li&gt;
&lt;li&gt;Customization limitations: offers less customization due to low-code structure&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  6- &lt;a href="https://github.com/pallets/flask" rel="noopener noreferrer"&gt;Flask&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwp45o73be2886unf9yrj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwp45o73be2886unf9yrj.png" alt="Flask"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌟 Advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use Case flexibility: suitable for designing small to medium applications&lt;/li&gt;
&lt;li&gt;Rich extensions: a wide variety of plug-ins&lt;/li&gt;
&lt;li&gt;Beginner-friendly: easy learning curve for moderate coders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Disadvantage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scalability limits: not the most scalable option for large and complex applications&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  7- &lt;a href="https://github.com/bottlepy/bottle" rel="noopener noreferrer"&gt;Bottle&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvuqy8gwad1zsfb3yd2s7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvuqy8gwad1zsfb3yd2s7.png" alt="Bottle "&gt;&lt;/a&gt;&lt;br&gt;
🌟 Advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Minimalist Approach: Bottle is a lightweight framework, suitable for beginners&lt;/li&gt;
&lt;li&gt;Fast development: simple and quick to create prototypes&lt;/li&gt;
&lt;li&gt;Lightweight: suitable for straightforward web application use cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Disadvantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Limited features: not suitable for complex applications&lt;/li&gt;
&lt;li&gt;Smaller community: the community is smaller, with fewer resources&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8- &lt;a href="https://github.com/Pylons/pyramid" rel="noopener noreferrer"&gt;Pyramid&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfsp66b6wtfbwi1fbzqr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfsp66b6wtfbwi1fbzqr.png" alt="Pyramid"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌟 Advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High Customization: customization through templates and database integration&lt;/li&gt;
&lt;li&gt;Rich Extension Ecosystem&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Disadvantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Steep learning curve&lt;/li&gt;
&lt;li&gt;Smaller user base: a smaller library means a smaller community and fewer resources&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  9- &lt;a href="https://github.com/falconry/falcon" rel="noopener noreferrer"&gt;Falcon&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fex4qebkqrcvpu971t2k5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fex4qebkqrcvpu971t2k5.png" alt="Falcon"&gt;&lt;/a&gt;&lt;br&gt;
🌟 Advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Performance-oriented&lt;/li&gt;
&lt;li&gt;Control and customization: minimalist design makes flexible user control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Disadvantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not beginner friendly: can be challenging for new Pythonistas.&lt;/li&gt;
&lt;li&gt;Less suitable for full-fledged applications&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  10- &lt;a href="https://github.com/cherrypy/cherrypy" rel="noopener noreferrer"&gt;CherryPy&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft954ddztk3kp9o5exrip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft954ddztk3kp9o5exrip.png" alt="CherryPy"&gt;&lt;/a&gt;&lt;br&gt;
🌟 Advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simplicity: good option for smaller objects through simple API&lt;/li&gt;
&lt;li&gt;Extensive plug-ins: various extensions and plug-ins&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Disadvantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lower popularity: less popular&lt;/li&gt;
&lt;li&gt;Smaller community support&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;Choosing a framework to build your web applications depends on various requirements like the complexity of the projects or the developers' coding level.&lt;br&gt;
By understanding the strengths and weaknesses of these 10 libraries, developers can facilitate their decision-making on which framework to go for.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvimkpxsq91d6m1jfei1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvimkpxsq91d6m1jfei1.gif" alt="End GIF"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to reach out if you have any questions or feedback!&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>frontend</category>
      <category>webap</category>
    </item>
    <item>
      <title>🐍 Python Playground: 16 ways 📚 to get started</title>
      <dc:creator>Marine</dc:creator>
      <pubDate>Mon, 15 Jan 2024 15:29:04 +0000</pubDate>
      <link>https://forem.com/taipy/python-playground-16-ways-to-get-started-4fgg</link>
      <guid>https://forem.com/taipy/python-playground-16-ways-to-get-started-4fgg</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;This article is a guide designed to assist those new to Python programming with easy-to-use and engaging resources. From beginner-friendly libraries to interactive coding platforms, you should find your perfect fit!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft9my6x9r0e94l27b92o5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft9my6x9r0e94l27b92o5.gif" alt="Intro GIF"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  LIBRARIES
&lt;/h1&gt;

&lt;p&gt;The following Python libraries are easy to use and great for getting started with Python. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh692caetdehj9360jceg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh692caetdehj9360jceg.png" alt="Python libraries"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  1- &lt;a href="https://github.com/Avaiga/taipy" rel="noopener noreferrer"&gt;Taipy&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A new library in the Python landscape, Taipy is a great low-code Python web app for creating powerful web applications with minimal code. Get started with web applications with Taipy.&lt;br&gt;
🔑 Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extensive interactivity&lt;/li&gt;
&lt;li&gt;There are more customization capabilities for your layout, styling, etc. (no CSS needed)&lt;/li&gt;
&lt;li&gt;Multipage &amp;amp; multi-user applications 

&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0un08vhstrk6zpst5yti.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0un08vhstrk6zpst5yti.gif" alt="QueenB GIF"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Avaiga/taipy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star ⭐ the Taipy repository&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Your support means a lot🌱, and really helps us in so many ways, like writing articles! 🙏&lt;/p&gt;




&lt;h2&gt;
  
  
  2- &lt;a href="https://docs.python.org/3/library/turtle.html" rel="noopener noreferrer"&gt;Turtle Graphics &lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The place to start for absolute beginners. This pre-installed Python library teaches you the fundamentals of Python programming in a fun and visual way. &lt;/p&gt;




&lt;h2&gt;
  
  
  3- &lt;a href="https://easygui.sourceforge.net/" rel="noopener noreferrer"&gt;EasyGUI&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Get started with graphical user interfaces (GUIs) with this library. &lt;br&gt;
Its simplicity makes it a top choice for beginners to create your basic GUI.&lt;/p&gt;




&lt;h2&gt;
  
  
  4- &lt;a href="https://github.com/matplotlib/matplotlib" rel="noopener noreferrer"&gt;Matplotlib&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This widget library is a go-to in the Python landscape for a good reason. With the extensive range of chart types, you can plot any 2D graph. &lt;br&gt;
This library allows for significant customization through fine-grain of the graphical elements.&lt;/p&gt;




&lt;h2&gt;
  
  
  5- &lt;a href="https://github.com/pandas-dev/pandas" rel="noopener noreferrer"&gt;Pandas&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Even if all Pythonistas use Pandas, this library is straightforward to comprehend and allows you to do many things. &lt;br&gt;
You can learn about dataframes and series and how to handle data efficiently.&lt;/p&gt;

&lt;p&gt;🔑 features: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Loading data from various sources&lt;/li&gt;
&lt;li&gt;Reshaping dataframes&lt;/li&gt;
&lt;li&gt;Basic data analytics through basic statistics

&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6- &lt;a href="https://thonny.org/" rel="noopener noreferrer"&gt;Thonny&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Thonny is a great IDE for beginners. &lt;br&gt;
It has excellent features to help understand the programming process and straightforward writing and debugging of Python code. You can try out the previous libraries in this effortless environment.&lt;/p&gt;




&lt;h1&gt;
  
  
  CODING PLATFORMS
&lt;/h1&gt;

&lt;p&gt;Coding platforms offer an academic-like setting, ideal for quick and structured learning.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foqkaqb15vava1iuwg42l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foqkaqb15vava1iuwg42l.png" alt="Coding platforms"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7- &lt;a href="https://www.datacamp.com/" rel="noopener noreferrer"&gt;Datacamp&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This was the platform I used to get started with Python, so how could I not include it? Datacamp is an interactive learning platform focused on programming around data science and analytics. They have courses of different levels, making it a great place to start learning about Python and data analytics concepts.&lt;/p&gt;




&lt;h2&gt;
  
  
  8- &lt;a href="https://codecombat.com/" rel="noopener noreferrer"&gt;Code Combat&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Code Combat makes learning fun as you learn Python while playing a game. &lt;br&gt;
This platform has a world where you advance your character in the game while learning how to code.&lt;br&gt;
This website caters to the younger generation, but I recommend trying it out for beginners of any age!&lt;/p&gt;




&lt;h2&gt;
  
  
  9- &lt;a href="https://www.sololearn.com/" rel="noopener noreferrer"&gt;Sololearn&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This platform revolves and evolves through their community. Sololearn focuses on short Python lessons, making a great tool for learning Python on the go.&lt;/p&gt;




&lt;h1&gt;
  
  
  TUTORIAL &amp;amp; CHALLENGES
&lt;/h1&gt;

&lt;p&gt;Tutorials and challenges are an excellent way to enhance and test your Python skills with small and manageable projects.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv195zko860x4d3bffznm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv195zko860x4d3bffznm.png" alt="Tutorials"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  10- &lt;a href="https://www.codechef.com/" rel="noopener noreferrer"&gt;Codechef&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This website features programming competitions. &lt;br&gt;
For those who learn better with competition, Codechef is for you. They offer various challenges to cater to all programming levels.&lt;/p&gt;




&lt;h2&gt;
  
  
  11- &lt;a href="https://www.codewars.com/" rel="noopener noreferrer"&gt;Codewars&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This community website also offers coding challenges.&lt;br&gt;
It's a great way to learn and challenge yourself with Python.&lt;/p&gt;




&lt;h2&gt;
  
  
  12- &lt;a href="https://machinelearningmastery.com/" rel="noopener noreferrer"&gt;Machine Learning Mastery&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Machine Learning Mastery offers tutorials and books around Machine Learning and Python. &lt;br&gt;
These tutorials were beneficial for some of my Machine Learning projects, and I still go back to them from time to time!&lt;/p&gt;




&lt;h1&gt;
  
  
  FULL PROJECTS
&lt;/h1&gt;

&lt;p&gt;Building an entire project in Python is a great way to put your skills to the test in real-life scenarios. In general, these projects are a great addition to your portfolio.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fla3zqq1e7kr7gmncblxa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fla3zqq1e7kr7gmncblxa.png" alt="Full projects"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  13- &lt;a href="https://www.kaggle.com/" rel="noopener noreferrer"&gt;Kaggle &lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This platform was my go-to for testing my Python and machine learning skills. This platform showcases data science projects. &lt;br&gt;
Kaggle is also a great resource to add to your CV.&lt;/p&gt;




&lt;h2&gt;
  
  
  14- &lt;a href="https://www.freecodecamp.org/" rel="noopener noreferrer"&gt;freeCodeCamp &lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Even though freeCodeCamp focuses on web development, this platform also uses Python projects. A great way to learn by doing.&lt;/p&gt;




&lt;h1&gt;
  
  
  HACKATHONS
&lt;/h1&gt;

&lt;p&gt;Hackathons are a great way to learn in a dynamic and collaborative environment. Participation in hackathons is academically and professionally valued.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9xcuqaoj7tsw7a7ri0b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9xcuqaoj7tsw7a7ri0b.png" alt="Hackathons"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  15- &lt;a href="https://mlh.io/" rel="noopener noreferrer"&gt;Major League Hacking&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;MLH organizes hackathons for students from all around the world. Their hackathons can be on-premise but also online.&lt;br&gt;
Hackathons are great for applying your Python skills to real-world projects. &lt;br&gt;
Also, it is a great way to have projects to showcase in interviews or your CVs.&lt;/p&gt;




&lt;h2&gt;
  
  
  16- &lt;a href="https://devpost.com/" rel="noopener noreferrer"&gt;Devpost&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Devpost is a website for online hackathons. They provide events &amp;lt; with a lot of choices regarding subjects and prizes!&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;These resources offer various ways to kickstart your Python programming journey through these easy-to-use libraries, interactive learning platforms, and practical challenges.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvimkpxsq91d6m1jfei1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvimkpxsq91d6m1jfei1.gif" alt="End GIF"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to reach out if you have any questions or feedback!&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
    <item>
      <title>✨2024 Resolution: Be more Open-Source centric</title>
      <dc:creator>Marine</dc:creator>
      <pubDate>Mon, 08 Jan 2024 13:14:27 +0000</pubDate>
      <link>https://forem.com/taipy/2024-resolution-be-more-open-source-centric-1jje</link>
      <guid>https://forem.com/taipy/2024-resolution-be-more-open-source-centric-1jje</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Why rely on proprietary software and services when there is (almost) always an open-source alternative that can do the job just as well, if not better? &lt;br&gt;
Here are 10 open-source alternatives I’ve been using, covering everything from project management and communication to data analytics.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fypv9s82s7843ecb1a36t.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fypv9s82s7843ecb1a36t.gif" alt="Gif Introduction" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  1- &lt;a href="https://github.com/Avaiga/taipy"&gt;Taipy&lt;/a&gt; instead of Tableau
&lt;/h2&gt;

&lt;p&gt;Tableau might be one of the top players in data visualization, but Taipy offers a robust alternative. &lt;br&gt;
Taipy is an open-source, low-code Python web app that allows you to create comprehensive web applications that showcase your data visualizations. &lt;br&gt;
Taipy is low code, super customizable, and offers more flexibility when building your dashboards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flai9u2uqawun2j5mf7ur.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flai9u2uqawun2j5mf7ur.gif" alt="Taipy" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0un08vhstrk6zpst5yti.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0un08vhstrk6zpst5yti.gif" alt="QueenB GIF" width="1550" height="664"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Avaiga/taipy" class="ltag_cta ltag_cta--branded"&gt;Star ⭐ the Taipy repository&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Your support means a lot🌱, and really helps us in so many ways, like writing articles! 🙏&lt;/p&gt;




&lt;h2&gt;
  
  
  2- &lt;a href="http://Cal.com"&gt;Cal.com&lt;/a&gt; instead of Calendly
&lt;/h2&gt;

&lt;p&gt;Calendly was a game-changer for simplifying scheduling, but &lt;a href="http://Cal.com"&gt;Cal.com&lt;/a&gt; managed to bring it to the next level. This open-source gem has features like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Team scheduling&lt;/li&gt;
&lt;li&gt;Integrated video conferencing&lt;/li&gt;
&lt;li&gt;Automatic time zone detection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9bjea3cr44s86z5deirt.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9bjea3cr44s86z5deirt.gif" alt="Cal" width="1315" height="675"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  3- &lt;a href="https://github.com/plausible/analytics"&gt;Plausible&lt;/a&gt; instead of Google Analytics
&lt;/h2&gt;

&lt;p&gt;Sure, Google Analytics is a big name, but sometimes smaller tools offer just as much, and a great example is Plausible.&lt;br&gt;
This open-source tool provides website analytics features just like Google, and no, they don’t compromise on data privacy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcmonhrmf5gch5kn6fe0e.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcmonhrmf5gch5kn6fe0e.gif" alt="Plausible" width="1343" height="675"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4- &lt;a href="https://github.com/AppFlowy-IO/AppFlowy"&gt;AppFlowy&lt;/a&gt; instead of Notion
&lt;/h2&gt;

&lt;p&gt;Notion is an excellent workspace for anything about note-taking and project management but if you want an even more straightforward option, try AppFlowy. &lt;br&gt;
This tool offers a minimalist alternative, focusing on simply creating and organizing lists, notes, and tasks. &lt;br&gt;
The interface is very user-friendly; you’ll be a pro in no time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwko5i9mphadcq1pa6bsh.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwko5i9mphadcq1pa6bsh.gif" alt="AppFlowy" width="1343" height="675"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  5- &lt;a href="https://github.com/penpot/penpot"&gt;Penpot&lt;/a&gt; instead of Figma
&lt;/h2&gt;

&lt;p&gt;Figma is a design powerhouse, but its open-source cousin, Penpot, has been gaining momentum over the last year. &lt;/p&gt;

&lt;p&gt;Here are Penpot’s key features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Collaborative design capabilities&lt;/li&gt;
&lt;li&gt;Vector editing&lt;/li&gt;
&lt;li&gt;Interactive prototypes&lt;/li&gt;
&lt;li&gt;Cost-effectiveness&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkg8ayeuw0y1q0tme50t.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkg8ayeuw0y1q0tme50t.gif" alt="Penpot" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  6- &lt;a href="https://github.com/fonoster"&gt;Fonoster&lt;/a&gt; instead of Twilio
&lt;/h2&gt;

&lt;p&gt;Twilio is a communication platform that provides APIs for SMS, voice, video, and authentication and offers a seamless customer experience.&lt;br&gt;
Let me introduce you to Fonoster, the cost-effective alternative. Fonoster provides a similar offer with voice and messaging services. Fonoster focuses on scalability while giving you a seamless customer experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1jk20ziqppgcpbfr6e37.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1jk20ziqppgcpbfr6e37.gif" alt="Fonoster" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  7- &lt;a href="https://github.com/nextcloud/server"&gt;NextCloud&lt;/a&gt; instead of Dropbox
&lt;/h2&gt;

&lt;p&gt;NextCloud is the open-source rival to Dropbox.&lt;br&gt;
It offers file hosting, collaboration, and synchronization features, all while keeping your data private and under your control.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fszichu2pjf9xzah9v64y.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fszichu2pjf9xzah9v64y.gif" alt="NextCloud" width="1343" height="665"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  8- &lt;a href="https://github.com/jitsi/jitsi-meet"&gt;Jitsi&lt;/a&gt; instead of Google Meets
&lt;/h2&gt;

&lt;p&gt;Jitsi is the alternative to Google Meets, offering similar video conferencing capabilities.&lt;/p&gt;

&lt;p&gt;Their key features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;End-to-end encryption&lt;/li&gt;
&lt;li&gt;Screen sharing&lt;/li&gt;
&lt;li&gt;And no registration is required!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxwnxa8hy6a0svqb4yo1d.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxwnxa8hy6a0svqb4yo1d.gif" alt="Jitsi" width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  9- &lt;a href="https://github.com/padloc/padloc"&gt;Padloc&lt;/a&gt; vs 1Password
&lt;/h2&gt;

&lt;p&gt;1Password is well-established in the password management landscape, but Padloc, an open-source tool,  focuses on privacy and security just as much. &lt;br&gt;
You can securely store and manage your sensitive and private information securely with Padloc, just like 1Password.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4st8nymwlf3wlslz029k.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4st8nymwlf3wlslz029k.gif" alt="Padloc" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  10- &lt;a href="https://github.com/CrowdDotDev/crowd.dev"&gt;Crowd.dev&lt;/a&gt; instead of Common Room
&lt;/h2&gt;

&lt;p&gt;Common Room has been gaining momentum in the community building landscape, but don’t overlook their open-source alternative, "crowd.dev". &lt;br&gt;
Whether it’s project management, funding, or collaboration, "crowd. dev" can’t be overlooked to build and develop online communities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9j3mxkbk6wuwyt2g1fdh.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9j3mxkbk6wuwyt2g1fdh.gif" alt="Crowd" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;When choosing a tool, remember to check out the open-source option. &lt;br&gt;
Open source brings transparency, customizability, and cost-effectiveness to the equation, making a good choice in most cases.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvimkpxsq91d6m1jfei1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvimkpxsq91d6m1jfei1.gif" alt="End GIF" width="500" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations, you made it to the end! Don't hesitate if you have any questions.&lt;/p&gt;

</description>
      <category>devresolutions2024</category>
    </item>
  </channel>
</rss>
