<?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: Latitude</title>
    <description>The latest articles on Forem by Latitude (@latitude).</description>
    <link>https://forem.com/latitude</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%2Forganization%2Fprofile_image%2F8649%2F4a824627-0334-40e4-8df4-7f7465a347f0.png</url>
      <title>Forem: Latitude</title>
      <link>https://forem.com/latitude</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/latitude"/>
    <language>en</language>
    <item>
      <title>17 Projects for Developers to Build AI Features 100x Faster 👩‍💻🔥</title>
      <dc:creator>Anmol Baranwal</dc:creator>
      <pubDate>Thu, 17 Oct 2024 15:17:40 +0000</pubDate>
      <link>https://forem.com/latitude/17-projects-for-teams-to-build-ai-features-100x-faster-nbn</link>
      <guid>https://forem.com/latitude/17-projects-for-teams-to-build-ai-features-100x-faster-nbn</guid>
      <description>&lt;p&gt;Prompt engineering and AI are booming, with almost every startup team integrating AI to make things easier for their users.&lt;/p&gt;

&lt;p&gt;Today, we are covering 17 projects to maximize your productivity for developers building with AI.&lt;/p&gt;

&lt;p&gt;You will find tools related to prompt engineering, code editors, agents and many more exciting things.&lt;/p&gt;

&lt;p&gt;This list will surprise you.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. &lt;a href="https://github.com/latitude-dev/latitude-llm" rel="noopener noreferrer"&gt;Latitude LLM&lt;/a&gt; - prompt engineering platform to build and refine prompts with AI.
&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%2Fub8gkgpjhzm1dlq7fsd7.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%2Fub8gkgpjhzm1dlq7fsd7.png" alt="latitude llm" width="800" height="221"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Latitude is the open source prompt engineering platform to build, evaluate, and refine your prompts with AI. You can create and iterate prompts in the platform by using their SDKs or the API.&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%2Fframerusercontent.com%2Fimages%2FIT7LMUgqm3iLSziyIpe0UppF9E.svg%3Flossless%3D1" 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%2Fframerusercontent.com%2Fimages%2FIT7LMUgqm3iLSziyIpe0UppF9E.svg%3Flossless%3D1" alt="latitude llm" width="1440" height="925"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The best part is that every time a prompt runs, it automatically logs the entire context, the output and other metadata relevant for evaluations and debugging.&lt;/p&gt;

&lt;p&gt;This is how the dashboard looks.&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%2Fxazlw6yvntlkf68tc9bt.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%2Fxazlw6yvntlkf68tc9bt.png" alt="dashboard" width="800" height="195"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ There is support for advanced features like parameters, snippets, logic and more.&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%2Fsymilwk30bknfik35sfq.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%2Fsymilwk30bknfik35sfq.png" alt="prompt" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ You get version control for prompts, collaborative prompt manager and even evaluations in batch or real-time.&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%2Fubyu8sn5r7xto8v1p05h.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%2Fubyu8sn5r7xto8v1p05h.png" alt="prompts" width="478" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A basic user flow can be:&lt;/p&gt;

&lt;p&gt;-→ Create a new project.&lt;/p&gt;

&lt;p&gt;-→ Write your first prompt using the editor.&lt;/p&gt;

&lt;p&gt;-→ Test your prompt using the playground with different inputs and see the mode's responses.&lt;/p&gt;

&lt;p&gt;-→ Before deploying, you can upload a dataset and run a batch evaluation to assess your prompt’s performance across various scenarios. Watch this &lt;a href="https://youtu.be/cTs-qfO6H-8" rel="noopener noreferrer"&gt;video&lt;/a&gt; to see how evaluations can analyze the results of your prompts.&lt;/p&gt;

&lt;p&gt;-→ You can deploy your prompt as an endpoint for easy integration with your applications.&lt;/p&gt;

&lt;p&gt;-→ Use the Logs section to review your prompt’s performance over time.&lt;/p&gt;

&lt;p&gt;-→ Refine your prompt and invite team members to your Latitude workspace to collaborate.&lt;/p&gt;

&lt;p&gt;Watch this quick demo to learn more.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/jPVn9kf4GrE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.latitude.so/guides/getting-started/introduction" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and the &lt;a href="https://docs.latitude.so/guides/getting-started/concepts" rel="noopener noreferrer"&gt;concepts&lt;/a&gt; involved like prompts, logs and evaluation that are involved.&lt;/p&gt;

&lt;p&gt;You can use this &lt;a href="https://docs.latitude.so/guides/getting-started/quick-start" rel="noopener noreferrer"&gt;quickstart guide&lt;/a&gt; by using the cloud version or self-hosting it.&lt;/p&gt;

&lt;p&gt;They have 536 stars on GitHub and are growing very fast.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/latitude-dev/latitude-llm" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Latitude LLM ⭐️&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  2. &lt;a href="https://github.com/livekit/agents" rel="noopener noreferrer"&gt;LiveKit Agents&lt;/a&gt; - build real-time multimodal AI apps.
&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%2Fazbavezbw8wjli84blqw.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%2Fazbavezbw8wjli84blqw.png" alt="livekit" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;LiveKit Agents is an end-to-end framework that enables developers to build intelligent, multimodal voice assistants (AI agents) capable of engaging users through voice, video and data channels.&lt;/p&gt;

&lt;p&gt;Let me explain in simple words.&lt;/p&gt;

&lt;p&gt;The Agents framework allows you to build AI-driven server programs that can see, hear and speak in real time. Your agent connects with end-user devices through a LiveKit session. During that session, your agent can process text, audio, images or video streaming from a user's device and have an AI model generate any combination of those same modalities as output and stream them back to the user.&lt;/p&gt;

&lt;p&gt;✅ They support a lot of SDKs including Swift, Android, Flutter, Rust, Unity, Node, Go, PHP, React and more.&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%2Fgsot1zbm6ay6lrgf0v2p.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%2Fgsot1zbm6ay6lrgf0v2p.png" alt="sdks" width="800" height="225"&gt;&lt;/a&gt;&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%2Fqsw1gnap40d3mt0j12lv.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%2Fqsw1gnap40d3mt0j12lv.png" alt="feature" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can get started with pip.&lt;br&gt;
&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;livekit-agents
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F4789sw8sg41744a55ekg.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%2F4789sw8sg41744a55ekg.png" alt="livekit agents" width="800" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They also have a lot of plugins that make it easy to process streaming input or generate output. For instance, there are plugins for converting text-to-speech or running inference with popular LLMs. One example of a plugin is:&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 livekit-plugins-openai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;They also provide &lt;a href="https://github.com/livekit/components-js" rel="noopener noreferrer"&gt;open source React components&lt;/a&gt; and examples for building with LiveKit if you're using React.&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%2Fmz8mygit9uppn01grwso.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%2Fmz8mygit9uppn01grwso.png" alt="react livekit" width="800" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;You can read the &lt;a href="https://docs.livekit.io/agents/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and see the &lt;a href="https://docs.livekit.io/agents/plugins/#Available-LiveKit-plugins" rel="noopener noreferrer"&gt;list of all plugins&lt;/a&gt; that are available. If you want to try, then you can do it at &lt;a href="https://cloud.livekit.io/" rel="noopener noreferrer"&gt;cloud.livekit.io&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you're looking for some sample apps with code, check these:&lt;/p&gt;

&lt;p&gt;⚡ &lt;a href="https://kitt.livekit.io/" rel="noopener noreferrer"&gt;A basic voice agent using a pipeline of STT, LLM, and TTS&lt;/a&gt;&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%2F2w0tv75m83q5jokfjcns.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%2F2w0tv75m83q5jokfjcns.png" alt="basic voice agent" width="800" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ &lt;a href=""&gt;Super fast voice agent using Cerebras hosted Llama 3.1&lt;/a&gt;&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%2Fc99pvssdzh87qssk6bvs.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%2Fc99pvssdzh87qssk6bvs.png" alt="super fast" width="800" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;This is one of the most exciting projects out of 1000+ projects that I have ever seen in open source.&lt;/p&gt;

&lt;p&gt;They have 3.2k stars on GitHub and are growing strong.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/livekit/agents" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star LiveKit Agents ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  3. &lt;a href="https://github.com/julep-ai/julep" rel="noopener noreferrer"&gt;Julep&lt;/a&gt; - build stateful AI apps.
&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%2Frj7cpbkvhoxvdonr0cy7.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%2Frj7cpbkvhoxvdonr0cy7.png" alt="julep" width="800" height="290"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Julep is a platform for creating AI agents that remember past interactions and can perform complex tasks. &lt;/p&gt;

&lt;p&gt;Imagine you want to build an AI agent that can do more than just answer simple questions. It needs to handle complex tasks, remember past interactions and maybe even use other tools or APIs. That's exactly where Julep comes in.&lt;/p&gt;

&lt;p&gt;You can use it to create multi-step tasks incorporating decision-making, loops, parallel processing and a whole lot more.&lt;/p&gt;

&lt;p&gt;✅ It will automatically retry failed steps, resend messages, and generally keep your tasks running smoothly.&lt;/p&gt;

&lt;p&gt;✅ You can use Julep's document store to build a system for retrieving and using your own data.&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%2Fij9ajlhsdtzig6zjf1om.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%2Fij9ajlhsdtzig6zjf1om.png" alt="mental model of julep" width="800" height="823"&gt;&lt;/a&gt;&lt;/p&gt;
mental model of julep



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

&lt;p&gt;To get started, you can use npm or pip.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @julep/sdk 

or

pip &lt;span class="nb"&gt;install &lt;/span&gt;julep
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;There is also a &lt;a href="https://docs.julep.ai/#quick-example" rel="noopener noreferrer"&gt;quick example&lt;/a&gt; that I recommend reading where a sample Agent selects a topic, generates 100 related search queries, performs the searches simultaneously, summarizes the results and shares the summary on Discord. With proper code :)&lt;/p&gt;

&lt;p&gt;Watch this quick demo and check more &lt;a href="https://docs.julep.ai/cookbooks/example-apps" rel="noopener noreferrer"&gt;examples apps&lt;/a&gt; to understand more.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/LhQMBAehL_Q"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;You can read the detailed &lt;a href="https://docs.julep.ai/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; which has a Python quickstart guide, Nodejs quickstart guide, tutorials and how-to guides.&lt;/p&gt;

&lt;p&gt;You might say it's similar to Langchain but they both have slightly different concepts. For instance, LangChain is great for creating sequences of prompts and managing interactions with AI models. It has a large ecosystem with lots of pre-built integrations, which makes it easier to run things quickly.&lt;/p&gt;

&lt;p&gt;Julep on the other hand is more about building persistent AI agents that can remember things. It shines when you need complex tasks that involve multiple steps, decision-making, and integration with various tools or APIs directly within the agent's process. Read more on the &lt;a href="https://docs.julep.ai/#why-julep-vs.-langchain" rel="noopener noreferrer"&gt;detailed comparison&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Julep has 1.3k stars on GitHub and growing strong.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/julep-ai/julep" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Julep ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  4. &lt;a href="https://github.com/open-webui/open-webui/" rel="noopener noreferrer"&gt;Open WebUI&lt;/a&gt; - most loved AI Interface (Supports Ollama, OpenAI API...), runs offline.
&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%2Fglq9bfnjg61x62zlj68m.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%2Fglq9bfnjg61x62zlj68m.png" alt="Open WebUI" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Open WebUI is an awesome user-friendly self-hosted chat user interface designed to operate entirely offline.&lt;/p&gt;

&lt;p&gt;This can help you build features at a rate you can never imagine.&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%2Fgsk7c6v6t25w098thx3m.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%2Fgsk7c6v6t25w098thx3m.png" alt="Open WebUI" width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use pip to quickly install it. Check the complete &lt;a href="https://github.com/open-webui/open-webui?tab=readme-ov-file#how-to-install-" rel="noopener noreferrer"&gt;installation guide&lt;/a&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="c1"&gt;# install Open WebUI
&lt;/span&gt;
&lt;span class="n"&gt;pip&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;webui&lt;/span&gt;

&lt;span class="c1"&gt;# run Open WebUI
&lt;/span&gt;
&lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;webui&lt;/span&gt; &lt;span class="n"&gt;serve&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fx8v8ujro6txb2ovevse6.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%2Fx8v8ujro6txb2ovevse6.gif" alt="open webui" width="600" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's see some of the awesome features.&lt;/p&gt;

&lt;p&gt;✅ You can customize the OpenAI API URL to link with LMStudio, GroqCloud, Mistral, OpenRouter and more.&lt;/p&gt;

&lt;p&gt;✅ You can use it in your preferred language with our internationalization (i18n) support.&lt;/p&gt;

&lt;p&gt;✅ There is an option of hands-free voice and video call features which gives a little more flexibility.&lt;/p&gt;

&lt;p&gt;✅ Their &lt;a href="https://openwebui.com/" rel="noopener noreferrer"&gt;official website&lt;/a&gt; has clear info on a bunch of models, prompts, tools and functions by the community.&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%2Flltj1v573diwo6j64vyf.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%2Flltj1v573diwo6j64vyf.png" alt="official website" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;✅ You can load documents directly into the chat or add files to your document library and access them using the &lt;code&gt;#&lt;/code&gt; command before a query.&lt;/p&gt;

&lt;p&gt;✅ You can perform web searches using providers like &lt;code&gt;SearXNG&lt;/code&gt;, &lt;code&gt;Google PSE&lt;/code&gt;, &lt;code&gt;Brave Search&lt;/code&gt;, &lt;code&gt;serpstack&lt;/code&gt;, &lt;code&gt;serper&lt;/code&gt;, &lt;code&gt;Serply&lt;/code&gt;, &lt;code&gt;DuckDuckGo&lt;/code&gt;, &lt;code&gt;TavilySearch&lt;/code&gt; and &lt;code&gt;SearchApi&lt;/code&gt; to inject the results directly into your chat experience.&lt;/p&gt;

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

&lt;p&gt;Also recommend watching this walkthrough to learn more.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/16fWf0VVeIo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.openwebui.com/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; which includes a getting started guide, FAQs (recommend reading) and tutorials.&lt;/p&gt;

&lt;p&gt;It is built using Svelte, Python and TypeScript.&lt;/p&gt;

&lt;p&gt;They have 41.6k stars on GitHub which says a lot about the popularity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/open-webui/open-webui/" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Open WebUI ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  5. &lt;a href="https://github.com/QuivrHQ/quivr" rel="noopener noreferrer"&gt;Quivr&lt;/a&gt; - RAG framework for building GenAI second brains.
&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%2Foiowtt3ys9shf4iivglq.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%2Foiowtt3ys9shf4iivglq.png" alt="quivr" width="800" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Quivr, your second brain, utilizes the power of GenerativeAI to be your personal assistant. You can think of it as Obsidian but turbocharged with AI powers.&lt;/p&gt;

&lt;p&gt;It is a platform that helps you create AI assistants, referred to as &lt;code&gt;Brain&lt;/code&gt;. These assistants are designed with specialized cases like some can connect to specific data sources, allowing users to interact directly with the data. &lt;/p&gt;

&lt;p&gt;While others serve as specialized tools for particular use cases, powered by Rag technology. These tools process specific inputs to generate practical outputs, such as summaries, translations and more.&lt;/p&gt;

&lt;p&gt;Watch a quick demo of Quivr!&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%2Fk7xx3290daebg2pw11i2.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%2Fk7xx3290daebg2pw11i2.gif" alt="quivr gif" width="600" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of the amazing features are:&lt;/p&gt;

&lt;p&gt;✅ You can choose the type of Brain you want to use, based on the data source you wish to interact with.&lt;/p&gt;

&lt;p&gt;✅ They also provide a powerful feature to share your brain with others. This can be done by sharing with individuals via their emails and assigning them specific rights. &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%2Fe3mn636j0sl6si5lzpzf.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%2Fe3mn636j0sl6si5lzpzf.png" alt="sharing brain" width="668" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ Quivr works offline, so you can access your data anytime, anywhere.&lt;/p&gt;

&lt;p&gt;✅ You can access and continue your past conversations with your brains.&lt;/p&gt;

&lt;p&gt;✅ But the best one that I loved is that you can install a Slack bot. Refer to this demo to see what you can do. Very cool!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/1yMe21vIl9E"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Anyway, read about all the &lt;a href="https://docs.quivr.app/features/brain-creation" rel="noopener noreferrer"&gt;awesome stuff&lt;/a&gt; that you can do with Quivr.&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://github.com/QuivrHQ/quivr?tab=readme-ov-file#getting-started-" rel="noopener noreferrer"&gt;installation guide&lt;/a&gt; and &lt;a href="https://www.youtube.com/watch?v=cXBa6dZJN48" rel="noopener noreferrer"&gt;60 seconds installation video&lt;/a&gt;. Refer to the &lt;a href="https://docs.quivr.app/home/intro" rel="noopener noreferrer"&gt;docs&lt;/a&gt; for any other information.&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%2F5a27c2ubbmri0b2xlh1l.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%2F5a27c2ubbmri0b2xlh1l.png" alt="stats" width="667" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They have also provided &lt;a href="https://docs.quivr.app/deployment/porter" rel="noopener noreferrer"&gt;guides&lt;/a&gt; on how to deploy Quivr with Vercel, Porter, AWS and Digital Ocean.&lt;/p&gt;

&lt;p&gt;It has 36.3k+ Stars on GitHub with 300+ releases.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/QuivrHQ/quivr" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Quivr ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  6. &lt;a href="https://github.com/langgenius/dify" rel="noopener noreferrer"&gt;Dify&lt;/a&gt; - innovation engine for GenAI apps.
&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%2Fyy1vd8un8op2lliuhb18.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%2Fyy1vd8un8op2lliuhb18.png" alt="dify" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Dify is an open-source platform for building AI applications.&lt;/p&gt;

&lt;p&gt;Its intuitive interface combines AI workflow, RAG pipeline, agent capabilities, model management, observability features and more, letting you quickly go from prototype to production. &lt;/p&gt;

&lt;p&gt;They combine Backend-as-a-Service and LLMOps to improve the development of generative AI solutions. You can use the cloud or self-host it (refer to docs).&lt;/p&gt;

&lt;p&gt;You can even build and test powerful AI workflows on a visual canvas.&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%2Fkm3cc0ogcw81vr4bot5b.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%2Fkm3cc0ogcw81vr4bot5b.gif" alt="visual canvas dify" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's see some of the awesome features:&lt;/p&gt;

&lt;p&gt;✅ Dify provides 50+ built-in tools for AI agents, such as Google Search, DALL·E, Stable Diffusion and WolframAlpha.&lt;/p&gt;

&lt;p&gt;✅ You can monitor and analyze application logs and performance over time.&lt;/p&gt;

&lt;p&gt;✅ You can use the RAG pipeline to extract text from PDFs, PPTs and other common document formats.&lt;/p&gt;

&lt;p&gt;✅ A lot of integration options are available from dozens of inference providers and self-hosted solutions, covering GPT, Mistral, Llama3, and any OpenAI API-compatible models. A full list of supported model providers can be found &lt;a href="https://docs.dify.ai/getting-started/readme/model-providers" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;✅ You can create AI Agents with just a few clicks, letting them independently use enterprise-defined tools and data to solve complex tasks.&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%2Frnroeiax5q593bf572l3.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%2Frnroeiax5q593bf572l3.png" alt="ai agents" width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.dify.ai/" rel="noopener noreferrer"&gt;docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Two of the impressive use cases that I loved:&lt;/p&gt;

&lt;p&gt;⚡ &lt;a href="https://docs.dify.ai/learn-more/use-cases/build-an-notion-ai-assistant" rel="noopener noreferrer"&gt;Building a Notion AI Assistant&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ &lt;a href="https://docs.dify.ai/learn-more/use-cases/create-a-midjourney-prompt-bot-with-dify" rel="noopener noreferrer"&gt;Create a MidJourney Prompt Bot with Dify&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dify has 47.7k stars on GitHub and has a lot of contributors.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/langgenius/dify" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Dify ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  7. &lt;a href="https://github.com/BuilderIO/micro-agent/" rel="noopener noreferrer"&gt;Micro Agent&lt;/a&gt; - AI agent that writes (actually useful) code for you.
&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%2Fx5d46msd51hvygkbr92o.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%2Fx5d46msd51hvygkbr92o.png" alt="micro agent" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;AI-assisted coding tools like GitHub Copilot and ChatGPT don't produce very reliable code and they often don't work correctly right out of the box, you find bugs, edge cases, or even references to non-existent APIs.&lt;/p&gt;

&lt;p&gt;This can lead to a frustrating loop of trying the generated code, finding issues, going back to the AI for fixes and repeating. &lt;/p&gt;

&lt;p&gt;The time spent debugging can negate the total time saved using AI tools in the first place.&lt;/p&gt;

&lt;p&gt;Micro Agent uses AI to mitigate the problems of unreliable code generation.&lt;/p&gt;

&lt;p&gt;Give it a prompt and it'll generate a test and then iterate on code until all test cases pass.&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%2Fp7kf5p2iosp08r2hly60.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%2Fp7kf5p2iosp08r2hly60.png" alt="how it works" width="800" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can install it using 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;npm install -g @builder.io/micro-agent

# Next, set your OpenAI API key when prompted or manually using this.
micro-agent config set OPENAI_KEY=&amp;lt;your token&amp;gt;

# Then you can run to start a new coding task
micro-agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Micro Agent will prompt you to describe the function you want, generate tests, and start writing code in your preferred language to make the tests pass. Once all the tests are green, you'll have a fully functional, test-backed function ready to use.&lt;/p&gt;

&lt;p&gt;Let's explore some of the most mind blowing use cases:&lt;/p&gt;

&lt;p&gt;⚡ 30-second demo of Micro Agent generating tests and code for a TypeScript function that groups anagrams together from an array of strings.&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%2Fphpyuttnuo26iiqfju9e.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%2Fphpyuttnuo26iiqfju9e.gif" alt="group anagram" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ Using Micro Agent to generate a simple HTML to AST parser (it was achieved on two iterations).&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%2Fazt11km0n5z8ahapq5j0.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%2Fazt11km0n5z8ahapq5j0.gif" alt="micro agent html to ast parser" width="600" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ Unit test matching.&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%2Fjdnjul4fawrgmw9tz8vi.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%2Fjdnjul4fawrgmw9tz8vi.gif" alt="unit matching" width="760" height="634"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ Visual matching (experimental).&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%2F0h3sjdhp9xky3tm02u8o.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%2F0h3sjdhp9xky3tm02u8o.gif" alt="Visual matching" width="720" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ Integration with Figma.&lt;/p&gt;

&lt;p&gt;Micro Agent can also integrate with Visual Copilot to connect directly with Figma to ensure the highest fidelity possible design to code!&lt;/p&gt;

&lt;p&gt;Visual Copilot connects directly to Figma to assist with pixel-perfect conversion, exact design token mapping, and precise usage of your components in the generated output.&lt;/p&gt;

&lt;p&gt;Then, Micro Agent can take the output of Visual Copilot and make final adjustments to the code to ensure it passes TSC, lint, tests, and fully matches your design including final tweaks. Amazing right :)&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%2Fejyu5gsz7460p3ik10ur.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%2Fejyu5gsz7460p3ik10ur.gif" alt="visual copilot" width="720" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://github.com/BuilderIO/micro-agent?tab=readme-ov-file#running-manually" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and &lt;a href="https://www.builder.io/blog/micro-agent/" rel="noopener noreferrer"&gt;the official blog&lt;/a&gt; where the team discussed everything about the micro agent.&lt;/p&gt;

&lt;p&gt;It's open source with 2.8k stars on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/BuilderIO/micro-agent/" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Micro Agent ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  8. &lt;a href="https://github.com/clinebot/cline" rel="noopener noreferrer"&gt;Cline&lt;/a&gt; - autonomous coding agent right in your IDE.
&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%2F97jew169t7y7xhb1g9he.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%2F97jew169t7y7xhb1g9he.png" alt="cline" width="800" height="231"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The concept seems very similar to Cursor where Cline is an autonomous coding agent capable of creating/editing files, executing commands, and more with your permission every step of the way.&lt;/p&gt;

&lt;p&gt;It's a VSCode extension and you can find it in the &lt;a href="https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev" rel="noopener noreferrer"&gt;marketplace&lt;/a&gt;. It has 84k+ installs.&lt;/p&gt;

&lt;p&gt;Cline works on Claude 3.5 Sonnet's agentic coding capabilities.&lt;/p&gt;

&lt;p&gt;✅ Cline supports API providers like OpenRouter, Anthropic, OpenAI, Google Gemini, AWS Bedrock, Azure, and GCP Vertex. You can also configure any OpenAI compatible API or use a local model through Ollama.&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%2Fryuyyevmusd7mxe3kad4.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%2Fryuyyevmusd7mxe3kad4.png" alt="cline supports models" width="519" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ You can add context using four different commands.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;@url&lt;/code&gt;: Paste in a URL for the extension to fetch and convert to markdown, useful when you want to give Cline the latest docs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;@problems&lt;/code&gt;: Add workspace errors and warnings ('Problems' panel) for Cline to fix.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2Fb1n5j6590anzlkmnsozr.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%2Fb1n5j6590anzlkmnsozr.png" alt="cline context" width="590" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ It uses a headless browser to inspect any website, like localhost, allowing it to capture screenshots and console logs. This gives him the autonomy to fix visual bugs and runtime issues without you needing to handhold and copy-pasting error logs yourself.&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%2Fapp9xi8fu0apqa6nt05h.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%2Fapp9xi8fu0apqa6nt05h.png" alt="headless browser" width="560" height="635"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ You can even run commands in the terminal to do awesome stuff.&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://github.com/clinebot/cline/wiki" rel="noopener noreferrer"&gt;docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Cline has 7k stars on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/clinebot/cline" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Cline ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  9. &lt;a href="https://github.com/BuilderIO/gpt-crawler/" rel="noopener noreferrer"&gt;GPT Crawler&lt;/a&gt; - create your own custom GPT from a URL.
&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%2Fjxznlaxu66unfqhq91uo.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%2Fjxznlaxu66unfqhq91uo.png" alt="gpt crawler" width="800" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;With GPT Crawler, you can crawl any site to generate knowledge files to make your own custom GPT from one or multiple URLs.&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%2Ftf9pr5v9k2r1fgcrs7wv.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%2Ftf9pr5v9k2r1fgcrs7wv.png" alt="gpt crawler" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The objective is to make the docs site interactive, people can more simply find the answers they are looking for using a chat interface.&lt;/p&gt;

&lt;p&gt;Watch this quick demo!&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%2Fw61aqtu80sn8btwt84iz.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%2Fw61aqtu80sn8btwt84iz.gif" alt="gif demo" width="720" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will have to configure the crawler and then simply run it. After the crawl is complete, you will have a new &lt;code&gt;output.json&lt;/code&gt; file, which includes the title, URL and extracted text from all the crawled pages.&lt;/p&gt;

&lt;p&gt;You can now upload this directly to ChatGPT by creating a new GPT. Once uploaded, this GPT assistant will have all the information from those docs and be able to answer unlimited questions about them.&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%2Feltqp5666lb9vxobtu8w.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%2Feltqp5666lb9vxobtu8w.gif" alt="custom upload" width="760" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;It's officially a &lt;a href="https://chatgpt.com/g/g-kywiqipmR-builder-io-assistant/" rel="noopener noreferrer"&gt;assistant in ChatGPT&lt;/a&gt;.&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%2F7pfh7479c07rle25ir6h.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%2F7pfh7479c07rle25ir6h.png" alt="assistant" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://github.com/BuilderIO/gpt-crawler?tab=readme-ov-file#get-started/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; on how to get started. You can find all the instructions on the official &lt;a href="https://www.builder.io/blog/custom-gpt/" rel="noopener noreferrer"&gt;blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are wondering how Mitosis compiles those components, then watch this quick tutorial.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/XQIuv34-K_8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;They have 18.6k stars on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/BuilderIO/gpt-crawler/" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star GPT Crawler ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  10. &lt;a href="https://github.com/ComposioHQ/composio" rel="noopener noreferrer"&gt;Composio&lt;/a&gt; - production ready toolset for AI Agents.
&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%2F6jw9vx7q33yrsxx63tsn.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%2F6jw9vx7q33yrsxx63tsn.png" alt="composio" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Composio is the only tool needed to build complex AI automation software. It allows AI models to access third-party tools and applications to automate their interactions with them.&lt;/p&gt;

&lt;p&gt;For instance, you can connect GitHub with the GPT model via Composio and automate reviewing PRs, resolving issues, writing test cases and more.&lt;/p&gt;

&lt;p&gt;You can automate complex real-world workflows by using 90+ tools and integration options such as GitHub, Jira, Slack and Gmail.&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%2Fauov7xct8veimdnbhctm.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%2Fauov7xct8veimdnbhctm.png" alt="integration" width="800" height="582"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also automate actions like sending emails, simulating clicks, placing orders and much more just by adding the OpenAPI spec of your apps to Composio.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ujxKzS0b5qg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;This is how you can use this.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# install it&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;composio-core

&lt;span class="c"&gt;# Add a GitHub integration&lt;/span&gt;
composio add github
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Here is how you can use the GitHub integration to star a repository.&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;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;composio_openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ComposioToolSet&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;App&lt;/span&gt;

&lt;span class="n"&gt;openai_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;******OPENAIKEY******&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Initialise the Composio Tool Set
&lt;/span&gt;&lt;span class="n"&gt;composio_toolset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ComposioToolSet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;**&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;***COMPOSIO_API_KEY**&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;***&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;## Step 4
# Get GitHub tools that are pre-configured
&lt;/span&gt;&lt;span class="n"&gt;actions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;composio_toolset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_actions&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;actions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="c1"&gt;## Step 5
&lt;/span&gt;&lt;span class="n"&gt;my_task&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Star a repo ComposioHQ/composio on GitHub&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# Create a chat completion request to decide on the action
&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-4-turbo&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;actions&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# Passing actions we fetched earlier.
&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&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;role&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;system&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;content&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;You are a helpful assistant.&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;role&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;user&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;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;my_task&lt;/span&gt;&lt;span class="p"&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;You can read the &lt;a href="https://docs.composio.dev/introduction/intro/overview" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and examples.&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%2Fd7p7bxn5xd7jow7p8mvm.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%2Fd7p7bxn5xd7jow7p8mvm.png" alt="options" width="800" height="627"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Composio has 9k stars on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ComposioHQ/composio" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Composio ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  11. &lt;a href="https://github.com/langflow-ai/langflow" rel="noopener noreferrer"&gt;Langflow&lt;/a&gt; - low-code app builder for RAG and multi-agent AI apps.
&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%2F7p27m28lt0zp5flxds0c.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%2F7p27m28lt0zp5flxds0c.png" alt="langflow" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Langflow is designed to make AI development easier in real-world scenarios. It's Python-based and agnostic to any model, API or database. &lt;/p&gt;

&lt;p&gt;It is kind of a dynamic graph where each node is an executable unit. You can watch the &lt;a href="https://docs.langflow.org/#e12578e9f465459592d89dbe47a54460" rel="noopener noreferrer"&gt;demo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;✅ You can use dynamic inputs by using curly brackets {}.&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%2Fgkakl9jhnjh2e985uxlu.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%2Fgkakl9jhnjh2e985uxlu.gif" alt="dynamic inputs" width="600" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ You can use the full potential of LLMs by easily fine-tuning them from spreadsheets.&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%2Ftt4dngin9py5i4etd88b.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%2Ftt4dngin9py5i4etd88b.gif" alt="fine-tune" width="600" height="238"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ You can go beyond the surface and code your own components.&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%2Fx2z9mg69x5ri4iiaka4a.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%2Fx2z9mg69x5ri4iiaka4a.gif" alt="your own components" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ Higher-level components naturally come from AI building blocks. Store and share your creations.&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%2Fe2dme8bnh6krieuozhgz.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%2Fe2dme8bnh6krieuozhgz.gif" alt="group components" width="600" height="247"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The integration options are huge so you can build almost anything. They also provide composable building blocks which are like pre-built components that can be combined in numerous ways to create AI apps.&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%2F2hjj39fqrxx1avkg6d8u.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%2F2hjj39fqrxx1avkg6d8u.png" alt="integration option" width="800" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.langflow.org/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; which contains a quickstart guide and &lt;a href="https://docs.langflow.org/workspace-playground" rel="noopener noreferrer"&gt;playground&lt;/a&gt; where you can directly prototype make\ing adjustments and observing different outcomes with models.&lt;/p&gt;

&lt;p&gt;Lanflow has 31.2k stars on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/langflow-ai/langflow" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Langflow ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  12. &lt;a href="https://github.com/bentoml/OpenLLM" rel="noopener noreferrer"&gt;OpenLLM&lt;/a&gt; - run LLMs as OpenAI compatible API endpoint in the cloud
&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%2Fjf3fjhw0bqxyletw847q.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%2Fjf3fjhw0bqxyletw847q.png" alt="open llm" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;OpenLLM lets developers run any open-source LLMs as OpenAI-compatible API endpoints with a single command.&lt;/p&gt;

&lt;p&gt;⚡ Support llama3, qwen2, gemma and many quantized versions full list.&lt;br&gt;
⚡ OpenAI-compatible API &amp;amp; includes ChatGPT like UI.&lt;br&gt;
⚡ Accelerated LLM decoding with state-of-the-art inference backends.&lt;br&gt;
⚡ Ready for enterprise-grade cloud deployment (Kubernetes, Docker, and BentoCloud).&lt;/p&gt;

&lt;p&gt;Get started with 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 openllm  # or pip3 install openllm
openllm hello
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;OpenLLM provides a chat user interface (UI) at the /chat endpoint for an LLM server. You can visit the chat UI at &lt;code&gt;http://localhost:3000/chat&lt;/code&gt; and start different conversations with the model.&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%2Fwgbyum3mgy51q46njf0q.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%2Fwgbyum3mgy51q46njf0q.png" alt="open llm" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As I said before, OpenLLM supports LLM cloud deployment via BentoML, the unified model serving framework and BentoCloud, an AI inference platform for enterprise AI teams.  &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%2Fmdlikmcik2dq746qha3b.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%2Fmdlikmcik2dq746qha3b.png" alt="models" width="800" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you don't know, BentoCloud provides a fully managed infrastructure optimized for LLM inference with autoscaling, model orchestration, observability, which is just a fancy way of saying it allows you to run any AI model in the cloud.&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%2Frmhtm95h90h6z2ei9e8b.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%2Frmhtm95h90h6z2ei9e8b.png" alt="bento cloud console" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;
Once the deployment is complete, you can run model inference on the BentoCloud console:



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

&lt;p&gt;You can read about the &lt;a href="https://github.com/bentoml/OpenLLM?tab=readme-ov-file#supported-models" rel="noopener noreferrer"&gt;supported models&lt;/a&gt; and how to &lt;a href="https://github.com/bentoml/OpenLLM?tab=readme-ov-file#start-an-llm-server" rel="noopener noreferrer"&gt;start the LLM server&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Explore docs as you can also chat with a model in the CLI using &lt;code&gt;openllm run&lt;/code&gt; and specifying model version - &lt;code&gt;openllm run llama3:8b&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you love exploring walkthroughs, watch this demo by Matthew!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/8nZZ2oQhx4E"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;They have 9.9k stars on GitHub, almost hitting the mark of 10k :)&lt;/p&gt;

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


&lt;h2&gt;
  
  
  13. &lt;a href="https://github.com/gpt-engineer-org/gpt-engineer" rel="noopener noreferrer"&gt;GPT Engineer&lt;/a&gt; - AI builds what you ask.
&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%2F8zdpd1ndd7afnt8m4cvz.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%2F8zdpd1ndd7afnt8m4cvz.png" alt="gpt engineer" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;GPT-engineer lets you specify software in natural language, sit back, and watch as an AI writes and executes the code, and you can ask the AI to implement improvements.&lt;/p&gt;

&lt;p&gt;It's safe to say it's an engineer who doesn't need a degree 😅&lt;/p&gt;

&lt;p&gt;It's a commercial project for the automatic generation of web apps. It features a UI for non-technical users connected to a git-controlled codebase.&lt;/p&gt;

&lt;p&gt;I know this feels confusing, so watch the below demo to understand how you can use GPT Engineer.&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%2F4lpk4ctcuypzr7ms2pii.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%2F4lpk4ctcuypzr7ms2pii.gif" alt="demo gif" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can get started by installing the stable release using 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;python -m pip install gpt-engineer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;By default, gpt-engineer expects text input via a prompt file. It can also accept image inputs for vision-capable models. This can be useful for adding UX or architecture diagrams as additional context for GPT engineer. Read about all the &lt;a href="https://github.com/gpt-engineer-org/gpt-engineer?tab=readme-ov-file#features" rel="noopener noreferrer"&gt;awesome features&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you want a complete walkthrough, watch this awesome demo by David!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/gWy-pJ2ofEM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;I recommend checking out the &lt;a href="https://github.com/gpt-engineer-org/gpt-engineer/blob/main/ROADMAP.md" rel="noopener noreferrer"&gt;roadmap&lt;/a&gt; to understand the overall vision.&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%2Fv6vhrqgn8brw8woklvm0.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%2Fv6vhrqgn8brw8woklvm0.png" alt="roadmap" width="800" height="551"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They have 52.2k stars on GitHub and are on the &lt;code&gt;v0.3&lt;/code&gt; release.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/gpt-engineer-org/gpt-engineer" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star GPT Engineer ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  14. &lt;a href="https://github.com/voideditor/void" rel="noopener noreferrer"&gt;Void&lt;/a&gt; - open source alternative to cursor.
&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%2F8tqhqzfxy5hyd6aulrb6.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%2F8tqhqzfxy5hyd6aulrb6.png" alt="void" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;As you know, a lot of projects like PearAI and Zed came out after Cursor launched, but most of these are just forks of VSCode and don’t really improve the ecosystem that much.&lt;/p&gt;

&lt;p&gt;If you're looking to switch, I’d recommend Cursor (not open source), Continue (similar to Cursor) and Void which is an open source alternative to Cursor.&lt;/p&gt;

&lt;p&gt;I'm covering Void because it's backed by YCombinator so it makes them credible enough. They have not released it but you can easily get the &lt;a href="https://voideditor.com/email" rel="noopener noreferrer"&gt;early access&lt;/a&gt; to try it out.&lt;/p&gt;

&lt;p&gt;It has very similar AI syntax features as Cursor.&lt;/p&gt;

&lt;p&gt;✅ You can do intelligent searches With AI.&lt;/p&gt;

&lt;p&gt;✅ You can view and edit underlying prompts.&lt;/p&gt;

&lt;p&gt;✅ There is contextual awareness, third party integrations, Fine-Tuned generation and you can even host Ollama locally to never run out of API credits again.&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%2Ftb35wk30bwgxhth5e62c.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%2Ftb35wk30bwgxhth5e62c.png" alt="cursor" width="800" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As I said previously, Void is a fork of VS Code so you can transfer over all your themes, keybinds and settings with just one click.&lt;/p&gt;

&lt;p&gt;I've covered Continue before so skipped it this time, but I would definitely prefer Cursor until Void is completely released.&lt;/p&gt;

&lt;p&gt;Void has 7.5k stars on GitHub and is still in its early release.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/voideditor/void" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Void ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  15. &lt;a href="https://github.com/unslothai/unsloth" rel="noopener noreferrer"&gt;Unsloth&lt;/a&gt; - Finetune Llama 3, Mistral, Phi &amp;amp; Gemma LLMs 2-5x faster with 80% less memory.
&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%2F3eoe4v0miesybe1p9n0e.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%2F3eoe4v0miesybe1p9n0e.png" alt="unsloth" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Unsloth makes finetuning large language models like Llama-3, Mistral, Phi-3, and Gemma 2x faster, use 70% less memory, and with no degradation in accuracy!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;✅ What is finetuning?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If we want a language model to learn a new skill, a new language, some new programming language, or simply want the language model to learn how to follow and answer instructions like how ChatGPT functions, we do finetuning!&lt;/p&gt;

&lt;p&gt;Finetuning is the process of updating the actual &lt;code&gt;brains&lt;/code&gt; of the language model through some process called back-propagation. But, finetuning can get very slow and very resource intensive.&lt;/p&gt;

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

&lt;p&gt;Unsloth can be installed locally or through another GPU service like Google Colab. Most use Unsloth through the interface Google Colab which provides a &lt;a href="https://github.com/unslothai/unsloth?tab=readme-ov-file#-finetune-for-free" rel="noopener noreferrer"&gt;free GPU&lt;/a&gt; to train with.&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%2F6mnntbvbcho8hmihd59j.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%2F6mnntbvbcho8hmihd59j.png" alt="Finetune for Free" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of the things that stand out:&lt;/p&gt;

&lt;p&gt;✅ Open source trains 5x faster, and the pro version claims to be 30x faster.&lt;/p&gt;

&lt;p&gt;✅ No approximation methods are used resulting in a 0% loss in accuracy.&lt;/p&gt;

&lt;p&gt;✅ No change of hardware, Works on Linux and Windows via WSL.&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%2F0147naadascce5oztcwf.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%2F0147naadascce5oztcwf.png" alt="unsloth model stats" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://github.com/unslothai/unsloth?tab=readme-ov-file#-installation-instructions" rel="noopener noreferrer"&gt;installation instructions&lt;/a&gt; and &lt;a href="https://unsloth.ai/blog/mistral-benchmark#Benchmark%20tables" rel="noopener noreferrer"&gt;performance benchmarking tables&lt;/a&gt; on the website.&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%2Fqm9hb9k6rqt8i1xr3re1.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%2Fqm9hb9k6rqt8i1xr3re1.png" alt="unsloth" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.unsloth.ai/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and all the &lt;a href="https://huggingface.co/unsloth" rel="noopener noreferrer"&gt;uploaded models on Hugging Face&lt;/a&gt; directly.&lt;/p&gt;

&lt;p&gt;They have also provided a detailed guide on &lt;a href="https://docs.unsloth.ai/tutorials/how-to-finetune-llama-3-and-export-to-ollama" rel="noopener noreferrer"&gt;How to Finetune Llama-3 and Export to Ollama&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Unsloth has 16.8k+ stars on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/unslothai/unsloth" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Unsloth ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  16. &lt;a href="https://github.com/khoj-ai/khoj" rel="noopener noreferrer"&gt;Khoj&lt;/a&gt; - Your AI second brain.
&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%2F31d9m3po4oppf4ignvbh.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%2F31d9m3po4oppf4ignvbh.png" alt="khoj" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Khoj is the open source, AI copilot for search. Easily get answers without having to sift through online results or your own notes.&lt;/p&gt;

&lt;p&gt;Khoj can understand your Word, PDF, org-mode, markdown, plaintext files, GitHub projects and even Notion pages.&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%2F5ory8aio202w6ce5x6ul.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%2F5ory8aio202w6ce5x6ul.png" alt="type of documents" width="441" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's available as a Desktop app, Emacs package, Obsidian plugin, Web app and Whatsapp AI. Obsidian with Khoj might be the most powerful combo!&lt;/p&gt;

&lt;p&gt;You can get started with Khoj locally in a few minutes with the following commands.&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 khoj-assistant
$ khoj
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Watch it in &lt;a href="https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExN3RzNHA0MWE2NnB5aTMxOXlnY3puMDhkaHpwa2ZrYWlzMWJ0ZXRnNyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/0VIZl3xIVyzzfS9hiJ/giphy.gif" rel="noopener noreferrer"&gt;action&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Some of the exciting features:&lt;/p&gt;

&lt;p&gt;✅ You can share your notes and documents to extend your digital brain.&lt;/p&gt;

&lt;p&gt;✅ Your AI agents have access to the internet, allowing you to incorporate real-time information.&lt;/p&gt;

&lt;p&gt;✅ You'll get a fast, accurate semantic search on top of your docs.&lt;/p&gt;

&lt;p&gt;✅ Your agents can create deeply personal images and understand your speech.&lt;/p&gt;

&lt;p&gt;For instance, saying: "Create a picture of my dream house, based on my interests". It will draw this!&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%2Fs1f6gtwssn08mhk6s6ud.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%2Fs1f6gtwssn08mhk6s6ud.png" alt="image generation" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read all the &lt;a href="https://docs.khoj.dev/category/features" rel="noopener noreferrer"&gt;features&lt;/a&gt; including shareable chat, online chat, file summarization, and complete details in various categories.&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.khoj.dev/#/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and you can try &lt;a href="https://app.khoj.dev/" rel="noopener noreferrer"&gt;Khoj Cloud&lt;/a&gt; to try it quickly.&lt;/p&gt;

&lt;p&gt;Watch the complete walkthrough on YouTube!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Lnx2K4TOnC4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;It has 12.8k stars on GitHub and is backed by YCombinator.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/khoj-ai/khoj" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Khoj ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  17. &lt;a href="https://github.com/hegelai/prompttools" rel="noopener noreferrer"&gt;Prompt Tools&lt;/a&gt; - tools for prompt testing.
&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%2Frd2x65bybjzj1b0c1yfe.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%2Frd2x65bybjzj1b0c1yfe.png" alt="prompt tools" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;This project has a collection of open source self-hostable tools for experimenting with, testing, and evaluating LLMs, vector databases and prompts. The core idea is to enable developers to evaluate using familiar interfaces like code, notebooks and a local playground.&lt;/p&gt;

&lt;p&gt;In just a few lines of code, you can test your prompts and parameters across different models (whether you are using OpenAI, Anthropic or LLaMA models). You can even evaluate the retrieval accuracy of vector databases.&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%2Fes5b21x8nl3q0uk60dvs.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%2Fes5b21x8nl3q0uk60dvs.gif" alt="prompt tools" width="560" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get started with pip.&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 prompttools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;They provide &lt;a href="https://github.com/hegelai/prompttools/tree/main/examples/notebooks/" rel="noopener noreferrer"&gt;notebook examples&lt;/a&gt; which you can run.&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://prompttools.readthedocs.io/en/latest/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; amd check their &lt;a href="https://prompttools.readthedocs.io/en/latest/playground.html" rel="noopener noreferrer"&gt;playground&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Prompt tools have 2.7k stars on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/hegelai/prompttools" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Prompt Tools ⭐️&lt;/a&gt;
&lt;/p&gt;



&lt;p&gt;With the right tools, building AI features is much easier and your team can deliver quality work faster.&lt;/p&gt;

&lt;p&gt;Do you think these projects will help teams build AI features at least faster than before?&lt;/p&gt;

&lt;p&gt;Have a great day! Till next time.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;If you loved this, &lt;br&gt; please follow me for more :)&lt;/th&gt;
&lt;th&gt;
&lt;a href="https://twitter.com/Anmol_Codes" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FTwitter-d5d5d5%3Fstyle%3Dfor-the-badge%26logoColor%3D000" alt="profile of Twitter with username Anmol_Codes" width="83" height="28"&gt;&lt;/a&gt; &lt;a href="https://github.com/Anmol-Baranwal" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fgithub-181717%3Fstyle%3Dfor-the-badge%26logoColor%3Dwhite" alt="profile of GitHub with username Anmol-Baranwal" width="75" height="28"&gt;&lt;/a&gt; &lt;a href="https://www.linkedin.com/in/Anmol-Baranwal/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FLinkedIn-0A66C2%3Fstyle%3Dfor-the-badge%26logoColor%3Dwhite" alt="profile of LinkedIn with username Anmol-Baranwal" width="91" height="28"&gt;&lt;/a&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Follow Latitude for more content like this.&lt;/p&gt;


&lt;div class="ltag__user ltag__user__id__8649"&gt;
  &lt;a href="/latitude" class="ltag__user__link profile-image-link"&gt;
    &lt;div class="ltag__user__pic"&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%2Forganization%2Fprofile_image%2F8649%2F4a824627-0334-40e4-8df4-7f7465a347f0.png" alt="latitude image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
      &lt;a href="/latitude" class="ltag__user__link"&gt;Latitude&lt;/a&gt;
      Follow
    &lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a href="/latitude" class="ltag__user__link"&gt;
        Latitude is the open-source LLM development platform. Build, test, and deploy your LLM-based features with confidence.
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;



</description>
      <category>opensource</category>
      <category>llm</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>17 LLM Tools That Almost Broke The Internet ⚡</title>
      <dc:creator>Anmol Baranwal</dc:creator>
      <pubDate>Thu, 19 Sep 2024 13:08:41 +0000</pubDate>
      <link>https://forem.com/latitude/17-llm-tools-that-went-viral-after-launch-4gim</link>
      <guid>https://forem.com/latitude/17-llm-tools-that-went-viral-after-launch-4gim</guid>
      <description>&lt;p&gt;AI is not going down anytime soon especially because of free powerful LLMs like GPT-4o and Claude.&lt;/p&gt;

&lt;p&gt;A lot of startups are already using it to build cool products and reach massive audiences.&lt;/p&gt;

&lt;p&gt;Today, I'm covering 17 powerful LLM tools that went viral after launch. These examples might give you some ideas for your own projects.&lt;/p&gt;

&lt;p&gt;Let's jump in.&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%2Ft0yuqajwmwviaza3esj2.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%2Ft0yuqajwmwviaza3esj2.gif" alt="crazy" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;By the way, I’m part of Latitude and we’re building an open source prompt engineering platform. You can check our &lt;a href="https://github.com/latitude-dev/latitude-llm" rel="noopener noreferrer"&gt;public GitHup repo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You would be able to do a lot of cool stuff like:&lt;/p&gt;

&lt;p&gt;⚡ Create and iterate prompt in the platform.&lt;br&gt;
⚡ Run evaluations to check your prompts with LLMs.&lt;br&gt;
⚡ Optimize the output of your LLM-based features automatically.&lt;/p&gt;

&lt;p&gt;I'm very confident that you will love it after release!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/latitude-dev/latitude-llm" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Latitude ⭐️&lt;/a&gt;
&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%2Fixfe24bnnc5zfoeso5p9.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%2Fixfe24bnnc5zfoeso5p9.png" alt="llm platform by latitude" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. &lt;a href="https://github.com/BuilderIO/gpt-crawler/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;GPT Crawler&lt;/a&gt; - create your own custom GPT from a URL.
&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%2Fjxznlaxu66unfqhq91uo.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%2Fjxznlaxu66unfqhq91uo.png" alt="gpt crawler" width="800" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;With GPT Crawler, you can crawl any site to generate knowledge files to make your own custom GPT from one or multiple URLs.&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%2Ftf9pr5v9k2r1fgcrs7wv.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%2Ftf9pr5v9k2r1fgcrs7wv.png" alt="gpt crawler" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The objective is to make the docs site interactive, people can more simply find the answers they are looking for using a chat interface.&lt;/p&gt;

&lt;p&gt;Watch this quick demo!&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%2Fw61aqtu80sn8btwt84iz.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%2Fw61aqtu80sn8btwt84iz.gif" alt="gif demo" width="720" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will have to configure the crawler and then simply run it. After the crawl is complete, you will have a new &lt;code&gt;output.json&lt;/code&gt; file, which includes the title, URL and extracted text from all the crawled pages.&lt;/p&gt;

&lt;p&gt;You can now upload this directly to ChatGPT by creating a new GPT. Once uploaded, this GPT assistant will have all the information from those docs and be able to answer unlimited questions about them.&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%2Feltqp5666lb9vxobtu8w.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%2Feltqp5666lb9vxobtu8w.gif" alt="custom upload" width="760" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;It's officially a &lt;a href="https://chatgpt.com/g/g-kywiqipmR-builder-io-assistant/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;assistant in ChatGPT&lt;/a&gt;.&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%2F7pfh7479c07rle25ir6h.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%2F7pfh7479c07rle25ir6h.png" alt="assistant" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://github.com/BuilderIO/gpt-crawler?tab=readme-ov-file#get-started/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;docs&lt;/a&gt; on how to get started. You can find all the instructions on the official &lt;a href="https://www.builder.io/blog/custom-gpt/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are wondering how Mitosis compiles those components, then watch this quick tutorial.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/XQIuv34-K_8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;They have 18.4k stars on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/BuilderIO/gpt-crawler/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star GPT Crawler ⭐️&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  2. &lt;a href="https://pi.ai/discover/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Personal AI&lt;/a&gt; - your personal sweet AI.
&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%2Frxypg9z6f2ujrhsiofwl.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%2Frxypg9z6f2ujrhsiofwl.png" alt="personal ai" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;PI is an AI chatbot (created by Inflection AI) and is built to provide helpful, engaging and fun conversations. I loved the onboarding section!&lt;/p&gt;

&lt;p&gt;I have used GPT and Gemini but Pi seems more human-like. You can have conversations about yourself and general things in life, that you would do with a friend.&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%2Fpgyhebccezh9e8y5jxfx.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%2Fpgyhebccezh9e8y5jxfx.png" alt="lot of templates" width="800" height="311"&gt;&lt;/a&gt;&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%2F3tyrb3b3qmh011zk7ubi.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%2F3tyrb3b3qmh011zk7ubi.png" alt="lot of templates" width="800" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also ask it to convey in voice. The fact I love it because of how calm the User Interface is, it feels so peaceful and you can do all sorts of stuff.&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%2Fzphrshz9jxmor3gy9yb0.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%2Fzphrshz9jxmor3gy9yb0.png" alt="voice" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They also offer a &lt;a href="https://pi.ai/desktop/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;desktop app&lt;/a&gt; that is free to download.&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%2Ff6ti084dxcbb6e68z5w0.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%2Ff6ti084dxcbb6e68z5w0.png" alt="desktop app" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can watch the video if you want (AI voice).&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/l-QHJXMnwcA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;It's not open source but very powerful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pi.ai/discover/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Visit Personal AI 🔥&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  3. &lt;a href="https://github.com/vanna-ai/vanna/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Vanna&lt;/a&gt; - Chat with your SQL database.
&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%2Fuxryt1lsw41hwt31bqti.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%2Fuxryt1lsw41hwt31bqti.png" alt="vanna" width="800" height="219"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Vanna is an MIT-licensed open-source Python RAG (Retrieval-Augmented Generation) framework for SQL generation.&lt;/p&gt;

&lt;p&gt;Basically, it's a Python package that uses retrieval augmentation to help you generate accurate SQL queries for your database using LLMs.&lt;/p&gt;

&lt;p&gt;It's perfect for developers like me who are not fond of SQL queries!&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%2Fsinq74k898iyfvsnjimx.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%2Fsinq74k898iyfvsnjimx.png" alt="low level diagram on how vanna works" width="800" height="593"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vanna works in two easy steps - train a &lt;code&gt;RAG model&lt;/code&gt; on your data, and then ask questions that will return SQL queries that can be set up to run on your database automatically.&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%2F5fjc5966fphrge71s8sg.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%2F5fjc5966fphrge71s8sg.png" alt="how vanna works" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You don't need to know how this whole stuff works to use it. &lt;br&gt;
You just have to &lt;code&gt;train&lt;/code&gt; a model, which stores some metadata, and then use it to &lt;code&gt;ask&lt;/code&gt; questions.&lt;/p&gt;

&lt;p&gt;Get started with 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 vanna
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;To make things a little easier, they have built user interfaces that you can use as a starting point for your own custom interface. Find all the &lt;a href="https://github.com/vanna-ai/vanna?tab=readme-ov-file#user-interfaces/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;interfaces&lt;/a&gt; including Jupyter Notebook and Flask.&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%2F20nymucrkb9wlsvi4kpd.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%2F20nymucrkb9wlsvi4kpd.png" alt="variations" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://vanna.ai/docs/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and you can try this &lt;a href="https://vanna.ai/docs/app/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Colab notebook&lt;/a&gt; in case you want to see how it works after training.&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%2Flke5g7erv1t0tao8f9z9.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%2Flke5g7erv1t0tao8f9z9.gif" alt="flask UI gif" width="560" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch this &lt;a href="https://github.com/vanna-ai/vanna?tab=readme-ov-file#vanna/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;demo&lt;/a&gt; for a complete walkthrough!&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%2F40gg9oeb4piys15p2re2.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%2F40gg9oeb4piys15p2re2.gif" alt="vanna demo" width="600" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They have 9.5k+ stars on GitHub and are built using Python.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vanna-ai/vanna/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Vanna ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  4. &lt;a href="https://aidungeon.com/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;AI Dungeon&lt;/a&gt; - text-based adventure-story game you direct while the AI brings it to life.
&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%2Fitxn5nec59sysuijc2ok.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%2Fitxn5nec59sysuijc2ok.png" alt="ai dungeon" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;AI Dungeon is one of the coolest use case of LLM that I have seen so far. It's creative and has a lot of options.&lt;/p&gt;

&lt;p&gt;There are no rules or objectives since they are only focused on adventure.&lt;/p&gt;

&lt;p&gt;AI Dungeon is a text-based, AI generated fantasy simulation with infinite possibilities. Unlike most games where you experience worlds created by game designers, with AI Dungeon, you can direct the AI to create worlds, characters and scenarios for your character to interact with. &lt;/p&gt;

&lt;p&gt;Watch the official trailer :)&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/wUrwTYjFEmw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;You could lead an army fighting back an alien invasion or be a cool detective investigating the assassination of the queen.&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%2Fr2j3hnaydq1x5e2f143c.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%2Fr2j3hnaydq1x5e2f143c.png" alt="lead scenarios" width="800" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can discover 200+ playable scenarios at &lt;a href="https://play.aidungeon.com/discover" rel="noopener noreferrer"&gt;play.aidungeon.com/discover&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are not aware, Scenarios are basically templates that players can use to start a new Adventure.&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%2Fikjdns2vuhy8p4akacqu.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%2Fikjdns2vuhy8p4akacqu.png" alt="scenarios" width="800" height="260"&gt;&lt;/a&gt;&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%2F77940ycoy254gqsgj7sw.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%2F77940ycoy254gqsgj7sw.png" alt="scenarios" width="800" height="259"&gt;&lt;/a&gt;&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%2Fjq8os6s0k4mvuxlht1rn.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%2Fjq8os6s0k4mvuxlht1rn.png" alt="scenarios" width="800" height="266"&gt;&lt;/a&gt;&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%2Fbcgb6mzn5uy2dt62pswo.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%2Fbcgb6mzn5uy2dt62pswo.png" alt="scenarios" width="800" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can filter them based on your choice like playable/readable, multiple choice or 3rd person and so many more.&lt;/p&gt;

&lt;p&gt;They have created a &lt;a href="https://help.aidungeon.com/getting-started/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;complete guidebook&lt;/a&gt; to answer all your queries.&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%2F2lgl6eblmi6nqka6dq6a.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%2F2lgl6eblmi6nqka6dq6a.png" alt="complete guidebook" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can find the official app on &lt;a href="https://play.google.com/store/apps/details?id=com.aidungeon&amp;amp;hl=en&amp;amp;gl=US" rel="noopener noreferrer"&gt;platstore&lt;/a&gt; and &lt;a href="https://apps.apple.com/us/app/ai-dungeon/id1491268416/" rel="noopener noreferrer"&gt;apple store&lt;/a&gt;. They have 1M+ downloads which makes them very credible.&lt;/p&gt;

&lt;p&gt;You can even improve this by using tools like Sora (upcoming launch).&lt;/p&gt;

&lt;p&gt;They are not open source but worth checking out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aidungeon.com/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Visit AI Dungeon 🔥&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  5. &lt;a href="https://github.com/chat2db/Chat2DB/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Chat2DB&lt;/a&gt; - AI-driven data management platform.
&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%2F0fu2hozmkm3ps8l99rj9.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%2F0fu2hozmkm3ps8l99rj9.png" alt="chat2db" width="800" height="297"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Chat2DB is an AI-first data management, development, and analysis tool.&lt;/p&gt;

&lt;p&gt;Its core is AIGC (Artificial Intelligence Generation Code), which can convert natural language into SQL, SQL into natural language, and automatically generate reports, taking efficiency to another level. &lt;/p&gt;

&lt;p&gt;Even operations that do not understand SQL can use it to quickly query business data and generate reports.&lt;/p&gt;

&lt;p&gt;For instance, when you are doing database development, it will help you generate SQL directly in natural language, SQL optimization suggestions, analyze SQL performance, SQL execution plan, and can also help you quickly generate SQL test data, system code and more. Lots of jargon but it's actually very powerful :)&lt;/p&gt;

&lt;p&gt;They have excellent support for multi-data sources and can easily integrate up to 17 different database types including PostgreSQL, MySQL, MongoDB, and Redis.&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%2Fc5k3ryojynrovdlx508i.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%2Fc5k3ryojynrovdlx508i.png" alt="databases" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;You can download or &lt;a href="https://app.chat2db.ai/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;try it in the browser&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let's see some of the exciting features:&lt;/p&gt;

&lt;p&gt;⚡ Intelligent reports.&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%2Fg4580tabu3t3vq48e0k5.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%2Fg4580tabu3t3vq48e0k5.png" alt="reports" width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;⚡ Data Exploration.&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%2Fmqq58sgw239ugep7ocez.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%2Fmqq58sgw239ugep7ocez.png" alt="data exploration" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;⚡ SQL Development.&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%2F7fpvwv5lpiyqil2t6aig.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%2F7fpvwv5lpiyqil2t6aig.png" alt="SQL Development" width="800" height="383"&gt;&lt;/a&gt;&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%2Fj6zszr0onru157uuvhpw.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%2Fj6zszr0onru157uuvhpw.png" alt="sql development" width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;You can read the &lt;a href="https://docs.chat2db.ai/docs/start-guide/getting-started/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;quickstart guide&lt;/a&gt; on the official docs.&lt;/p&gt;

&lt;p&gt;They have 14k+ stars on GitHub and are on the release &lt;code&gt;v3.2&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/chat2db/Chat2DB/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Chat2DB ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  6. &lt;a href="https://get.mem.ai/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Mem&lt;/a&gt; - magic notes app.
&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%2Fh5eumsed5m6fkd5uv8u1.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%2Fh5eumsed5m6fkd5uv8u1.png" alt="magic notes" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Mem is the AI notes app that keeps you organized. &lt;/p&gt;

&lt;p&gt;You can use their AI assistant to summarize insights or draft content based on their notes. There is also a concept of automated tagging.&lt;/p&gt;

&lt;p&gt;It's not free (a major drawback) but you can fill out a form for huge discounts.&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%2Fa3iidj3f2rza82ppx0il.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%2Fa3iidj3f2rza82ppx0il.png" alt="trial" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is how the dashboard looks. The search feature is very handy and there are lots of useful features.&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%2F41etuv01k44hi3pdf947.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%2F41etuv01k44hi3pdf947.png" alt="dashboard" width="800" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Let's see what else we can do with Mem.&lt;/p&gt;

&lt;p&gt;⚡ You can use Mem Chat to write content by using a deep understanding of your notes.&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%2Fn9gzkv65pdm0jrvktrse.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%2Fn9gzkv65pdm0jrvktrse.png" alt="mem chat" width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;⚡ You can use AI to create new collections.&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%2F2ujf333r9sdjg2ghtzml.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%2F2ujf333r9sdjg2ghtzml.png" alt="new collections" width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;⚡ You can pick things from your favorite apps.&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%2Fpyh5cvu0twmczc2lnc31.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%2Fpyh5cvu0twmczc2lnc31.png" alt="imported" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;⚡ Search beyond your keywords.&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%2F41956wg0bmiczs4mwuzo.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%2F41956wg0bmiczs4mwuzo.png" alt="search" width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I have attached a tutorial to help you on how to use Mem.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/NmWdBATMQ4M"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;It's not open source but you can find everything on their &lt;a href="https://get.mem.ai/blog" rel="noopener noreferrer"&gt;blogs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://get.mem.ai/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Visit Mem 🔥&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  7. &lt;a href="https://character.ai/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Character AI&lt;/a&gt; - chat with AI characters as if they were humans.
&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%2Fmdjh224352ok7gmbrsk7.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%2Fmdjh224352ok7gmbrsk7.png" alt="Character AI" width="462" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Character AI is a full-stack AI tool that lets users personalize their experience by interacting with AI Characters.&lt;/p&gt;

&lt;p&gt;You can chat with those virtual characters as if they were humans.&lt;/p&gt;

&lt;p&gt;There are many filters and personas that you can try. Their community is very huge with around 300k+ members.&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%2Fjgjie9vbbmfqzm2a3gl9.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%2Fjgjie9vbbmfqzm2a3gl9.png" alt="Character AI" width="800" height="260"&gt;&lt;/a&gt;&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%2F5hdbtrg8dqdpw7mnugc3.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%2F5hdbtrg8dqdpw7mnugc3.png" alt="Character AI" width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can create a character with a simple form.&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%2Fnzk3i9zzwnat875kvuct.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%2Fnzk3i9zzwnat875kvuct.png" alt="create character" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And of course, add a custom persona if the existing one isn't up to your requirements.&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%2F78jlfgprawq98swtheyi.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%2F78jlfgprawq98swtheyi.png" alt="persona" width="576" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I found a funny official video to show you behind the scenes.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/VHiy5F_BDw0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;You should explore it yourself to get the overall idea.&lt;/p&gt;

&lt;p&gt;It's not open source.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://character.ai/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Visit Character AI 🔥&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  8. &lt;a href="https://promptperfect.jina.ai/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Prompt Perfect&lt;/a&gt; - optimize your prompts.
&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%2Fj1omphzzk82tz5bj87ma.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%2Fj1omphzzk82tz5bj87ma.png" alt="Prompt Perfect" width="800" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;It's a tool to optimize your prompt. Using LLM to optimize the input that is again going to use LLM is kind of fancy.&lt;/p&gt;

&lt;p&gt;PromptPerfect is a prompt optimization tool designed to enhance the quality of large language models and large model results. To use PromptPerfect, you need to input a prompt and customize various settings according to their needs. &lt;/p&gt;

&lt;p&gt;These settings include the maximum prompt length, the number of iterations to be optimized, and the quality of the output. It's a useful one if you use models like GPT-4, Claude and Midjourney.&lt;/p&gt;

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

&lt;p&gt;Some of the exciting features are:&lt;/p&gt;

&lt;p&gt;⚡ Concept of auto-tune.&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%2Fobawq1qektdy8x9vbeb1.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%2Fobawq1qektdy8x9vbeb1.png" alt="auto-tune" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ Convert to precise prompts.&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%2Fwg57fbjcyh0dxndn66jq.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%2Fwg57fbjcyh0dxndn66jq.png" alt="precise prompts" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ Improve content based on your target audience.&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%2Fluao0ikxklk4cbz8n5dm.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%2Fluao0ikxklk4cbz8n5dm.png" alt="content based on your target audience" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ Also make images.&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%2Fse0qvqlp7dk0r214qvxt.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%2Fse0qvqlp7dk0r214qvxt.png" alt="image generation" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is a whole lot of stuff that you can do. Just explore &lt;a href="https://promptperfect.jina.ai/#features/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;all the features&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It has a free tier plan of 10 requests per day but it's not open source.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://promptperfect.jina.ai/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Visit Prompt Perfect 🔥&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  9. &lt;a href="https://www.heygen.com/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Heygen&lt;/a&gt; - create awesome videos using AI.
&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%2Fxr1z4ylcl8qcl1gjma9l.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%2Fxr1z4ylcl8qcl1gjma9l.png" alt="heygen" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;With Heygen, you can create production-ready videos from text in seconds with AI-generated avatars and voices.&lt;/p&gt;

&lt;p&gt;HeyGen does multiple things related to video generation and is a leader in generative AI for video production purposes. As such, it sports a great AI Avatar generator, AI-powered Text-to-Speech, and AI voice cloner. These tools are wrapped in a clean User Interface that lets creators get more done in less.&lt;/p&gt;

&lt;p&gt;It works in three simple steps.&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%2Fddcv5fv2fwq0fy333sq9.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%2Fddcv5fv2fwq0fy333sq9.png" alt="three steps" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch the quick demo!&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%2F6npkbasrcjhxa2nobadq.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%2F6npkbasrcjhxa2nobadq.gif" alt="quick demo" width="560" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is present in a lot of languages.&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%2Fbf38o7p4yocgs85gbcjc.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%2Fbf38o7p4yocgs85gbcjc.png" alt="a lot of stuff" width="800" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They also provide ChatGPT script writer that you can use to create videos faster.&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%2Fa548vkot6qm1nl8fszyf.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%2Fa548vkot6qm1nl8fszyf.gif" alt="script writer" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They recently received $60M funding so they're growing fast.&lt;/p&gt;

&lt;p&gt;They're not open source but are definitely worth checking out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.heygen.com/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Visit Heygen 🔥&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  10. &lt;a href="https://github.com/BuilderIO/micro-agent/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Micro Agent&lt;/a&gt; - AI agent that writes (actually useful) code for you.
&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%2Fx5d46msd51hvygkbr92o.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%2Fx5d46msd51hvygkbr92o.png" alt="micro agent" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;AI-assisted coding tools like GitHub Copilot and ChatGPT don't produce very reliable code and they often don't work correctly right out of the box, you find bugs, edge cases, or even references to non-existent APIs.&lt;/p&gt;

&lt;p&gt;This can lead to a frustrating loop of trying the generated code, finding issues, going back to the AI for fixes and repeating. &lt;/p&gt;

&lt;p&gt;The time spent debugging can negate the total time saved using AI tools in the first place.&lt;/p&gt;

&lt;p&gt;Micro Agent uses AI to mitigate the problems of unreliable code generation.&lt;/p&gt;

&lt;p&gt;Give it a prompt and it'll generate a test and then iterate on code until all test cases pass.&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%2Fp7kf5p2iosp08r2hly60.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%2Fp7kf5p2iosp08r2hly60.png" alt="how it works" width="800" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can install it using 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;npm install -g @builder.io/micro-agent

# Next, set your OpenAI API key when prompted or manually using this.
micro-agent config set OPENAI_KEY=&amp;lt;your token&amp;gt;

# Then you can run to start a new coding task
micro-agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Micro Agent will prompt you to describe the function you want, generate tests, and start writing code in your preferred language to make the tests pass. Once all the tests are green, you'll have a fully functional, test-backed function ready to use.&lt;/p&gt;

&lt;p&gt;Let's explore some of the most mind blowing use cases:&lt;/p&gt;

&lt;p&gt;⚡ 30-second demo of Micro Agent generating tests and code for a TypeScript function that groups anagrams together from an array of strings.&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%2Fphpyuttnuo26iiqfju9e.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%2Fphpyuttnuo26iiqfju9e.gif" alt="group anagram" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ Using Micro Agent to generate a simple HTML to AST parser (it was achieved on two iterations).&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%2Fazt11km0n5z8ahapq5j0.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%2Fazt11km0n5z8ahapq5j0.gif" alt="micro agent html to ast parser" width="600" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ Unit test matching.&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%2Fjdnjul4fawrgmw9tz8vi.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%2Fjdnjul4fawrgmw9tz8vi.gif" alt="unit matching" width="760" height="634"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ Visual matching (experimental).&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%2F0h3sjdhp9xky3tm02u8o.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%2F0h3sjdhp9xky3tm02u8o.gif" alt="Visual matching" width="720" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ Integration with Figma.&lt;/p&gt;

&lt;p&gt;Micro Agent can also integrate with Visual Copilot to connect directly with Figma to ensure the highest fidelity possible design to code!&lt;/p&gt;

&lt;p&gt;Visual Copilot connects directly to Figma to assist with pixel-perfect conversion, exact design token mapping, and precise usage of your components in the generated output.&lt;/p&gt;

&lt;p&gt;Then, Micro Agent can take the output of Visual Copilot and make final adjustments to the code to ensure it passes TSC, lint, tests, and fully matches your design including final tweaks. Amazing right :)&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%2Fejyu5gsz7460p3ik10ur.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%2Fejyu5gsz7460p3ik10ur.gif" alt="visual copilot" width="720" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://github.com/BuilderIO/micro-agent?tab=readme-ov-file#running-manually" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and &lt;a href="https://www.builder.io/blog/micro-agent/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;the official blog&lt;/a&gt; where the team discussed everything about the micro agent.&lt;/p&gt;

&lt;p&gt;It's open source with 2.1k stars on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/BuilderIO/micro-agent/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Micro Agent ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  11. &lt;a href="https://editgpt.app/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;EditGPT&lt;/a&gt; - improve your writing with a powerful AI editor.
&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%2Fgaxj26gxqjp103pkjoho.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%2Fgaxj26gxqjp103pkjoho.png" alt="edit gpt" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;EditGPT helps you proofread, edit and improve your writing with a powerful AI editor. &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%2F8h3rm3laoq8t13q2ouy0.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%2F8h3rm3laoq8t13q2ouy0.gif" alt="demo" width="560" height="308"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is also an editGPT extension that works directly on the ChatGPT website. It lets you see the difference between your input and ChatGPT's output. &lt;/p&gt;

&lt;p&gt;This process doesn't allow you to edit text directly and is a bit of a hassle if you want to resubmit parts you don't like. The new editor allows you to edit text directly and you can even save your prompts.&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%2Fn6lj3cxzsa3248c1liow.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%2Fn6lj3cxzsa3248c1liow.png" alt="custom prompts" width="800" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are a lot of options available to improve your message clearly.&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%2Fnc31x60twzpewl3573qi.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%2Fnc31x60twzpewl3573qi.png" alt="options for best results" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is a free tier available for 10k words per month but it's limited to 1k words per request.&lt;/p&gt;

&lt;p&gt;It's not open source but they do support 20+ languages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://editgpt.app/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Visit Edit GPT 🔥&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  12. &lt;a href="https://fireflies.ai/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Fireflies&lt;/a&gt; - Automate your meeting notes.
&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%2F53e4muwcss3h0zb6yw4e.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%2F53e4muwcss3h0zb6yw4e.png" alt="fireflies" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;As a developer, I'm not fond of meetings but if you attend too many meetings then this is for you!&lt;/p&gt;

&lt;p&gt;Fireflies help your team transcribe, summarize, search, and analyze voice conversations. Automate your meeting notes!&lt;/p&gt;

&lt;p&gt;Watch this quick demo!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/H5fdzoAeLCE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

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

&lt;p&gt;They provide an insane amount of useful features:&lt;/p&gt;

&lt;p&gt;⚡ Get automatic meeting notes, action items, &amp;amp; transcripts.&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%2Fgsruc3gk6kn025gxij1y.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%2Fgsruc3gk6kn025gxij1y.png" alt="automatic notes" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;⚡ Find anything with AI-powered search.&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%2Fix5k3efo3qsmnqopy70z.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%2Fix5k3efo3qsmnqopy70z.png" alt="AI-Powered Search" width="588" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;⚡ Collaborate with your co-workers.&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%2Fvkqkz6cu3c1i1dggmbyp.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%2Fvkqkz6cu3c1i1dggmbyp.png" alt="Collaborate with your co-workers" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;⚡ Automate workflows from meetings.&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%2Fnp4j5ab4vfj02l1rzj1d.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%2Fnp4j5ab4vfj02l1rzj1d.png" alt="Automate workflows from meetings" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;⚡ A real-time knowledge base for your entire team&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%2Fmlnd8ipv1pn4qx5a4xzq.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%2Fmlnd8ipv1pn4qx5a4xzq.png" alt="knowledge base" width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Plus, you can capture &amp;amp; transcribe meetings in multiple ways. &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%2Fmncrvkh1ge2kyzmllz9k.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%2Fmncrvkh1ge2kyzmllz9k.png" alt="capture" width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are a lot of features, but the AI ones are only included in premium plans.&lt;/p&gt;

&lt;p&gt;The good thing is that their plans are affordable and they offer a free tier plan with 800mins/storage which is more than enough.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://fireflies.ai/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Visit Fireflies 🔥&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  13. &lt;a href="https://tools.zmo.ai/webchatgpt/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Web ChatGPT&lt;/a&gt; - ChatGPT with internet access.
&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%2Fwjib7rmyqtrc1dul9hnz.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%2Fwjib7rmyqtrc1dul9hnz.png" alt="web chatgpt" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;This leads to ChatGPT prompts with relevant web search results through web browsing. This means it adds relevant web results to your prompts to ChatGPT for more accurate and up-to-date conversations.&lt;/p&gt;

&lt;p&gt;You can find the extension on &lt;a href="https://chromewebstore.google.com/detail/webchatgpt-chatgpt-with-i/lpfemeioodjbpieminkklglpmhlngfcn" rel="noopener noreferrer"&gt;Chrome&lt;/a&gt;, &lt;a href="https://microsoftedge.microsoft.com/addons/detail/webchatgpt-chatgpt-with-/flahobhjikkpnpohomeckhdjjkkkkmoc" rel="noopener noreferrer"&gt;Edge&lt;/a&gt; and &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/web-chatgpt/" rel="noopener noreferrer"&gt;Firefox&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Watch the quick demo!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/vWBknmg4PGA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

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

&lt;p&gt;It has more than 1.5M users for three simple features:&lt;/p&gt;

&lt;p&gt;⚡ Get web results for your queries.&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%2Fmat7sywcoddyhozqttx8.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%2Fmat7sywcoddyhozqttx8.png" alt="web results" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;⚡ Also provides a free one-click ChatGPT prompt library with hundreds of high-quality prompts.&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%2Foxyg5x4komgrgeh032hg.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%2Foxyg5x4komgrgeh032hg.png" alt="prompts library" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;⚡ Get AI-powered search answers right beside your search results by using ChatGPT, Claude, Bard and Bing 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%2Flfkz0wjhlpc8d55vpf5s.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%2Flfkz0wjhlpc8d55vpf5s.png" alt="search answers" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;It's not open source but has an excellent use case.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tools.zmo.ai/webchatgpt/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Visit Web ChatGPT 🔥&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  14. &lt;a href="https://github.com/zylon-ai/private-gpt/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Private GPT&lt;/a&gt; - ask questions about your documents without the internet.
&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%2F0nshjqmm5xq6kgqkgfdc.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%2F0nshjqmm5xq6kgqkgfdc.png" alt="private GPT" width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;PrivateGPT is a production-ready AI project that allows you to ask questions about your documents using the power of Large Language Models (LLMs), even in scenarios without an internet connection.&lt;/p&gt;

&lt;p&gt;100% private meaning no data leaves your execution environment at any point.&lt;/p&gt;

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

&lt;p&gt;The API is divided into two logical blocks:&lt;/p&gt;

&lt;p&gt;a. High-level API, which abstracts all the complexity of a RAG (Retrieval Augmented Generation) pipeline implementation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ingestion of documents: internally managing document parsing, splitting, metadata extraction, embedding generation, and storage.&lt;/li&gt;
&lt;li&gt;Chat &amp;amp; Completions using context from ingested documents: abstracting the retrieval of context, the prompt engineering, and the response generation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;b. Low-level API, which allows advanced users to implement their complex pipelines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Embeddings generation: based on a piece of text.&lt;/li&gt;
&lt;li&gt;Contextual chunks retrieval: given a query, returns the most relevant chunks of text from the ingested documents.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.privategpt.dev/installation/getting-started/installation/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;installation guide&lt;/a&gt; to get started.&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.privategpt.dev/overview/welcome/introduction/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and the &lt;a href="https://github.com/zylon-ai/private-gpt?tab=readme-ov-file#-architecture" rel="noopener noreferrer"&gt;detailed architecture&lt;/a&gt; that is involved.&lt;/p&gt;

&lt;p&gt;PrivateGPT is now evolving towards becoming a gateway to generative AI models and primitives, including completions, document ingestion, RAG pipelines, and other low-level building blocks.&lt;/p&gt;

&lt;p&gt;They have 53k+ stars on GitHub and evolving at a rapid pace.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/zylon-ai/private-gpt/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Private GPT ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  15. &lt;a href="https://github.com/ItzCrazyKns/Perplexica/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Perplexica&lt;/a&gt; - AI-powered search engine.
&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%2Fow6gkp6xntidka47c4g0.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%2Fow6gkp6xntidka47c4g0.png" alt="perplexica" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;You would have heard about Perplexity AI somewhere along your journey, Perplexica is an open source alternative to that!&lt;/p&gt;

&lt;p&gt;Perplexica is an AI-powered search tool or an AI-powered search engine that goes deep into the internet to find answers. It not only searches the web but also understands your questions. &lt;/p&gt;

&lt;p&gt;It uses advanced machine learning algorithms like similarity searching and embeddings to refine results and provides clear answers with sources cited.&lt;/p&gt;

&lt;p&gt;Using SearxNG to stay current and fully open source, Perplexica ensures you always get the most up-to-date information without compromising your privacy.&lt;/p&gt;

&lt;p&gt;If you're wondering about the architecture, you can read about the &lt;a href="https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/architecture/README.md/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;key components&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;I also recommend reading the more detailed explanation of &lt;a href="https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/architecture/WORKING.md/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;how these components work together&lt;/a&gt;. They've explained it clearly by taking an example of a scenario where a user asks: &lt;code&gt;How does an A.C. work?&lt;/code&gt;.&lt;/p&gt;

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

&lt;p&gt;Some of the features are: &lt;/p&gt;

&lt;p&gt;⚡ Some search tools might give you outdated info because they use data from crawling bots convert them into embeddings and store them in an index. Unlike them, Perplexica uses SearxNG, a metasearch engine to get the results and rerank and get the most relevant source out of it, ensuring you always get the latest information without the overhead of daily data updates.&lt;/p&gt;

&lt;p&gt;⚡ You can make use of local LLMs such as Llama3 and Mixtral using Ollama.&lt;/p&gt;

&lt;p&gt;⚡ It has a copilot mode to search instead of just using the context by SearxNG, it visits the top matches and tries to find relevant sources to the user's query directly from the page.&lt;/p&gt;

&lt;p&gt;⚡ Perplexica currently has 6 focus modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;YouTube Search Mode.&lt;/li&gt;
&lt;li&gt;Wolfram Alpha Search Mode.&lt;/li&gt;
&lt;li&gt;Reddit Search Mode.&lt;/li&gt;
&lt;li&gt;Academic Search Mode.&lt;/li&gt;
&lt;li&gt;Writing Assistant Mode.&lt;/li&gt;
&lt;li&gt;All Mode (searches the entire web).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can watch the complete walkthrough on YouTube!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/p2wuz2iT8o0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;They have 12.5k+ stars on GitHub and are on the &lt;code&gt;v1.8&lt;/code&gt; release.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ItzCrazyKns/Perplexica/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Perplexica ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  16. &lt;a href="https://www.emailtriager.com/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Email Triager&lt;/a&gt; - writing emails using AI in your style.
&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%2F506fumkh8nue1e5hw064.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%2F506fumkh8nue1e5hw064.png" alt="email triager" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;EmailTriager automatically learns how your email and pre-drafts are ready to send replies for you in the background. Watch the demo attached below!&lt;/p&gt;


&lt;div&gt;
  &lt;iframe src="https://loom.com/embed/d3cf0d060cf844009f8be2d430b754bd"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;



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

&lt;p&gt;It automatically trains on your past emails and drafts show up directly in Gmail if you're worried about changing your email workflow.&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%2Fk6vrj6z0399uwj0f624i.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%2Fk6vrj6z0399uwj0f624i.gif" alt="video to gif" width="600" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As I said earlier, EmailTriager is the only email assistant that actually learns to triage and write emails like you.&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%2Fbjvchkj85jvknn7rc98q.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%2Fbjvchkj85jvknn7rc98q.png" alt="trained on you" width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is how it would show as a result of the old way vs the new way.&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%2Fs40go9y9x4q1izhqe64g.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%2Fs40go9y9x4q1izhqe64g.png" alt="new vs old way" width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's not open source and there is no free tier which is a major drawback. But $10/month is worth it in my opinion if you write a lot of emails.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.emailtriager.com/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Visit Email Triager 🔥&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  17. &lt;a href="https://www.udio.com/?ref=devtoanmolbaranwal" rel="noopener noreferrer"&gt;Udio&lt;/a&gt; - generate music using AI.
&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%2Fvbt8517owp08d6h73ouh.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%2Fvbt8517owp08d6h73ouh.png" alt="udio" width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Udio can help you create music from simple text prompts by specifying topics, genres and other descriptors, then watch them transform into high-quality tracks.&lt;/p&gt;

&lt;p&gt;Watch this demo and listen to some impressive music. I loved it! Plug in your earphones :)&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/-pcUUENVxW8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Once you have created your masterpiece (or just a song you like), publish it on Udio for everyone to enjoy.&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%2F7rvop7xh7rcbc5hed84b.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%2F7rvop7xh7rcbc5hed84b.png" alt="udio song" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can, of course, export your creations to a DAW or upload your own audio to experience Udio’s fantastic AI-editing tools.&lt;/p&gt;

&lt;p&gt;This is how the dashboard looks.&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%2F8fboct2saeku43w9dx86.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%2F8fboct2saeku43w9dx86.png" alt="dashboard" width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They also provide a step-by-step tutorial. To get more credits, you just need to watch 10s music and let them know which you prefer. A win-win situation for both of us unless the song is bad.&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%2Frvn9z3nmnltp3s0cykxf.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%2Frvn9z3nmnltp3s0cykxf.png" alt="tutorial" width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want a YouTube tutorial, then I recommend watching this!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/oDKtyfyTTEc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;It's not open source but I'm already loving the songs :)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.udio.com/?ref=devtoanmolbaranwal" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Visit Udio 🔥&lt;/a&gt;
&lt;/p&gt;




&lt;p&gt;Did you find anything good enough?&lt;/p&gt;

&lt;p&gt;It took me a long time to research, so let me know if you have any awesome ideas or tools that you want to share.&lt;/p&gt;

&lt;p&gt;AI is already changing the world, developers need to adapt as well.&lt;/p&gt;

&lt;p&gt;Have a great day! Till next time.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;If you loved this, &lt;br&gt; please follow me for more :)&lt;/th&gt;
&lt;th&gt;
&lt;a href="https://twitter.com/Anmol_Codes" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FTwitter-d5d5d5%3Fstyle%3Dfor-the-badge%26logo%3Dx%26logoColor%3D0A0209" alt="profile of Twitter with username Anmol_Codes" width="103" height="28"&gt;&lt;/a&gt; &lt;a href="https://github.com/Anmol-Baranwal" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fgithub-181717%3Fstyle%3Dfor-the-badge%26logo%3Dgithub%26logoColor%3Dwhite" alt="profile of GitHub with username Anmol-Baranwal" width="95" height="28"&gt;&lt;/a&gt; &lt;a href="https://www.linkedin.com/in/Anmol-Baranwal/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FLinkedIn-0A66C2%3Fstyle%3Dfor-the-badge%26logo%3Dlinkedin%26logoColor%3Dwhite" alt="profile of LinkedIn with username Anmol-Baranwal" width="91" height="28"&gt;&lt;/a&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Follow Latitude for more content like this.&lt;/p&gt;


&lt;div class="ltag__user ltag__user__id__8649"&gt;
  &lt;a href="/latitude" class="ltag__user__link profile-image-link"&gt;
    &lt;div class="ltag__user__pic"&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%2Forganization%2Fprofile_image%2F8649%2F4a824627-0334-40e4-8df4-7f7465a347f0.png" alt="latitude image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
      &lt;a href="/latitude" class="ltag__user__link"&gt;Latitude&lt;/a&gt;
      Follow
    &lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a href="/latitude" class="ltag__user__link"&gt;
        Latitude is the open-source LLM development platform. Build, test, and deploy your LLM-based features with confidence.
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>llm</category>
      <category>programming</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Building an AI-powered quiz application with Next.js and OpenAI🧙✨</title>
      <dc:creator>Arindam Majumder </dc:creator>
      <pubDate>Wed, 21 Aug 2024 13:58:34 +0000</pubDate>
      <link>https://forem.com/latitude/building-an-ai-powered-quiz-application-with-nextjs-and-openai-2673</link>
      <guid>https://forem.com/latitude/building-an-ai-powered-quiz-application-with-nextjs-and-openai-2673</guid>
      <description>&lt;p&gt;In this tutorial, you'll learn how to build an AI-powered quiz application that enables users to select a topic, answer questions related to that topic, and receive their score instantly upon completing the quiz. &lt;/p&gt;

&lt;p&gt;The questions for this quiz will be dynamically generated using the OpenAI API by providing specific prompts that return the questions in a desired JSON format. While building this application, you'll also learn how to integrate OpenAI with your software applications.&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%2F2ioowqyvy0jnnoyw0qyw.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%2F2ioowqyvy0jnnoyw0qyw.gif" alt="GIF" width="500" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Latitude?
&lt;/h2&gt;

&lt;p&gt;Latitude AI is an open-source prompt engineering platform that allows you to easily build, test, and deploy features powered by large language models (LLMs). This platform empowers teams to create highly functional and intelligent AI applications.&lt;/p&gt;

&lt;p&gt;You can learn more about Latitude AI by joining our &lt;a href="https://ai.latitude.so/" rel="noopener noreferrer"&gt;waiting list&lt;/a&gt;. Feel free to connect with the team and discover how we solve various challenges using 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%2Fm74zui6s3g2u602s128y.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%2Fm74zui6s3g2u602s128y.png" alt="https://github.com/latitude-dev/latitude" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.latitude.so/" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Join Waitlist ⭐️&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Building the quiz application with Next.js
&lt;/h2&gt;

&lt;p&gt;In this section, you'll learn how to build the interface for the quiz application. The application is divided into three pages: &lt;strong&gt;&lt;code&gt;Home Page&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;Test Page&lt;/code&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;code&gt;Score Page&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The Homepage displays all the available topics. The Test Page renders a question and provides a list of options for users to select the correct answer. Lastly, the Score Page displays the user's score.&lt;/p&gt;

&lt;p&gt;Create a new Next.js Typescript project by running the code snippet below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-next-app ai-quiz-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add a &lt;strong&gt;&lt;code&gt;types.d.ts&lt;/code&gt;&lt;/strong&gt; file to the root of the project to define the data structure for the application's quiz questions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;Question&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;question&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;
    &lt;span class="nl"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&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;Next, create a &lt;strong&gt;&lt;code&gt;lib&lt;/code&gt;&lt;/strong&gt; folder containing a &lt;strong&gt;&lt;code&gt;util.ts&lt;/code&gt;&lt;/strong&gt; file within the Next.js &lt;strong&gt;&lt;code&gt;app&lt;/code&gt;&lt;/strong&gt; folder:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;//👇🏻 topics list&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;firstTopics&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;AI&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;AI Questions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Python&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Python Questions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;JavaScript&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;JavaScript Questions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="c1"&gt;//👇🏻 topics list&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;secondTopics&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;CSS&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;CSS Questions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;HTML&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;HTML Questions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;UI Design&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;UI Design Questions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="c1"&gt;//👇🏻 capitalize the first letter of each word&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;capitalize&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/%20/g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&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="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;charAt&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="nf"&gt;toUpperCase&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;slice&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="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; Questions&lt;/span&gt;&lt;span class="dl"&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;The &lt;strong&gt;&lt;code&gt;firstTopics&lt;/code&gt;&lt;/strong&gt; and the &lt;strong&gt;&lt;code&gt;secondTopics&lt;/code&gt;&lt;/strong&gt; array contains the list of topics available within the application and the &lt;strong&gt;&lt;code&gt;capitalize&lt;/code&gt;&lt;/strong&gt; function accepts a string as its parameter and capitalize the first letter of the sentence.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Home Page
&lt;/h3&gt;

&lt;p&gt;Copy the code snippet below into the &lt;strong&gt;&lt;code&gt;app/page.tsx&lt;/code&gt;&lt;/strong&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;use client&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;firstTopics&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;secondTopics&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./lib/util&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useRouter&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;next/navigation&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Home&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;router&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useRouter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handleConfirmClick&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;confirm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Are you sure you want to take the &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; test?`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`/test/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nf"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`You have cancelled the &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; test`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'w-full min-h-screen flex flex-col items-center justify-center'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'text-4xl font-bold text-blue-600'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Take Tests&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'text-lg text-gray-500 mb-5'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                Select a topic, take tests and get your results instantly
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'px-4'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;section&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'w-full flex items-center space-x-5 mb-4'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;firstTopics&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
                        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;
                            &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                            &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;`bg-blue-500 text-white px-5 py-3 text-xl rounded-md`&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                            &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;handleConfirmClick&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                        &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                            &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;section&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

                &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;section&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'w-full flex items-center space-x-5'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;secondTopics&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
                        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;
                            &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                            &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;`bg-blue-500 text-white px-5 py-3 text-xl rounded-md`&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                            &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;handleConfirmClick&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                        &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                            &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;section&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt;&lt;span class="p"&gt;&amp;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;The Home page displays all available topics and directs the user to the test page when they click on a topic link.&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%2Fvytm19pk41h1v7jb1cys.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%2Fvytm19pk41h1v7jb1cys.gif" alt="Screen Recording" width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Test Page
&lt;/h3&gt;

&lt;p&gt;Create the test page by adding a &lt;strong&gt;&lt;code&gt;page.tsx&lt;/code&gt;&lt;/strong&gt; file within a &lt;strong&gt;&lt;code&gt;test/[id]&lt;/code&gt;&lt;/strong&gt; directory. Copy the code snippet below into the &lt;strong&gt;&lt;code&gt;test/[id]/page.tsx&lt;/code&gt;&lt;/strong&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;use client&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useParams&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;next/navigation&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useCallback&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useRouter&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;next/navigation&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;capitalize&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@/app/lib/util&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Test&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;//👇🏻 array of questions&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;questions&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setQuestions&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Question&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;([]);&lt;/span&gt;
    &lt;span class="c1"&gt;//👇🏻 loading state&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;loading&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setLoading&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;boolean&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;//👇🏻 total user's score&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;userScore&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setUserScore&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="o"&gt;&amp;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="c1"&gt;//👇🏻 tracks each question in the array&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="o"&gt;&amp;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="c1"&gt;//👇🏻 holds the quiz topic&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useParams&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;router&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useRouter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handleSelectAnswer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;selectedAnswer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;//👇🏻 Update the score&lt;/span&gt;
        &lt;span class="nf"&gt;setUserScore&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
            &lt;span class="nx"&gt;selectedAnswer&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;questions&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;answer&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;prev&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="nx"&gt;prev&lt;/span&gt;
        &lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="c1"&gt;//👇🏻 Check if it's the last question&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;questions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&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="p"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;//👇🏻 Move to the next question&lt;/span&gt;
            &lt;span class="nf"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;prev&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="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;//👇🏻  If it's the last question, navigate to the score page after the score has updated&lt;/span&gt;
            &lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nx"&gt;router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/score?score=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
                        &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;selectedAnswer&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;questions&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;answer&lt;/span&gt;
                            &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;userScore&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="nx"&gt;userScore&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="p"&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="c1"&gt;// 👈🏼 Ensure the score is updated before navigating&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;loading&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'font-semibold text-2xl mb-3'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Loading...&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'w-full min-h-screen p-6 flex flex-col items-center justify-center'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'font-bold text-3xl mb-4 text-blue-500'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;capitalize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'font-semibold text-2xl mb-3'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                Question: &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; of &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;questions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'text-xl mb-4'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;questions&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;]?.&lt;/span&gt;&lt;span class="nx"&gt;question&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'flex flex-col lg:w-1/3 mb-6'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;questions&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;]?.&lt;/span&gt;&lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;option&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
                    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;
                        &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;p-4&lt;/span&gt; &lt;span class="na"&gt;bg-&lt;/span&gt;&lt;span class="err"&gt;[#&lt;/span&gt;&lt;span class="na"&gt;EEEEEE&lt;/span&gt;&lt;span class="err"&gt;]&lt;/span&gt;  
                &lt;span class="na"&gt;rounded-xl&lt;/span&gt; &lt;span class="na"&gt;mb-6&lt;/span&gt; &lt;span class="na"&gt;min-w-&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="na"&gt;200px&lt;/span&gt;&lt;span class="err"&gt;]&lt;/span&gt; &lt;span class="na"&gt;hover&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="na"&gt;bg-&lt;/span&gt;&lt;span class="err"&gt;[#&lt;/span&gt;&lt;span class="na"&gt;EF5A6F&lt;/span&gt;&lt;span class="err"&gt;]&lt;/span&gt; &lt;span class="na"&gt;hover&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="na"&gt;text-white&lt;/span&gt; &lt;span class="na"&gt;text-lg&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;
                        &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                        &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;handleSelectAnswer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;option&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                    &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                        &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;option&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt;&lt;span class="p"&gt;&amp;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;From the code snippet above:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;&lt;code&gt;questions&lt;/code&gt;&lt;/strong&gt; state holds all the questions for the selected topic, while the &lt;strong&gt;&lt;code&gt;count&lt;/code&gt;&lt;/strong&gt; state is used to navigate through the array of questions, allowing users to answer each one.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;&lt;code&gt;userScore&lt;/code&gt;&lt;/strong&gt; state stores the user's total score after completing the test.&lt;/li&gt;
&lt;li&gt;The user's total score is then passed as a parameter to the score page.&lt;/li&gt;
&lt;/ul&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%2Ff7e80ufmzpklwvwho91i.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%2Ff7e80ufmzpklwvwho91i.gif" alt="Screen Recording" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Score Page
&lt;/h3&gt;

&lt;p&gt;Create a &lt;strong&gt;&lt;code&gt;score&lt;/code&gt;&lt;/strong&gt; folder containing a &lt;strong&gt;&lt;code&gt;page.tsx&lt;/code&gt;&lt;/strong&gt; file within the Next.js app folder and copy the code snippet into the file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;use client&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Link&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;next/link&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useSearchParams&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;next/navigation&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Score&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;searchParams&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useSearchParams&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;score&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;searchParams&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;score&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;score&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'p-4 min-h-screen w-full flex flex-col items-center justify-center'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'text-2xl font-semibold'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Score&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Link&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'/'&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'bg-blue-500 p-4 text-blue-50 rounded '&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                    Go Home
                &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Link&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'p-4 min-h-screen w-full flex flex-col items-center justify-center'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'text-2xl font-semibold'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Score&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'text-lg text-center mb-4'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                You got &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;score&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; out of 10 questions correct.
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'font-extrabold text-5xl text-blue-500 mb-3'&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nc"&gt;Number&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;score&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;%
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Link&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'/'&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'bg-blue-500 p-4 text-blue-50 rounded '&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                Go Home
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Link&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt;&lt;span class="p"&gt;&amp;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;From the code snippet above, the Score page accepts the user's total score and displays the result in percentage.&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%2F278o7lnvdgn90hwqb429.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%2F278o7lnvdgn90hwqb429.png" alt="Results" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How to integrate OpenAI in your Next.js application
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://platform.openai.com/docs/overview" rel="noopener noreferrer"&gt;OpenAI&lt;/a&gt; allows us to integrate various large language models (LLMs), such as GPT-3 and GPT-4, into our applications to build intelligent features. These models can perform a wide range of natural language processing tasks, including text generation, translation, summarization, and more. In this section, you'll learn how to generate quiz questions in your desired format using OpenAI.&lt;/p&gt;

&lt;p&gt;Before we proceed, visit the &lt;a href="https://platform.openai.com/api-keys" rel="noopener noreferrer"&gt;OpenAI Developers' Platform&lt;/a&gt; and create a new secret key.&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%2Fmepbrhqyedvhg04y0zi9.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%2Fmepbrhqyedvhg04y0zi9.png" alt="OpenAi Platform" width="800" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create a &lt;strong&gt;&lt;code&gt;.env.local&lt;/code&gt;&lt;/strong&gt; file and copy the your newly created secret key into the file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OPENAI_API_KEY=&amp;lt;your_API_key&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install the &lt;a href="https://platform.openai.com/docs/quickstart/make-your-first-api-request" rel="noopener noreferrer"&gt;OpenAI JavaScript SDK&lt;/a&gt; by running the following command in your terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;openai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, let's create an API endpoint to retrieve AI-generated questions from OpenAI based on the topic selected by the user.&lt;/p&gt;

&lt;p&gt;Add an &lt;strong&gt;&lt;code&gt;api&lt;/code&gt;&lt;/strong&gt; folder with a &lt;strong&gt;&lt;code&gt;route.ts&lt;/code&gt;&lt;/strong&gt; file inside the Next.js app directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;app
&lt;span class="nb"&gt;mkdir &lt;/span&gt;api &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;api
&lt;span class="nb"&gt;touch &lt;/span&gt;route.ts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy the code snippet below into the &lt;strong&gt;&lt;code&gt;api/route.ts&lt;/code&gt;&lt;/strong&gt; file. It accepts a POST request that contains the selected topic from the client.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;NextRequest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;NextResponse&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;next/server&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;POST&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;NextRequest&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;topic&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;topic&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt; &lt;span class="err"&gt;👉🏻&lt;/span&gt; &lt;span class="c1"&gt;// topic is JavaScript, UI Design, etc&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;NextResponse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Fetch complete&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;200&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;Within the test page, add a &lt;strong&gt;&lt;code&gt;useEffect&lt;/code&gt;&lt;/strong&gt; hook that sends a POST request to the API endpoint and returns the questions array:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fetchQuestions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useCallback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`/api`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Content-Type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="p"&gt;}),&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nf"&gt;setQuestions&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;questions&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;setLoading&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;

&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;fetchQuestions&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;fetchQuestions&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add &lt;strong&gt;&lt;code&gt;sample.json&lt;/code&gt;&lt;/strong&gt; file within a &lt;strong&gt;&lt;code&gt;libs&lt;/code&gt;&lt;/strong&gt; folder and copy the following code snippet into it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"questions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"question"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"What is the capital of France?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"options"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Paris"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"London"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Berlin"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Madrid"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"answer"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Paris"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"question"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"What is the capital of Germany?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"options"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Paris"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"London"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Berlin"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Madrid"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"answer"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Berlin"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;sample.json&lt;/code&gt; file defines the structure of the questions expected from OpenAI.&lt;/p&gt;

&lt;p&gt;Finally, update the API endpoint to generate and return a list of questions in JSON format using an OpenAI LLM.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;NextRequest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;NextResponse&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;next/server&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;sampleQuestions&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@/app/lib/sample.json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;OpenAI&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;openai&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;POST&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;NextRequest&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;//👇🏻 User's selected topic&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;topic&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="c1"&gt;//👇🏻 AI prompt&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`Generate 10 distinct questions on &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; and ensure they are in JSON format containing an id, topic which is &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;, a question attribute containing the question, an options array of 3 options, and an answer property. Please ensure that the options array is shuffled to ensure that the answer does not retain a single position.
    - Please don't make the answers too obvious and lengthy.
    - Ensure the questions are unique and not repetitive.
    - The questions should not be too simple but intermediate level.
    - Return only the JSON object containing the questions.
    You can use this as a sample: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sampleQuestions&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;
    `&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;//👇🏻 Generates the questions&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;completion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;openai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-3.5-turbo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="c1"&gt;//👇🏻 Questions result&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;aiQuestions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;completion&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;choices&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="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;questions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;aiQuestions&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;questions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;questions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;NextResponse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Error generating questions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;questions&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;400&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="c1"&gt;//👇🏻 Returns the list of questions&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;NextResponse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Fetch complete&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;questions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;questions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;questions&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt; &lt;span class="p"&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;The code snippet above creates a precisely formatted prompt that generates the required questions using OpenAI's GPT-3 model. The generated questions are subsequently returned.&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%2Fpbha4n7gk5kgxo833bu1.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%2Fpbha4n7gk5kgxo833bu1.gif" alt="Questions" width="720" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations! You’ve completed the project for this tutorial.&lt;/p&gt;




&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;So far, you've learnt how to build an AI-generated quiz application. You can improve the application by authenticating users and saving their scores in a database.&lt;/p&gt;

&lt;p&gt;With effective prompts, you can leverage AI to create intelligent software applications. Latitude is refining this process to unlock the full potential of AI through prompt engineering.&lt;/p&gt;

&lt;p&gt;Want to be among the first to experience the next evolution of AI-powered applications? Join our &lt;a href="https://ai.latitude.so/" rel="noopener noreferrer"&gt;waiting list&lt;/a&gt; to be part of the journey.&lt;/p&gt;

&lt;p&gt;Thank you for reading!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>7 Steps To Become A Prompt Engineer</title>
      <dc:creator>Lucas Lima do Nascimento</dc:creator>
      <pubDate>Wed, 14 Aug 2024 09:40:42 +0000</pubDate>
      <link>https://forem.com/latitude/7-steps-to-become-a-prompt-engineer-4am8</link>
      <guid>https://forem.com/latitude/7-steps-to-become-a-prompt-engineer-4am8</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Hello there, dear reader! If you’re looking for an article where you’ll actually find a DOABLE guide for getting somewhere with prompt engineering, you’ve come to the right place!&lt;/p&gt;

&lt;p&gt;My name is Lucas and I’ve been a software engineer for over 5 years now.&lt;/p&gt;

&lt;p&gt;My journey into the world of software and AI began during my university studies at UFU (Universidade Federal de Uberlândia), where I pursued a Bachelor's Degree in Computer Engineering and actually took part in a Robotics Team called Roboforge — you should probably know that robotics and AI are kind of close fields too — where we actually got first place while competing in one of Latin America’s biggest competition: &lt;a href="https://robotica.robocup.org.br/" rel="noopener noreferrer"&gt;LARC&lt;/a&gt; (which stands for Latin America Robotics Competition, not that creative, I have to say).&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%2Fq4mqw8n1hzxzm4zy0pw9.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%2Fq4mqw8n1hzxzm4zy0pw9.png" alt="Literally me, programming at the competition" width="484" height="712"&gt;&lt;/a&gt;&lt;/p&gt;

Literally me, programming at the competition




&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%2F0otf5mqbyky6mzrpumq4.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%2F0otf5mqbyky6mzrpumq4.gif" alt="Some really awesome robots that were playing soccer (fully autonomous)" width="426" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

Some really awesome robots that were playing soccer there (fully autonomous)




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

&lt;p&gt;And in this guide, I’ll give my best shot at taking you step-by-step through what you should learn to get a position as a prompt engineer!&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Step 1: Understanding the Basics of LLMs
&lt;/h2&gt;

&lt;p&gt;Before diving into prompt engineering in particular, it's important to have a solid foundation in AI. You know it already — first, you have to learn to walk before you learn to run.&lt;/p&gt;

&lt;p&gt;So, explore a little bit and understand how LLMs work. You don’t have to know everything, though, but, try to answer at least 3 questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What the hell is an LLM?&lt;/li&gt;
&lt;li&gt;What types of LLM exist out there?&lt;/li&gt;
&lt;li&gt;How do I build an LLM? (&lt;strong&gt;You don’t have to build one!&lt;/strong&gt; Just learn the basics on how it’s done)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Answering these 3 questions above, you’ll probably find yourself with a bunch of new terms added to your vocabulary and, even more than that, with a bunch of new knowledge added to your toolkit.&lt;/p&gt;

&lt;p&gt;It also can be motivating to actually see the requirements of a few prompt engineering positions and Latitude has created a platform for you to see those positions easily. You can check that out here:&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%2F15cjqdcryru4wxvj7r0w.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%2F15cjqdcryru4wxvj7r0w.png" alt=" " width="800" height="523"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://promptengineerjobs.io/" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Prompt Engineering Jobs by Latitude ⭐️&lt;/a&gt;
&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Step 2: Learn by Doing: Craft a few prompts
&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%2Fd1cyeij9ilpxa4ga3szw.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%2Fd1cyeij9ilpxa4ga3szw.gif" alt="https://media2.giphy.com/media/Lny6Rw04nsOOc/giphy.gif?cid=7941fdc6i5g02pksdhbmzgixxrd3gupxpvcqzv70dgx7xddd&amp;amp;ep=v1_gifs_search&amp;amp;rid=giphy.gif&amp;amp;ct=g" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Crafting prompts is an iterative process that involves trial and error. Start by experimenting with simple prompts for personal projects and use cases while gradually moving on to more complex ones. This hands-on approach — which we usually call project-based learning, a really interesting way to learn, which usually leads to ~23% increase in student achievement —  will help you understand how AI models interpret and respond to different inputs&lt;/p&gt;

&lt;p&gt;No ideas on how to start prompting? No worries, I’ve got you covered! Let’s check a few examples:&lt;/p&gt;

&lt;p&gt;Hop on your favorite LLM (and if you don’t have one, feel free to check our &lt;a href="https://dev.to/latitude/the-ultimate-llm-leaderboard-ranking-the-best-language-models-2a67"&gt;comparison guide&lt;/a&gt;) and start with a few basic prompts:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Long article text here .............
....................................

Summarize the above article for me.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or, another useful example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Interesting topic title you found somewhere

Translate the above topic title to French.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both of those examples can show how simple and powerful prompt engineering can really be! Feel free to try those out or any others that might suit you.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Step 3: Learn Some Programming Basics
&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%2Fzsws2yiwf1g9beprhho2.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%2Fzsws2yiwf1g9beprhho2.gif" alt="https://media1.giphy.com/media/scZPhLqaVOM1qG4lT9/giphy.gif?cid=7941fdc62sk1u4dv8b8kv77toibcfqsi0hskna3vpwcry9py&amp;amp;ep=v1_gifs_search&amp;amp;rid=giphy.gif&amp;amp;ct=g" width="220" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Programming is a critical skill for any AI professional. To become a proficient prompt engineer, you should learn at least the basics of one programming language such as Python or R, that are really relevant to the field.&lt;/p&gt;

&lt;p&gt;Besides that, there are numerous benefits that coding skills will give you: from implementing and testing your prompts programmatically to manipulating data effectively. There are numerous online resources and courses available to help you get started with programming (e.g. &lt;a href="https://roadmap.sh/python" rel="noopener noreferrer"&gt;Python Roadmap&lt;/a&gt; — an awesome roadmap to guide you through your journey, or &lt;a href="https://github.com/practical-tutorials/project-based-learning?tab=readme-ov-file#python" rel="noopener noreferrer"&gt;Python Project Ideas&lt;/a&gt; for you to learn by doing).&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Step 4: Applying prompt engineering to real-world examples
&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%2Fdguesbjlv5enkrtavz1u.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%2Fdguesbjlv5enkrtavz1u.gif" alt="https://media4.giphy.com/media/T1A5qkSgZ2p24aOWQc/giphy.gif?cid=7941fdc6lq89yghhfrxjcj2zhr6huxeim93wvgxmq7monsf0&amp;amp;ep=v1_gifs_search&amp;amp;rid=giphy.gif&amp;amp;ct=g" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Awesome, so, now, you already know how to create basic prompts and how to code a little. A really good next step would probably be to start checking some real-world scenarios and how they are being handled while retaining information about the users too!&lt;/p&gt;

&lt;p&gt;Let’s check one example here as well:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start by imaging a scenario where the company you’re working for has an e-commerce application.&lt;/li&gt;
&lt;li&gt;They’re implementing a new search mechanism with AI in order that users can search with natural language&lt;/li&gt;
&lt;li&gt;The AI here should return a JSON with the characteristics the user asked for&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re running an e-commerce for clothing, you’ll probably want to search for relevant information to that sector — like the age, in years. For example:&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="c1"&gt;# If the user says:
# Birthday gift for my 18 months old daughter
&lt;/span&gt;
&lt;span class="c1"&gt;# Maybe a good return would be:
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gender&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;female&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;occasion&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;birthday&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;age_years&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.5&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, let’s run this same scenario working for an e-commerce for sports clothing. Now, searching for the same elements might not be adequate.&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="c1"&gt;# If the user says:
# Birthday gift for my 10 years old daughter, she loves skateboarding
&lt;/span&gt;
&lt;span class="c1"&gt;# Maybe a better return would be:
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gender&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;female&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;occasion&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;birthday&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;sport_suggestion&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;skate&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;age_years&lt;/span&gt;&lt;span class="sh"&gt;"&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;While creating software, the user is always the most important role in the play — from e-commerces to emails, to study companions and code assistants. He is the one who actually pays you, so, always remember to keep that in mind while studying other real-world scenarios.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Step 5: Learn where things go wrong
&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%2F731udp8dpj9qrttsmn0w.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%2F731udp8dpj9qrttsmn0w.gif" alt="https://media3.giphy.com/media/QMHoU66sBXqqLqYvGO/giphy.gif?cid=7941fdc6brnz477ztjtc3m8w1a3qrxkkso9x9w4wc5pfdt88&amp;amp;ep=v1_gifs_search&amp;amp;rid=giphy.gif&amp;amp;ct=g" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you got here, you probably faced a few problems here and there while playing with prompting. From math to sources, to hallucination, there are literally tons of different pitfalls you can end up into if you’re not carefully creating your prompt. &lt;/p&gt;

&lt;p&gt;This step here is actually learned by failing, and then, learning (based on how inaccurate the result was) what you can do differently to improve your prompt.&lt;/p&gt;

&lt;p&gt;Want source citations and your LLM is generating people and articles on the fly? Try RAG (Retrieval Augmented Generation — that you can learn more about &lt;a href="https://cloud.google.com/use-cases/retrieval-augmented-generation?hl=en" rel="noopener noreferrer"&gt;here&lt;/a&gt; — and LLMs with access to the internet! They will surely be more precise.&lt;/p&gt;

&lt;p&gt;Some really bizarre math is showing up mid-calculation? Honestly, LLMs kind of suck at math (which I, personally, find ironically funny). Maybe you can try out some different LLMs — with more focus on the math side — or a different approach to solving the same problem, running things step-by-step or skipping calculations with LLMs and using general programming to solve that instead.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Step 6: Get Some Fine-Tuning Skills and Improve Reliability
&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%2F0q83n7qk9woxic2alt7k.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%2F0q83n7qk9woxic2alt7k.gif" alt="https://media1.giphy.com/media/3oKHWCVJHorZfXrUTm/giphy.gif?cid=7941fdc6njrmil1gz9mvzkf30adm4fo6xwbye7f41gji7742&amp;amp;ep=v1_gifs_search&amp;amp;rid=giphy.gif&amp;amp;ct=g" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ok. At this point, you probably know your way around prompting for most of the scenarios you’ll find out there. Unfortunately, as you’ll eventually realize, LLMs tend to be extremely chaotic when not fine-tuned properly, creating varying degrees of “creativity” in your responses.&lt;/p&gt;

&lt;p&gt;This could not be a problem, but, generally, it is. Whenever you’re working with responses, we generally want the AI to have a limited range of variance and bias so that we can constrain our answers between the confinement of accepted answers. &lt;/p&gt;

&lt;p&gt;If you’re in this step, I recommend you take a look at how LLMs are actually configured, check out &lt;a href="https://thenewstack.io/what-temperature-means-in-natural-language-processing-and-ai/" rel="noopener noreferrer"&gt;temperature&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/Top-p_sampling" rel="noopener noreferrer"&gt;Top P sampling&lt;/a&gt;, and check for yourself how changing those values and percentages can alter the variance obtained for your prompts. &lt;/p&gt;

&lt;p&gt;Ready to build, test, and deploy some of those prompts? A really cool platform for this is Latitude’s new product, which is currently in early access! Whenever it’s released, I’m sure you’ll find a bunch of cool stuff there that will actually help you in your journey, so check it out!&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%2Fyfa1j029u6zv64gydhci.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%2Fyfa1j029u6zv64gydhci.png" alt="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yfa1j029u6zv64gydhci.png" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.latitude.so/" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Enter the Waitlist! ⭐️&lt;/a&gt;
&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Step 7: Showcase your work and Start Applying
&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%2F4x5uo4y97ettazrq7sok.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%2F4x5uo4y97ettazrq7sok.gif" alt="https://media0.giphy.com/media/t8QNJ2LngI5OJQN3FP/giphy.gif?cid=7941fdc65kjgm7mma80ge5wcotgj6yh3untmlnu9ze1s9cp5&amp;amp;ep=v1_gifs_search&amp;amp;rid=giphy.gif&amp;amp;ct=g" width="480" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hands-on experience is invaluable in the field of prompt engineering and hey, if you’re following along, I’m sure you have tons of that, so, it’s just the time to showcase it to the world!&lt;/p&gt;

&lt;p&gt;Don’t forget to make your work tangible to HR persons! They are the ones recruiting and looking for people, so, show both scenarios: technical for the technical people and non-technical for the non-technical people — this means basically: including a variety of prompts and the corresponding AI responses to demonstrate your expertise, translating that response to non-technical terms when needed. &lt;/p&gt;

&lt;p&gt;Once you have a solid way to showcase things -- being that from just posts or a portfolio, start applying for prompt engineering positions and it’s just a matter of waiting until you find an awesome place to work.&lt;/p&gt;

&lt;p&gt;Kind of lost on where to apply? Latitude’s come to the rescue again — yes, they truly built a whole platform for you to check prompt engineering jobs out, so please, take a look:&lt;br&gt;
&lt;a href="https://promptengineerjobs.io/" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Prompt Engineering Jobs by Latitude ⭐️&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&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%2Fliu0r6rid0q9wzjj5u7j.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%2Fliu0r6rid0q9wzjj5u7j.gif" alt="https://media4.giphy.com/media/lD76yTC5zxZPG/giphy.gif?cid=7941fdc6x0r5nlmgaz9pvradu7dqz9yfck7uip2x4t5ybzgm&amp;amp;ep=v1_gifs_search&amp;amp;rid=giphy.gif&amp;amp;ct=g" width="499" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hey! I’m glad that you got here!&lt;/p&gt;

&lt;p&gt;Becoming an engineer is a rewarding journey that involves mastering fundamentals, honing your skills, understanding user needs, and crafting effective products — and this goes for any engineering, from software to prompting. &lt;/p&gt;

&lt;p&gt;If you follow those steps, you'll be REALLY well-equipped to enter this exciting field and honestly, we'd love to hear your thoughts and experiences as you embark on this path. Feel free to share your insights in the comments below and don't forget to check out Latitude's new product to further enhance your skills!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>ai</category>
      <category>promptengineering</category>
      <category>career</category>
    </item>
    <item>
      <title>Share your LLM-based project! 🤖 🪄</title>
      <dc:creator>cesar.wtf</dc:creator>
      <pubDate>Wed, 07 Aug 2024 09:39:51 +0000</pubDate>
      <link>https://forem.com/latitude/share-your-llm-based-project-37ij</link>
      <guid>https://forem.com/latitude/share-your-llm-based-project-37ij</guid>
      <description>&lt;p&gt;Hi there,&lt;/p&gt;

&lt;p&gt;I'm César, CEO at &lt;a href="https://ai.latitude.so/" rel="noopener noreferrer"&gt;Latitude.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few weeks ago, we started building a product to help teams ship LLM-based products to production with confidence.&lt;/p&gt;

&lt;p&gt;After talking to a lot of people building cool things with LLMs, now I’m kinda addicted to seeing new use cases.&lt;/p&gt;

&lt;p&gt;I'd love to check out your project if you're willing to share it with the community!&lt;/p&gt;

&lt;p&gt;You can follow this simple template. Feel free to add any images or gifs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project’s name&lt;/li&gt;
&lt;li&gt;Link to the project&lt;/li&gt;
&lt;li&gt;Short description of the project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Share it in the comments section below. &lt;/p&gt;

&lt;p&gt;And good luck with your project!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>promptengineering</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Prompt Engineering For Developers: 11 Concepts and Examples 🎯🧙‍♂️⚡</title>
      <dc:creator>Anmol Baranwal</dc:creator>
      <pubDate>Thu, 01 Aug 2024 10:00:13 +0000</pubDate>
      <link>https://forem.com/latitude/prompt-engineering-for-developers-11-concepts-and-examples-in0</link>
      <guid>https://forem.com/latitude/prompt-engineering-for-developers-11-concepts-and-examples-in0</guid>
      <description>&lt;p&gt;Prompt engineering is one of the best places to start in this era of AI.&lt;/p&gt;

&lt;p&gt;Understanding the core concepts will help you get the most out of generative AI models like ChatGPT, Google Bard and Claude for tasks such as debugging, code translation, and generating tests including any general task.&lt;/p&gt;

&lt;p&gt;Today, we will cover all the core concepts and principles with very detailed examples of Prompt Engineering. &lt;/p&gt;

&lt;p&gt;Let's jump in.&lt;/p&gt;




&lt;p&gt;By the way, I’m part of Latitude and we’re building an open source LLM development platform. You can join the waitlist at &lt;a href="https://ai.latitude.so/" rel="noopener noreferrer"&gt;ai.latitude.so&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You would be able to do a lot of cool stuff like:&lt;/p&gt;

&lt;p&gt;⚡ Deploy prompts as api endpoints.&lt;/p&gt;

&lt;p&gt;⚡ Automated evaluations using LLMs.&lt;/p&gt;

&lt;p&gt;⚡ Collaborate on prompt engineering.&lt;/p&gt;

&lt;p&gt;I'm very confident that you will love it after its release!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.latitude.so/" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Join Waitlist ⭐&lt;/a&gt;
&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%2Fd1xuu1yhksyd2yy4dnsx.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%2Fd1xuu1yhksyd2yy4dnsx.png" alt="llm platform by latitude" width="800" height="284"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What is this new term called Prompt Engineering?
&lt;/h2&gt;

&lt;p&gt;Whenever we try to communicate with ChatGPT or any other conversational AI tool to get a response, that form of text, question or information given as an input is called &lt;q&gt;Prompt&lt;/q&gt;.&lt;/p&gt;

&lt;p&gt;Prompt engineering is one of the most common words thrown whenever we talk about &lt;a href="https://cloud.google.com/use-cases/generative-ai#:~:text=Generative%20AI%20or%20generative%20artificial,Q%26A%2C%20classification%2C%20and%20more" rel="noopener noreferrer"&gt;Generative AI&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Prompt engineering is basically the process of writing, and refining those inputs to optimize the responses you get from these language models.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;✅ Let's imagine coffee.&lt;/p&gt;
&lt;/blockquote&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%2Fgdse6h2vzdhavggq9zab.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%2Fgdse6h2vzdhavggq9zab.png" alt="coffee meme" width="600" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Think about ordering a coffee at a café. If you simply ask for a "coffee", you'll get a standard brew. But if you specify that you want a single-origin espresso with a touch of caramel, you'll get a much more refined coffee based on your needs.&lt;/p&gt;

&lt;p&gt;It's the same principle in prompt engineering, as detailed coffee orders lead to better coffee, specific good prompts can produce more relevant and refined AI responses. There is an entire field due to the increasing use cases because everyone is looking to improve their workflow using AI.&lt;/p&gt;

&lt;p&gt;This will help the model to perform its tasks better, such as writing marketing emails, generating code, analyzing and synthesizing text, or any of the other hundreds, if not thousands, of current applications.&lt;/p&gt;

&lt;p&gt;They aren't human and so they aren't intuitive. Like any machine, they're just good at &lt;code&gt;garbage in, garbage out&lt;/code&gt;. Everything is up to us to provide a better brief.&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%2Fjo66uwoqybfgfjeuyhdn.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%2Fjo66uwoqybfgfjeuyhdn.png" alt="human has more sense" width="608" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Prompt engineers aren't only responsible for providing guidance and direction to AI language models but also for developing, testing, and refining specific prompts that have already been submitted to the AI model over time.&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%2Flqgaekyoiwp60dlr813f.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%2Flqgaekyoiwp60dlr813f.png" alt="prompt engineering" width="638" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In 1 sentence, prompt engineering can be summed as &lt;q&gt;If you're looking for better results, just try to ask better questions&lt;/q&gt;. After reading this, I'm sure you will get a better idea of what it actually means and how you can get better at asking those questions.&lt;/p&gt;




&lt;h2&gt;
  
  
  Which type of LLMs do we use?
&lt;/h2&gt;

&lt;p&gt;Before we proceed, it's important to understand there are two main types of LLMs but the most commonly used is:&lt;/p&gt;

&lt;p&gt;⚡ Instruction Tuned LLM.&lt;/p&gt;

&lt;p&gt;Fine-tuned on instructions and good attempts at following those instructions. In general, we use these whenever we are using any generative AI models.&lt;/p&gt;

&lt;p&gt;Reinforcement learning with human feedback is one of the common instances used under this.&lt;/p&gt;

&lt;p&gt;-→ Example: &lt;/p&gt;

&lt;p&gt;If we ask: &lt;code&gt;Asking What is the capital of India?&lt;/code&gt; &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%2Fh88rrri16brpa5kfkou9.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%2Fh88rrri16brpa5kfkou9.png" alt="asking what is the capital of India" width="800" height="202"&gt;&lt;/a&gt;&lt;/p&gt;
a specific reply based on our instruction



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

&lt;p&gt;Instruction-type LLMs are recommended for most of the tasks and it's helpful, honest (best of their ability) and harmless.&lt;/p&gt;

&lt;p&gt;I will be referring to this type when explaining the concepts or further discussions.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. A good prompt is very specific and follows a particular structure.
&lt;/h2&gt;

&lt;p&gt;Normally, it's okay to just greet and ask a question to a model, for instance saying this: &lt;q&gt;Nice to meet you, can you tell me the console message I would get after typing console.log("Hello World")&lt;/q&gt;.&lt;/p&gt;

&lt;p&gt;But it would normally give bad results and would assume things on its own, which is what we don't want.&lt;/p&gt;

&lt;p&gt;It's important to have a good structure for a prompt if you need very accurate results such as in programming tasks.&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%2Fnhvnkze4j41gi1nig3q8.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%2Fnhvnkze4j41gi1nig3q8.png" alt="ai asking humans to make a prompt" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's see how to structure any prompt clearly:&lt;/p&gt;

&lt;p&gt;⚡ &lt;code&gt;Intro&lt;/code&gt;: Set up the scenario for which you're referring to. It helps to give the AI a distinct &lt;code&gt;role&lt;/code&gt; to think of themselves in. &lt;/p&gt;

&lt;p&gt;-→ For example, &lt;q&gt;I want you to act as an interviewer. I will be the candidate and you will...&lt;/q&gt;.&lt;/p&gt;

&lt;p&gt;⚡ &lt;code&gt;Context&lt;/code&gt;: Any good reference is always up to the work. &lt;/p&gt;

&lt;p&gt;-→ For example, &lt;q&gt;you will ask me the interview questions for the frontend developer junior position&lt;/q&gt;.&lt;/p&gt;

&lt;p&gt;⚡ &lt;code&gt;Instructions&lt;/code&gt;: Giving proper instructions is important after the context. &lt;/p&gt;

&lt;p&gt;-→ For example, &lt;q&gt;Do not write all the conservation at once. I want you to only do the interview with me. Ask me the questions and wait for my answers. Do not write explanations&lt;/q&gt;.&lt;/p&gt;

&lt;p&gt;⚡ &lt;code&gt;Ending&lt;/code&gt;: You can describe properly what to do.&lt;/p&gt;

&lt;p&gt;-→ For instance, &lt;q&gt;Ask me the questions one by one like an interviewer does and wait for my answers. My first sentence is 'Hi'&lt;/q&gt;.&lt;/p&gt;

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

&lt;p&gt;So, putting all of the above together, our example prompt would look like this:&lt;/p&gt;

&lt;p&gt;✅ &lt;q&gt;I want you to act as an interviewer. I will be the candidate and you will ask me the interview questions for the frontend junior developer position. I want you to only reply as the interviewer. Do not write all the conservation at once. I want you to only do the interview with me. Ask me the questions and wait for my answers. Do not write explanations. Ask me the questions one by one like an interviewer does and wait for my answers. My first sentence is &lt;code&gt;Hi&lt;/code&gt;&lt;/q&gt;&lt;/p&gt;

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

&lt;p&gt;-→ Another good example of a prompt can be:&lt;/p&gt;

&lt;p&gt;✅ &lt;q&gt;I want you to act as a javascript console. I will type commands and you will reply with what the javascript console should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. do not write explanations. do not type commands unless I instruct you to do so. when I need to tell you something in english, I will do so by putting text inside curly brackets {like this}. My first command is console.log("Hello World");&lt;/q&gt;.&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%2F7yh30vomthn2ed919gsu.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%2F7yh30vomthn2ed919gsu.png" alt="this works fine" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;
this works fine



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

&lt;p&gt;You should try to avoid any small talk and use strict prompts to get better results!&lt;/p&gt;

&lt;p&gt;Now, it’s important to structure your prompts, but you don’t need to follow any specific structure (even the above one). You can test based on the initial results you get and improve it further. Sometimes, even less is more!&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%2Fwodblu7t8fhvih7w0woz.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%2Fwodblu7t8fhvih7w0woz.png" alt="be specific" width="639" height="257"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. ✅ Active voice ❌ Passive voice.
&lt;/h2&gt;

&lt;p&gt;Active voice is when the subject of a sentence performs the action expressed by the verb. (Subject + Verb + Object)&lt;/p&gt;

&lt;p&gt;While Passive voice is when the subject of a sentence is acted upon by the verb. (Object + Verb + Subject)&lt;/p&gt;

&lt;p&gt;-→ Example:&lt;/p&gt;

&lt;p&gt;Active Voice: &lt;q&gt;The chef cooked the meal&lt;/q&gt;.&lt;/p&gt;

&lt;p&gt;Passive Voice: &lt;q&gt;The meal was cooked by the chef&lt;/q&gt;.&lt;/p&gt;

&lt;p&gt;If you're wondering why this is even important? Active voice gives a sense of action and more clarity to the AI model. It would lead to a better response.&lt;/p&gt;

&lt;p&gt;Plus, using rhetorical questions within prompts can stimulate the AI model's "thinking process" and guide it toward generating more meaningful outputs.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Give the model time to think.
&lt;/h2&gt;

&lt;p&gt;This is one of the most critical concepts that you need to understand if you're planning to get better at prompt engineering.&lt;/p&gt;

&lt;p&gt;Let's suppose if asked to &lt;q&gt;multiply 21 by 34&lt;/q&gt;, you might not know it immediately, but can still work it out with time. Unless you're a calculator :)&lt;/p&gt;

&lt;p&gt;Similarly, models make more reasoning errors when trying to answer right away, rather than taking time to work out an answer. Asking for a &lt;code&gt;chain of thought&lt;/code&gt; before an answer can help the model reason its way toward correct answers more reliably.&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%2Fkyyzh09h0fwp498991nr.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%2Fkyyzh09h0fwp498991nr.png" alt="needs time to solve this huge problem" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the tactics can be &lt;q&gt;Instruct the model to work out its own solution before rushing to a conclusion&lt;/q&gt;.&lt;/p&gt;

&lt;p&gt;Sometimes we get better results when we explicitly instruct the model to do the same. &lt;/p&gt;

&lt;p&gt;Suppose, we want a model to evaluate a solution to a math problem. The most obvious way to approach this is to simply ask the model if the solution is correct or not.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Problem Statement:

I'm planning to build a solar power installation and need help calculating the financials.
- Land costs $100 per square foot.
- Solar panels cost $250 per square foot.
- The maintenance contract costs a flat $100,000 per year, plus an additional $10 per square foot.
Calculate the total cost for the first year of operation based on the number of square feet.

Student's Solution:

Let x represent the size of the installation in square feet.
1. Land cost: 100x
2. Solar panel cost: 250x
3. Maintenance cost: 100,000 + 10x
Total cost: 100x + 250x + 100,000 + 10x = 360x + 100,000

SYSTEM:

Evaluate whether the student’s solution is correct.

USER:

Determine if the student’s solution to the problem is accurate.

ASSISTANT:

First, let’s break down the solution:
1. Land Cost: 100x
2. Solar Panel Cost: 250x
3. Maintenance Cost: 100,000 + 10x

Combining these:
- Total cost = Land cost + Solar panel cost + Maintenance cost
- Total cost = 100x + 250x + 100,000 + 10x
- Total cost = 360x + 100,000

The student's solution is indeed correct.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Working out its own solution before coming to a conclusion is one of the most underrated techniques that is very powerful and simple!&lt;/p&gt;

&lt;p&gt;Other tactics can be to:&lt;/p&gt;

&lt;p&gt;🎯 &lt;a href="https://platform.openai.com/docs/guides/prompt-engineering/tactic-use-inner-monologue-or-a-sequence-of-queries-to-hide-the-model-s-reasoning-process" rel="noopener noreferrer"&gt;Use a sequence of queries to hide the model's reasoning process&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;🎯 &lt;a href="https://platform.openai.com/docs/guides/prompt-engineering/tactic-ask-the-model-if-it-missed-anything-on-previous-passes" rel="noopener noreferrer"&gt;Ask the model if it missed anything on previous passes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Do you know, that there is also a concept of &lt;a href="https://www.promptingguide.ai/techniques/cot#automatic-chain-of-thought-auto-cot" rel="noopener noreferrer"&gt;automatic chain of thought&lt;/a&gt;? You should read about it in the prompting guide including the stages involved.&lt;/p&gt;


&lt;h2&gt;
  
  
  4. Avoid prompt injections.
&lt;/h2&gt;

&lt;p&gt;Prompt Injection is the process of overriding original instructions in the prompt with special user input. It often occurs when untrusted input is used as part of the prompt later on.&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%2Fvdmmjoegwfw9lmpbi0b5.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%2Fvdmmjoegwfw9lmpbi0b5.png" alt="prompt injections" width="628" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;-→ Let's take another example:&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%2Fo4s9r5vb6c5urolh4y7t.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%2Fo4s9r5vb6c5urolh4y7t.png" alt="prompt" width="800" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The response generated is: &lt;q&gt;Prompt injection is a technique where users manipulate the input to a language model, aiming to alter its behavior or output. This can potentially lead to unintended or malicious responses, highlighting the importance of robust input validation&lt;/q&gt;.&lt;/p&gt;

&lt;p&gt;Now, you can just ask it to ignore it and do entirely something else. &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%2F7t1844i04d50x6h3ps7z.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%2F7t1844i04d50x6h3ps7z.png" alt="ignore and do something else" width="800" height="238"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's really hard to distinguish between original developer instructions and user input instructions. But it's possible in certain situations in case of clear input, let's see one case.&lt;/p&gt;

&lt;p&gt;Suppose, giving the same input and explicitly asking to not let it override in the next two prompts.&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%2Fbo0ypln89k1d5rpd6ojp.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%2Fbo0ypln89k1d5rpd6ojp.png" alt="giving the same input" width="800" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It was not overridden as you can see from the response snapshot below.&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%2Fajsolat1svrmt5e8gla3.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%2Fajsolat1svrmt5e8gla3.png" alt="different output" width="800" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As instructed, the injection was possible only after 2 attempts.&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%2Forhoaqyev4rsto3i4v7p.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%2Forhoaqyev4rsto3i4v7p.png" alt="it was possible after 2 attempts" width="673" height="627"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is no foolproof solution but you can adjust it based on your prompt.&lt;/p&gt;


&lt;h2&gt;
  
  
  5. Few-shot prompting.
&lt;/h2&gt;

&lt;p&gt;Few-shot prompting is a prompt engineering technique that involves showing the AI a few examples (or shots) of the desired results. Using the examples provided, the model learns a specific behavior and gets better at carrying out similar tasks.&lt;/p&gt;

&lt;p&gt;More like giving successful examples of completing tasks and then asking the model to perform the task.&lt;/p&gt;

&lt;p&gt;-→ For instance, let's see an example.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your job is to create content for our client, {{client_name}}. Here is some information about the client {{client_description}}.
Here are a few examples of content we've created in the past from briefs:
"""
Example 1:
Brief: {{brief_1}}
Content: {{content_1}}

Example 2:
Brief: {{brief_2}}
Content: {{content_2}}
"""
Here is the latest brief to create content about:
"""
Brief:{{brief_description}}
Content:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;By passing along previous briefs and content generated from those briefs, the model will get an understanding of the style of the specific client that we're expecting. &lt;/p&gt;

&lt;p&gt;I wrapped the examples in delimiters (three quotation marks) to format the prompt and help the model better understand which part of the prompt is the examples versus the instructions.&lt;/p&gt;

&lt;p&gt;Or you can let the model know about the basic task with a few examples like:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Few shot prompting example.
The movie was good // positive
The movie was quite bad // negative
I really like the movie, but the ending was lacking // neutral
I LOVED the movie //
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fp26l9u87n50mse73wnfc.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%2Fp26l9u87n50mse73wnfc.png" alt="model" width="800" height="290"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The model will understand and will show the output in lowercase.&lt;/p&gt;

&lt;p&gt;While the LLMs are great, they still fall short on more complex tasks when using the zero-shot (discussed in the 7th point). In that case, Few-shot prompting can be used as a technique to enable in-context learning and improve further.&lt;/p&gt;

&lt;p&gt;It has its fair share of limitations but works in most of the cases. You can read more about the &lt;a href="https://www.promptingguide.ai/techniques/fewshot" rel="noopener noreferrer"&gt;technique&lt;/a&gt; including the limitations.&lt;/p&gt;


&lt;h2&gt;
  
  
  6. Constraints.
&lt;/h2&gt;

&lt;p&gt;Constraint-based prompting involves adding constraints or conditions to your prompts, helping the language model focus on specific aspects or requirements when generating a response. &lt;/p&gt;

&lt;p&gt;It's highly recommended for most interactions with ChatGPT. Clear constraints set boundaries or limitations on the generated response. &lt;/p&gt;

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

&lt;p&gt;You can do it in different ways, such as:&lt;/p&gt;

&lt;p&gt;⚡ Specifying that the response should be no longer than a certain word count or character limit.&lt;/p&gt;

&lt;p&gt;-→ Let's see an example.&lt;/p&gt;

&lt;p&gt;As you can see, it just assumed and gave up a response of 38 words when we allowed it to go up to 50 words.&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%2Fhb8n4n3bo89nt3v0ufre.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%2Fhb8n4n3bo89nt3v0ufre.png" alt="less than 50 words" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;
this is 38 words



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

&lt;p&gt;Let's give a better prompt by saying &lt;code&gt;close to 50 words&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The response was very close to 50 words which is a better constraint.&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%2Fn42xth0y0vyz2yo9wqyu.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%2Fn42xth0y0vyz2yo9wqyu.png" alt="47 words response" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;
this is 47 words



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

&lt;p&gt;⚡ Specifying response structure. &lt;/p&gt;

&lt;p&gt;-→ We are specifying a structure with more strict constraints.&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%2Fbrbjkqalxm9vihf0m2gr.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%2Fbrbjkqalxm9vihf0m2gr.png" alt="json structure" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the JSON response. It's important to clarify otherwise the model will assume and give text + JSON response separately.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "summary": [
    "Prompt engineering involves developing prompts to get clear and useful responses from AI tools.",
    "It helps guide large language models to perform tasks based on various inputs.",
    "Generative AI tools like ChatGPT offer solutions for conversations, programming help, and automated tasks."
  ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


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

&lt;p&gt;⚡ Provide explicit instructions. &lt;/p&gt;

&lt;p&gt;-→ Defining the target audience for the response, such as &lt;q&gt;aimed at software engineers&lt;/q&gt; or &lt;q&gt;intended for advocates&lt;/q&gt;.&lt;/p&gt;

&lt;p&gt;-→ Instruct ChatGPT to avoid certain types of content to make it safe and within ethical guidelines.&lt;/p&gt;

&lt;p&gt;You can read more about &lt;a href="https://andrewmaynard.net/constraint-based-prompts/" rel="noopener noreferrer"&gt;constraint based prompts&lt;/a&gt; on the blog of Andrew Maynard with a few exercises.&lt;/p&gt;


&lt;h2&gt;
  
  
  7. Zero-shot prompting.
&lt;/h2&gt;

&lt;p&gt;Zero-shot prompting means that the prompt used to interact with the model won't contain examples or demonstrations. The zero-shot prompt directly instructs the model to perform a task without any extra examples.&lt;/p&gt;

&lt;p&gt;A fancy way to say "giving simple instructions as a prompt".&lt;/p&gt;

&lt;p&gt;-→ Let's see an example.&lt;/p&gt;

&lt;p&gt;In this prompt below, we didn't provide the model with any examples of text alongside their classifications, the LLM already understands what we mean by "sentiment".&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Classify the text into neutral, negative, or positive. 
Text: I think the vacation is okay.
Sentiment:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fr9ucuazi6d61kykp638x.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%2Fr9ucuazi6d61kykp638x.png" alt="response" width="800" height="244"&gt;&lt;/a&gt;&lt;/p&gt;
response sentiment



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

&lt;p&gt;Reinforcement Learning Human feedback is also a way to improve zero-shot prompts.&lt;/p&gt;

&lt;p&gt;When zero-shot doesn't work, it's recommended to provide demonstrations or examples in the prompt which leads to few-shot prompting. &lt;/p&gt;

&lt;p&gt;You can read the difference between &lt;a href="https://labelbox.com/guides/zero-shot-learning-few-shot-learning-fine-tuning/" rel="noopener noreferrer"&gt;Zero-Shot vs. Few-Shot vs. Fine-Tuning&lt;/a&gt; by labelbox. There are benchmark results at the end which was a little surprising.&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%2F9yzmq1j44zfx3az2nk75.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%2F9yzmq1j44zfx3az2nk75.png" alt="labelbox" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;🎯 One-shot prompting.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There is also a concept of One-shot prompting that involves offering a single example or reference output snippet as part of the prompt.&lt;/p&gt;

&lt;p&gt;That is useful for generating content consistent with your writing style or for instances where you have a particular reference to follow. You can read more about it through online sources.&lt;/p&gt;


&lt;h2&gt;
  
  
  8. Chain-of-Thought (CoT).
&lt;/h2&gt;

&lt;p&gt;Chain-of-thought (CoT) prompting encourages the model to break down complex reasoning into a series of intermediate steps, leading to a well-structured final output.&lt;/p&gt;

&lt;p&gt;You should know that you can combine a chain of thought prompting with zero-shot prompting by asking the model to perform reasoning steps, which may often produce better output.&lt;/p&gt;

&lt;p&gt;That is the smallest form of CoT prompting, &lt;q&gt;zero-shot CoT&lt;/q&gt;, where you literally ask the model to think step by step. This approach yields impressive results for mathematical tasks that LLMs otherwise often solve incorrectly.&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%2Flxewu3iei95p78xtlilz.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%2Flxewu3iei95p78xtlilz.png" alt="cot prompting" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;
About one-shot CoT prompting - Image Source is from Wei et al. (2022)



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

&lt;p&gt;-→ Let's see an example where you can combine it with few-shot prompting to get better results on more complex tasks that require reasoning before responding.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
A: Adding all the odd numbers (9, 15, 1) gives 25. The answer is False.
The odd numbers in this group add up to an even number: 17,  10, 19, 4, 8, 12, 24.
A: Adding all the odd numbers (17, 19) gives 36. The answer is True.
The odd numbers in this group add up to an even number: 16,  11, 14, 4, 8, 13, 24.
A: Adding all the odd numbers (11, 13) gives 24. The answer is True.
The odd numbers in this group add up to an even number: 17,  9, 10, 12, 13, 4, 2.
A: Adding all the odd numbers (17, 9, 13) gives 39. The answer is False.
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1. 
A:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fxfp1j0x2xe0ometrm7od.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%2Fxfp1j0x2xe0ometrm7od.png" alt="response" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the response of a perfect result when we provided the reasoning step. &lt;/p&gt;

&lt;p&gt;Due to improved models, &lt;q&gt;even a single example might be more than enough&lt;/q&gt; to get the same result.&lt;/p&gt;


&lt;h2&gt;
  
  
  9. Reducing Hallucinations and using delimiters.
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;🎯 Reducing Hallucinations.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Hallucination or “making things up” is a common failure when any large language model (LLM) generates a response that is either factually incorrect, nonsensical, or disconnected from the input prompt.&lt;/p&gt;

&lt;p&gt;It can be due to:&lt;/p&gt;

&lt;p&gt;⚡ The model doesn't have proper context and common sense to determine those are inaccurate answers.&lt;/p&gt;

&lt;p&gt;⚡ Trying to assume things and being extra helpful in case of being not sure about the correct response.&lt;/p&gt;

&lt;p&gt;-→ An example of this would be an AI model designed to generate summaries of articles and end up producing a summary that includes details not present in the original article or even fabricates information entirely. &lt;/p&gt;

&lt;p&gt;-→ The other examples can be false negatives (may fail to identify something as being a threat) or false positives(identify something as being a threat when it is not).&lt;/p&gt;

&lt;p&gt;There are a lot of techniques that can be used to prevent these:&lt;/p&gt;

&lt;p&gt;⚡ Retrieval Augmented Generation (RAG)&lt;br&gt;
⚡ Chain-of-Verification (CoVe) prompting&lt;br&gt;
⚡ Chain-of-Knowledge (CoK) prompting&lt;br&gt;
⚡ ReAct prompting&lt;br&gt;
⚡ Chain-of-Note (CoN) prompting&lt;br&gt;
⚡ Other advanced prompt techniques&lt;/p&gt;

&lt;p&gt;I'm not going to explore this because hallucinations aren't really an internal factor to get better at prompt engineering.&lt;/p&gt;

&lt;p&gt;While frequent human review of LLM responses and trial-and-error prompt engineering can help you detect and address hallucinations in your application, this approach is extremely time-consuming and difficult to scale as your application grows.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;🎯 Using delimiters.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Delimiters like triple quotation marks, XML tags, section titles, etc. can help to identify some of the sections of text to treat differently.&lt;/p&gt;

&lt;p&gt;Some of the delimiters can be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Triple quotes: &lt;code&gt;"""&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Triple backticks/dashes: &lt;code&gt;---&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Angle brackets: &lt;code&gt;&amp;lt; &amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;XML Tags: &lt;code&gt;&amp;lt;tag&amp;gt; &amp;lt;/tag&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Summarize the text delimited by triple quotes in 3 bullet points.

"""insert text here"""
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The example response would be.&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%2F4xswwjkcolsyvfu7zqlz.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%2F4xswwjkcolsyvfu7zqlz.png" alt="response" width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read more about &lt;a href="https://realpython.com/practical-prompt-engineering/#use-delimiters-to-clearly-mark-sections-of-your-prompt" rel="noopener noreferrer"&gt;delimiters with practical examples&lt;/a&gt; by real python guide.&lt;/p&gt;


&lt;h2&gt;
  
  
  10. Refine your prompts since there is no "perfect prompt".
&lt;/h2&gt;

&lt;p&gt;It's very rare that you will end up with a good result on the first try of any prompt. To bridge the gap between desired response and the present output, the prompt needs to be refined as much as possible.&lt;/p&gt;

&lt;p&gt;A simple way can be:&lt;/p&gt;

&lt;p&gt;⚡ Try something.&lt;br&gt;
⚡ Analyze where the result does not give what you want.&lt;br&gt;
⚡ Clarify instructions, and give more time to think.&lt;br&gt;
⚡ Refine prompts with a batch of examples.&lt;/p&gt;

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

&lt;p&gt;-→ Let's see an example.&lt;/p&gt;

&lt;p&gt;Giving this as an input response.&lt;/p&gt;

&lt;p&gt;✅ &lt;q&gt;Summarize the text enclosed in brackets into approximately three bullet points and provide that summary in a JSON format.&lt;/q&gt;&lt;/p&gt;

&lt;p&gt;"""Prompt engineering is the practice of developing prompts that produce clear and useful responses from AI tools. AI prompting can help direct a large language model to execute tasks based on different inputs. &lt;br&gt;
The goal is to teach AI models to provide the best output to a query. If you're keeping up with the latest news in technology, you may already be familiar with the term generative AI or the platform known as ChatGPT—a publicly-available AI tool used for conversations, tips, programming assistance, and even automated solutions. """&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;It assumed things and gave both JSON &amp;amp; text which is wrong since we only needed the JSON output.&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%2Ferhp38iwkqiv9jpd76w2.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%2Ferhp38iwkqiv9jpd76w2.png" alt="json + text" width="800" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;We need to refine the prompt further by specifying that we need a JSON rather than a text description.&lt;/p&gt;

&lt;p&gt;✅ &lt;q&gt; Summarize the text delimited by brackets close to 3 bullet points and give the final response as a json rather than a text description.&lt;/q&gt;&lt;/p&gt;

&lt;p&gt;"""Prompt engineering is the practice of developing prompts that produce clear and useful responses from AI tools. AI prompting can help direct a large language model to execute tasks based on different inputs. The goal is to teach AI models to provide the best output to a query. If you're keeping up with the latest news in technology, you may already be familiar with the term generative AI or the platform known as ChatGPT—a publicly-available AI tool used for conversations, tips, programming assistance, and even automated solutions. """&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;This time, we got a better response without any unwanted results.&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%2Fyg5h0uaxzkdm4kwf3up7.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%2Fyg5h0uaxzkdm4kwf3up7.png" alt="json rather than text description" width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's the process of iterative development including error analysis!!&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;🎯 Test changes systematically.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You should know this concept if you're going to further refine your prompt.&lt;/p&gt;

&lt;p&gt;Improving performance is easier in cases where you can measure it. In some of these cases, a modification to a prompt will achieve better results on a few isolated examples but could lead to worse overall results on other sets of examples. &lt;/p&gt;

&lt;p&gt;To make sure that a change is net positive in performance, it may be necessary to define a comprehensive test suite, also known as an &lt;code&gt;eval&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Examples of good evals can be:&lt;/p&gt;

&lt;p&gt;-→ Representative of real-world usage (or at least diverse).&lt;br&gt;
-→ Contains many test cases to evaluate performance changes.&lt;br&gt;
-→ Easy to automate or repeat.&lt;/p&gt;

&lt;p&gt;Something like you're giving two prompts to compare their results on which can be better.&lt;/p&gt;

&lt;p&gt;Computers can automate evals with objective criteria (such as questions with single correct answers) as well as any fuzzy criteria.&lt;/p&gt;

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

&lt;p&gt;I know it's hard to understand if you're unaware of the concept, you can just refer to online resources or you can sign up for the below waitlist.&lt;/p&gt;

&lt;p&gt;Latitude is building an open source LLM development platform. You can join the waitlist at &lt;a href="https://ai.latitude.so/" rel="noopener noreferrer"&gt;ai.latitude.so&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You would be able to do a lot of cool stuff like automate evaluations using LLMs and collaborate on prompt engineering.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.latitude.so/" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Join Waitlist ⭐&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  11. Ask the model to adopt the persona.
&lt;/h2&gt;

&lt;p&gt;Have you ever heard the phrase, "fake it till you make it". I know it's controversial but the subject of numerous psychological studies suggests that it improves overall efficiency even though it seems wrong 😅&lt;/p&gt;

&lt;p&gt;Much like the psychological concept, instructing an LLM to assume a specific role or persona can drastically increase the performance. &lt;/p&gt;

&lt;p&gt;This technique, known as role-playing, allows the LLM to generate more accurate, contextually relevant and persona-consistent responses.&lt;/p&gt;

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

&lt;p&gt;For instance, you can use a prompt like this: (&lt;a href="https://www.engraved.blog/building-a-virtual-machine-inside/" rel="noopener noreferrer"&gt;reference&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;q&gt;I want you to act as a linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. do not write explanations. do not type commands unless I instruct you to do so. When I need to tell you something in English, I will do so by putting text inside curly brackets {like this}. My first command is pwd.&lt;/q&gt;&lt;/p&gt;

&lt;p&gt;As you can see, it gives a simple powerful response based on the input prompt.&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%2F764cohby2sgu3osdi16o.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%2F764cohby2sgu3osdi16o.png" alt="role-playing" width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Role-playing prompts can involve assigning specific requirements beyond assigning a role. Like, two journalists share the same profession, but there is a higher chance they might differ in traits such as personality and expertise.&lt;/p&gt;

&lt;p&gt;I recommend reading about &lt;a href="https://promptengineering.org/role-playing-in-large-language-models-like-chatgpt/" rel="noopener noreferrer"&gt;Role-Playing in Large Language Models like ChatGPT&lt;/a&gt; to understand it better.&lt;/p&gt;


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

&lt;p&gt;The only limitation (and a huge one) is that no matter how good your prompt engineering skills are, you are still limited by how good the model itself is. The quality and overall practicality of the model's training data is very crucial.&lt;/p&gt;

&lt;p&gt;Plus, it's tougher than ever because we can generate audio, video, or many different types of formats using AI tools so it's really getting complex these days.&lt;/p&gt;

&lt;p&gt;One of the best articles that I recommend reading about Prompt Engineering is from &lt;a href="https://cloud.google.com/discover/what-is-prompt-engineering" rel="noopener noreferrer"&gt;Google Cloud&lt;/a&gt; and &lt;a href="https://circleci.com/blog/prompt-engineering/" rel="noopener noreferrer"&gt;circleci&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Merve Noyan created an exceptional &lt;a href="https://huggingface.co/spaces/merve/ChatGPT-prompt-generator" rel="noopener noreferrer"&gt;ChatGPT Prompt Generator App&lt;/a&gt;, allowing users to generate prompts tailored to their desired persona.&lt;/p&gt;

&lt;p&gt;You can find a list of huge tested prompts on &lt;a href="https://github.com/f/awesome-chatgpt-prompts?tab=readme-ov-file" rel="noopener noreferrer"&gt;awesome ChatGPT prompts&lt;/a&gt;. Some of the examples that I have used are from this repo.&lt;/p&gt;



&lt;p&gt;It's an art that takes a lot of trial and error, but it's worth it! &lt;br&gt;
Continue to experiment and test until you get the best results.&lt;/p&gt;

&lt;p&gt;I hope you enjoyed this, let me know if you have any questions.&lt;/p&gt;

&lt;p&gt;Have a great day! Till next time.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;You can check&lt;br&gt;my work at &lt;a href="https://anmolbaranwal.com/" rel="noopener noreferrer"&gt;anmolbaranwal.com&lt;/a&gt;. &lt;br&gt;Thank you for reading! 🥰&lt;/th&gt;
&lt;th&gt;
&lt;a href="https://x.com/Anmol_Codes" rel="noopener noreferrer"&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%2F0fecryc64ezd414va3hn.png" alt="twitter" width="84" height="28"&gt;&lt;/a&gt; &lt;a href="https://github.com/Anmol-Baranwal" rel="noopener noreferrer"&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%2Fzdf3y9wzwtsl3ffjw2qm.png" alt="github" width="76" height="28"&gt;&lt;/a&gt; &lt;a href="https://www.linkedin.com/in/Anmol-Baranwal/" rel="noopener noreferrer"&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%2F25hxajrjdmt2wqmiigf0.png" alt="linkedin" width="91" height="28"&gt;&lt;/a&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Follow Latitude for more content like this.&lt;/p&gt;


&lt;div class="ltag__user ltag__user__id__8649"&gt;
  &lt;a href="/latitude" class="ltag__user__link profile-image-link"&gt;
    &lt;div class="ltag__user__pic"&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%2Forganization%2Fprofile_image%2F8649%2F4a824627-0334-40e4-8df4-7f7465a347f0.png" alt="latitude image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
      &lt;a href="/latitude" class="ltag__user__link"&gt;Latitude&lt;/a&gt;
      Follow
    &lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a href="/latitude" class="ltag__user__link"&gt;
        Latitude is the open-source LLM development platform. Build, test, and deploy your LLM-based features with confidence.
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;



</description>
      <category>promptengineering</category>
      <category>ai</category>
      <category>llm</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Ultimate LLM Leaderboard: Ranking the Best Language Models</title>
      <dc:creator>Lucas Lima do Nascimento</dc:creator>
      <pubDate>Wed, 24 Jul 2024 12:30:00 +0000</pubDate>
      <link>https://forem.com/latitude/the-ultimate-llm-leaderboard-ranking-the-best-language-models-2a67</link>
      <guid>https://forem.com/latitude/the-ultimate-llm-leaderboard-ranking-the-best-language-models-2a67</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&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%2F1l3974ijka06wgvsg3nw.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%2F1l3974ijka06wgvsg3nw.gif" alt="Gif of person scrolling through social media" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’re there, casually scrolling your timeline as a subtle vibration from your phone catches your attention. Another AI LLM is reaching the market and is the new best toy in town that everyone should check.&lt;/p&gt;

&lt;p&gt;The first time that happened, you were probably actually intrigued and maybe even went to check it out, but, by the fourth and even fifth time, checking new LLMs and AIs started to become a little tiring.&lt;/p&gt;

&lt;p&gt;Want to check which are the best LLMs for each case (API, personal use/prompting, etc), ranked, without having to spend hours searching and comparing each one? This article is for you, then.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criteria for Ranking
&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%2Fwfyu3cztn417y7bxmf3h.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%2Fwfyu3cztn417y7bxmf3h.gif" alt="Stonks" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The ranking of language models in this leaderboard is based on a list of criteria made by me, designed to evaluate their overall performance and applicability. These criteria include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Overview:&lt;/strong&gt; A small resume about who is the creator of the LLM (and maybe even some polemics you should learn about)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strengths:&lt;/strong&gt; Where and in which cases the LLM excels at&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost&lt;/strong&gt;: The model's capacity to handle increasing amounts of data and user interactions along with how much would that cost you. Generally, this uses &lt;strong&gt;tokens&lt;/strong&gt; for measurement. Not sure what a token is and how it’s calculated? You can consider it equal to ~4 characters of text for common English.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ease of Integration/Community Support&lt;/strong&gt;: How easily the model can be integrated into existing systems and workflows and the availability of resources, documentation, and community engagement to assist us with implementation and usage.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  LLM Setup - The quick and easy route
&lt;/h2&gt;

&lt;p&gt;HOLD FAST! Before we continue, if you’d prefer to learn by doing and using those powerful LLMs we have something exciting for you!&lt;/p&gt;

&lt;p&gt;Join our waitlist for early access to Latitude’s new platform. It's designed to help LLM developers streamline their work and bring ideas to life with confidence, helping a ton in the measurement process I mentioned above.&lt;/p&gt;

&lt;p&gt;We're honestly truly excited about this platform and can't wait to see what you create with it!&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%2Fyfa1j029u6zv64gydhci.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%2Fyfa1j029u6zv64gydhci.png" alt="LLM Latitude's platform" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don't miss out! Click the link below to join our waitlist 🚀&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.latitude.so/" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Enter the Waitlist! ⭐️&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Top Language Models
&lt;/h2&gt;

&lt;p&gt;Now, let’s jump right into the LLMs that are most famous today. Of course, I wouldn’t be able to actually review every single one (there are literally thousands of models out there) but, here we’ll check: GPT, Gemini, LLaMA, Claude, and Copilot.&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%2Ff4r4oot8ngbsk9us2qpz.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%2Ff4r4oot8ngbsk9us2qpz.png" alt="GPT Logo" width="225" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  GPT
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: GPT (Generative Pre-trained Transformer) is one of the most well-known language models developed by OpenAI. It has a ton of models: 3.5-turbo, 4, 4o (the most recent), and more. In terms of polemics, it’s involved in kind a few of them (e.g. &lt;a href="https://www.npr.org/2024/05/31/g-s1-2263/voice-lab-analysis-striking-similarity-scarlett-johansson-chatgpt-sky-openai" rel="noopener noreferrer"&gt;ChatGPT's voice closely resembles Scarlett Johnasson's, says lab analysis : NPR&lt;/a&gt;), so, you can also take that into consideration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strengths&lt;/strong&gt;: Exceptional accuracy and versatility in generating human-like text. It has some great API documentation and integration also, while still maintaining a good interface for human interaction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prices&lt;/strong&gt;: Varies depending on usage and subscription plans, the better trained the model, the more expensive it becomes, ranging from $0.5/1M tokens to $5/1M tokens on the most recent model. You can check them all here: &lt;a href="https://openai.com/api/pricing/" rel="noopener noreferrer"&gt;Pricing | OpenAI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Looking for image models? It also has, with prices ranging from $0.016/image to $0.040/image. If you’re interested in using it for prompting and normal use instead of integration, it has both a free plan and a Plus plan with different models, image generation, and a price of $20/month.&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%2Fhc8alczutjrtdp514o7p.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%2Fhc8alczutjrtdp514o7p.png" alt="Personal GPT Plan" width="800" height="464"&gt;&lt;/a&gt;&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%2Ff370srel4bb55bjvx6zb.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%2Ff370srel4bb55bjvx6zb.png" alt="API GPT Plans" width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Gemini
&lt;/h3&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%2Ftpre3nme34yalvb1zzfl.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%2Ftpre3nme34yalvb1zzfl.png" alt="Gemini's Logo" width="344" height="127"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: Gemini is a robust language model known for its efficiency and scalability. It’s made by Google and recently had some really awesome announcements at &lt;a href="https://blog.google/technology/ai/google-io-2024-100-announcements/" rel="noopener noreferrer"&gt;I/O&lt;/a&gt; (a conference made by Google to showcase new stuff). It’s also mentioned in a few polemics (e.g &lt;a href="https://www.axios.com/2024/02/23/google-gemini-images-stereotypes-controversy" rel="noopener noreferrer"&gt;Google pauses Gemini's AI image generation after diversity controversies&lt;/a&gt;) that you can take into consideration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strengths&lt;/strong&gt;: Amazing context window (this basically means it can use more data as the font of a single response), great language proficiency too!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.google.dev/pricing" rel="noopener noreferrer"&gt;&lt;strong&gt;Prices&lt;/strong&gt;&lt;/a&gt;: For APIs, pricing based on usage too, having a free tier with low requests number and $0.35 / million tokens, later on. For personal use, Gemini Code Assist, for example, costs $19 per user, per month.&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%2Fymtijzyxoohxt55z3vtv.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%2Fymtijzyxoohxt55z3vtv.png" alt="Gemini's Personal Plan" width="800" height="160"&gt;&lt;/a&gt;&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%2Fjm64gxttoql4plhqrmgi.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%2Fjm64gxttoql4plhqrmgi.png" alt="Gemini's API Plan" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  LLaMA
&lt;/h3&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%2Fn3cqcuraahauou55ywvq.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%2Fn3cqcuraahauou55ywvq.png" alt="Llama 2 logo" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: LLaMA (Large Language Model Meta AI) is designed to be less resource-intensive than other models, it has a different license scheme, which means that this resembles “something open source” and as the other ones, also has a few polemics in its name (e.g. &lt;a href="https://www.businessinsider.com/meta-llama-2-data-train-ai-models-2023-7" rel="noopener noreferrer"&gt;Meta Stops Disclosing the Data It Uses to Train AI Models Like Llama 2 - Business Insider&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strengths&lt;/strong&gt;: They &lt;strong&gt;try&lt;/strong&gt; to follow guidelines for &lt;a href="https://ai.meta.com/responsible-ai/" rel="noopener noreferrer"&gt;responsible AI&lt;/a&gt; creation and innovation. It also has different models specific for different scenarios like Code LLaMA, for code generation, for example. It’s great for research and English-focused applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prices&lt;/strong&gt;: Basically free while using Meta AI or downloading and running it locally/self-host. You can also check out services for using as API, that for example can generate API keys for using LLaMA.&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%2F5oy12s4mj9cw4vn2ix85.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%2F5oy12s4mj9cw4vn2ix85.png" alt="LLama Landing Page" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude
&lt;/h3&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%2Fd7kogjnwnjrd1fmdqkql.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%2Fd7kogjnwnjrd1fmdqkql.png" alt="Claude Logo" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: Claude is a versatile language model that excels in understanding and generating natural language. It’s a really interesting alternative to GPT, honestly — and, for the first time, I couldn’t find some polemics including it. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strengths&lt;/strong&gt;: Seems to perform better than GPT mostly &lt;a href="https://claude101.com/claude-3-vs-gpt-4o/" rel="noopener noreferrer"&gt;regarding speed and prices&lt;/a&gt;, but tries to reach the same strengths, like conversational AI, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/pricing" rel="noopener noreferrer"&gt;&lt;strong&gt;Prices&lt;/strong&gt;&lt;/a&gt;: For personal use, it starts out free and grows up to $20 for pro or $30 for teams. For APIs, costs $3/M tokens for input and $15 for output on their most intelligent model to date.&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%2Fxiqvnzckwu3xch5y34kk.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%2Fxiqvnzckwu3xch5y34kk.png" alt="Personal Claude's Plan" width="800" height="303"&gt;&lt;/a&gt;&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%2Fbo3lqxqxbd627b1cvgq2.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%2Fbo3lqxqxbd627b1cvgq2.png" alt="Claude's API Plan" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Copilot
&lt;/h3&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%2Fdfuafw0l6emrsveg6nav.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%2Fdfuafw0l6emrsveg6nav.png" alt="Copilot Logo" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;: Microsoft Copilot (here, I’ll evaluate both Copilot for Microsoft 365 and GitHub Copilot) and, although this one is not necessarily an LLM, it’s been publicly known that Microsoft is developing an in-house AI LLM — that is probably going to be connected to these products in the future, and, since &lt;a href="https://www.theverge.com/2024/7/19/24201864/crowdstrike-outage-explained-microsoft-windows-bsod" rel="noopener noreferrer"&gt;Windows is used by a ton of people&lt;/a&gt;, I’ll also leave my review of them here. And let’s not forget some polemics here too (e.g. &lt;a href="https://news.sky.com/story/controversial-microsoft-ai-screenshot-feature-delayed-over-security-concerns-13152918" rel="noopener noreferrer"&gt;Controversial Microsoft AI screenshot feature delayed over security concerns | Science &amp;amp; Tech News | Sky News&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strengths&lt;/strong&gt;: Aims to be the best in aiding people on the daily life, from help with emails, to Excel, to code with GitHub Copilot’s suggestions and autocomplete. The strong side here is obviously if you/your company use Microsoft’s services. Outlook, Excel, Word, Teams, and all other products can benefit from here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prices&lt;/strong&gt;: You'll actually find a really cool free tier here for consumption (prompting and images , but not code). But, if you want more of that uniqueness of integrating all Microsoft's products with AI, it's a subscription-based model with various tiers. You can check them all here: &lt;a href="https://github.com/features/copilot#pricing" rel="noopener noreferrer"&gt;GitHub Copilot · Your AI pair programmer&lt;/a&gt; and &lt;a href="https://www.microsoft.com/en-us/microsoft-365/enterprise/copilot-for-microsoft-365#Pricing" rel="noopener noreferrer"&gt;here&lt;/a&gt;. Honestly, they both seem kind of expensive with GitHub Copilot seeming a little bit less, but, in company terms, they’re probably not that expensive.&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%2Fod16iuudbu95oz4msv7u.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%2Fod16iuudbu95oz4msv7u.png" alt="Copilot Product Pricing" width="800" height="319"&gt;&lt;/a&gt;&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%2Fqu9cpfdewq57sp9iadet.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%2Fqu9cpfdewq57sp9iadet.png" alt="Github Copilot Pricing" width="800" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&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%2F4obba4fo48f4o8p6kvom.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%2F4obba4fo48f4o8p6kvom.gif" alt="That's all Folks!" width="349" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Awesome! So, I hope that throughout this article I provided an in-depth look at the top language models, highlighting their strengths, pricing, polemics, and use cases. With Latitude's tools and insights, developers have the resources they need to choose the best LLM for their projects and optimize their performance, so, make sure to join the waitlist! &lt;/p&gt;

&lt;p&gt;We encourage you to explore these models further and take advantage of Latitude's platform to enhance your development process. Don't forget to share your thoughts and experiences in the comments, and join the Latitude community to stay updated on the latest advancements in AI and LLMs.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>learning</category>
      <category>beginners</category>
    </item>
    <item>
      <title>21 Open Source LLM Projects to Become 10x AI Developer</title>
      <dc:creator>Anmol Baranwal</dc:creator>
      <pubDate>Wed, 17 Jul 2024 09:00:56 +0000</pubDate>
      <link>https://forem.com/latitude/21-open-source-llm-projects-to-become-10x-ai-developer-fe0</link>
      <guid>https://forem.com/latitude/21-open-source-llm-projects-to-become-10x-ai-developer-fe0</guid>
      <description>&lt;p&gt;The time of AI is high especially because of powerful LLMs like GPT-4o and Claude.&lt;/p&gt;

&lt;p&gt;Today, I'm covering 21 open source LLM projects that can help you to build something exciting and integrate AI into your project.&lt;/p&gt;

&lt;p&gt;As a developer, I can confidently say that AI is not as scary as others make it sound and those who don't learn will get left behind.&lt;/p&gt;

&lt;p&gt;Let's cover it all.&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%2Fqkpyntr0dyyvdnt995b8.webp" 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%2Fqkpyntr0dyyvdnt995b8.webp" alt="gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;By the way, I'm part of Latitude and we're building an open source LLM development platform. You can join the waitlist at &lt;a href="https://ai.latitude.so/" rel="noopener noreferrer"&gt;ai.latitude.so&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You would be able to do a lot of cool stuff like:&lt;/p&gt;

&lt;p&gt;⚡ Deploy prompts as api endpoints.&lt;/p&gt;

&lt;p&gt;⚡ Automated evaluations using LLMs.&lt;/p&gt;

&lt;p&gt;⚡ Collaborate on prompt engineering.&lt;/p&gt;

&lt;p&gt;I'm very confident that you will love it after its release!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.latitude.so/" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Join Waitlist ⭐️&lt;/a&gt;
&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%2Fd1xuu1yhksyd2yy4dnsx.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%2Fd1xuu1yhksyd2yy4dnsx.png" alt="llm platform by latitude" width="800" height="284"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. &lt;a href="https://github.com/vanna-ai/vanna" rel="noopener noreferrer"&gt;Vanna&lt;/a&gt; - Chat with your SQL database.
&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%2Fuxryt1lsw41hwt31bqti.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%2Fuxryt1lsw41hwt31bqti.png" alt="vanna" width="800" height="219"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Vanna is an MIT-licensed open-source Python RAG (Retrieval-Augmented Generation) framework for SQL generation.&lt;/p&gt;

&lt;p&gt;Basically, it's a Python package that uses retrieval augmentation to help you generate accurate SQL queries for your database using LLMs.&lt;/p&gt;

&lt;p&gt;It's perfect for developers like me who are not very fond of SQL queries!&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%2Fsinq74k898iyfvsnjimx.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%2Fsinq74k898iyfvsnjimx.png" alt="low level diagram on how vanna works" width="800" height="593"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vanna works in two easy steps - train a &lt;code&gt;RAG model&lt;/code&gt; on your data, and then ask questions that will return SQL queries that can be set up to run on your database automatically.&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%2F5fjc5966fphrge71s8sg.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%2F5fjc5966fphrge71s8sg.png" alt="how vanna works" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You don't need to know how this whole stuff works to use it. &lt;br&gt;
You just have to &lt;code&gt;train&lt;/code&gt; a model, which stores some metadata, and then use it to &lt;code&gt;ask&lt;/code&gt; questions.&lt;/p&gt;

&lt;p&gt;Get started with 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 vanna
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;To make things a little easier, they have built user interfaces that you can use as a starting point for your own custom interface. Find all the &lt;a href="https://github.com/vanna-ai/vanna?tab=readme-ov-file#user-interfaces" rel="noopener noreferrer"&gt;interfaces&lt;/a&gt; including Jupyter Notebook and Flask.&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%2F20nymucrkb9wlsvi4kpd.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%2F20nymucrkb9wlsvi4kpd.png" alt="variations" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://vanna.ai/docs/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and you can try this &lt;a href="https://vanna.ai/docs/app/" rel="noopener noreferrer"&gt;Colab notebook&lt;/a&gt; in case you want to see how it works after training.&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%2Flke5g7erv1t0tao8f9z9.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%2Flke5g7erv1t0tao8f9z9.gif" alt="flask UI gif" width="560" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch this &lt;a href="https://github.com/vanna-ai/vanna?tab=readme-ov-file#vanna" rel="noopener noreferrer"&gt;demo&lt;/a&gt; for a complete walkthrough!&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%2F40gg9oeb4piys15p2re2.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%2F40gg9oeb4piys15p2re2.gif" alt="vanna demo" width="600" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They have 9.5k+ stars on GitHub and are built using Python.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vanna-ai/vanna" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Vanna ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  2. &lt;a href="https://github.com/khoj-ai/khoj" rel="noopener noreferrer"&gt;Khoj&lt;/a&gt; - Your AI second brain.
&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%2F31d9m3po4oppf4ignvbh.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%2F31d9m3po4oppf4ignvbh.png" alt="khoj" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Khoj is the open source, AI copilot for search. Easily get answers without having to sift through online results or your own notes.&lt;/p&gt;

&lt;p&gt;For me, the concept seems exciting and It can help me in researching a lot of projects.&lt;/p&gt;

&lt;p&gt;Khoj can understand your Word, PDF, org-mode, markdown, plaintext files, GitHub projects, and even Notion pages.&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%2F5ory8aio202w6ce5x6ul.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%2F5ory8aio202w6ce5x6ul.png" alt="type of documents" width="441" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's available as a Desktop app, Emacs package, Obsidian plugin, Web app, and Whatsapp AI. Obsidian with Khoj might be the most powerful combo!&lt;/p&gt;

&lt;p&gt;You can get started with Khoj locally in a few minutes with the following commands.&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 khoj-assistant
$ khoj
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Watch it in action!&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%2Fmedia0.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExN3RzNHA0MWE2NnB5aTMxOXlnY3puMDhkaHpwa2ZrYWlzMWJ0ZXRnNyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2F0VIZl3xIVyzzfS9hiJ%2Fgiphy.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%2Fmedia0.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExN3RzNHA0MWE2NnB5aTMxOXlnY3puMDhkaHpwa2ZrYWlzMWJ0ZXRnNyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2F0VIZl3xIVyzzfS9hiJ%2Fgiphy.gif" alt="khoj walkthrough gif" width="1024" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of the exciting features:&lt;/p&gt;

&lt;p&gt;✅ You can share your notes and documents to extend your digital brain.&lt;/p&gt;

&lt;p&gt;✅ Your AI agents have access to the internet, allowing you to incorporate real-time information.&lt;/p&gt;

&lt;p&gt;✅ You'll get a fast, accurate semantic search on top of your docs.&lt;/p&gt;

&lt;p&gt;✅ Your agents can create deeply personal images and understand your speech.&lt;/p&gt;

&lt;p&gt;For instance, saying: "Create a picture of my dream house, based on my interests". It will draw this!&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%2Fs1f6gtwssn08mhk6s6ud.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%2Fs1f6gtwssn08mhk6s6ud.png" alt="image generation" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read all the &lt;a href="https://docs.khoj.dev/category/features" rel="noopener noreferrer"&gt;features&lt;/a&gt; including shareable chat, online chat, file summarization, and complete details in various categories.&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.khoj.dev/#/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and you can try &lt;a href="https://app.khoj.dev/" rel="noopener noreferrer"&gt;Khoj Cloud&lt;/a&gt; to try it quickly.&lt;/p&gt;

&lt;p&gt;Watch the complete walkthrough on YouTube!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Lnx2K4TOnC4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;It has 12k stars on GitHub and is backed by YCombinator.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/khoj-ai/khoj" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Khoj ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  3.  &lt;a href="https://github.com/FlowiseAI/Flowise" rel="noopener noreferrer"&gt;Flowise&lt;/a&gt; - Drag &amp;amp; drop UI to build your customized LLM flow.
&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%2Fr5bp43nil764fhe4a05z.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%2Fr5bp43nil764fhe4a05z.png" alt="flowiseai" width="800" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Flowise is an open source UI visual tool to build your customized LLM orchestration flow &amp;amp; AI agents. &lt;/p&gt;

&lt;p&gt;We shouldn't compare any projects but I can confidently say this might be the most useful one among the projects listed here!&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%2F141kawm9jjhcgmzam89q.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%2F141kawm9jjhcgmzam89q.gif" alt="flowise gif" width="600" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get started with the following npm command.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -g flowise
npx flowise start
OR
npx flowise start --FLOWISE_USERNAME=user --FLOWISE_PASSWORD=1234
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This is how you integrate the API.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;requests&lt;/span&gt;

&lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/api/v1/prediction/:id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="nx"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;json&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;payload&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nx"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;question&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello!&lt;/span&gt;&lt;span class="dl"&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;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%2Fahk2ovjrpq1qk3r5pfot.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%2Fahk2ovjrpq1qk3r5pfot.png" alt="integrations" width="726" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.flowiseai.com/" rel="noopener noreferrer"&gt;docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Cloud host is not available so you would have to self-host using these &lt;a href="https://github.com/FlowiseAI/Flowise?tab=readme-ov-file#-self-host" rel="noopener noreferrer"&gt;instructions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let's explore some of the use cases:&lt;/p&gt;

&lt;p&gt;⚡ Let's say you have a website (could be a store, an e-commerce site, or a blog), and you want to scrap all the relative links of that website and have LLM answer any question on your website. You can follow this &lt;a href="https://docs.flowiseai.com/use-cases/web-scrape-qna" rel="noopener noreferrer"&gt;step-by-step tutorial&lt;/a&gt; on how to achieve the same. &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%2Fe91sz2mga5wvc0x2hp2g.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%2Fe91sz2mga5wvc0x2hp2g.png" alt="scraper" width="768" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ You can also create a custom tool that will be able to call a webhook endpoint and pass in the necessary parameters into the webhook body. Follow this &lt;a href="https://docs.flowiseai.com/use-cases/webhook-tool" rel="noopener noreferrer"&gt;guide&lt;/a&gt; which will be using Make.com to create the webhook workflow.&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%2Fckyivo9dvue461jc9pv4.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%2Fckyivo9dvue461jc9pv4.png" alt="webhook" width="768" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are a lot of other use cases such as building a SQL QnA or interacting with API. Explore and build cool stuff!&lt;/p&gt;

&lt;p&gt;FlowiseAI has 27.5k stars on GitHub and has more than 14k forks so it has a good overall ratio.&lt;/p&gt;

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


&lt;h2&gt;
  
  
  4. &lt;a href="https://github.com/getumbrel/llama-gpt" rel="noopener noreferrer"&gt;LLAMA GPT&lt;/a&gt; - a self-hosted, offline, ChatGPT like chatbot (Powered by Llama 2).
&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%2Fm5qoizptgncd0u1wlvqc.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%2Fm5qoizptgncd0u1wlvqc.png" alt="llama gpt" width="800" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;LlamaGPT is a self-hosted, offline, ChatGPT-like chatbot, powered by Llama 2. It's 100% private and your data doesn't leave your device.&lt;/p&gt;

&lt;p&gt;In the recent versions, they have also provided support for Code Llama models and Nvidia GPUs.&lt;/p&gt;

&lt;p&gt;You can install it from the &lt;a href="https://apps.umbrel.com/app/llama-gpt" rel="noopener noreferrer"&gt;Umbrel App Store&lt;/a&gt; or you can also &lt;a href="https://github.com/getumbrel/llama-gpt?tab=readme-ov-file#install-llamagpt-with-kubernetes" rel="noopener noreferrer"&gt;install it with Kubernetes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can read about the &lt;a href="https://github.com/getumbrel/llama-gpt?tab=readme-ov-file#supported-models" rel="noopener noreferrer"&gt;supported models&lt;/a&gt; on the docs.&lt;/p&gt;

&lt;p&gt;It's very simple to use!&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%2F8e0x0vkbt3jifov3vb3j.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%2F8e0x0vkbt3jifov3vb3j.gif" alt="llama gpt video" width="600" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I know, at this point it feels confusing that there are so many ways to run LLM locally. As a developer, I think it's important to evaluate which method works for our situation!&lt;/p&gt;

&lt;p&gt;They have 10k+ stars on GitHub and offer 2 packages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/getumbrel/llama-gpt" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star LLAMA GPT ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  5. &lt;a href="https://github.com/mudler/LocalAI" rel="noopener noreferrer"&gt;LocalAI&lt;/a&gt; - free OpenAI alternative.
&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%2Fln76pv7ffcsq11c7wx45.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%2Fln76pv7ffcsq11c7wx45.png" alt="localAI" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;LocalAI is free, open source, and considered as an alternative to OpenAI. &lt;/p&gt;

&lt;p&gt;LocalAI acts as a drop-in replacement REST API that’s compatible with OpenAI (Elevenlabs, Anthropic... ) API specifications for local AI inferencing. &lt;/p&gt;

&lt;p&gt;It allows you to run LLMs, generate images, and audio (and not only) locally or on-prem with consumer-grade hardware, supporting multiple model families. The best part is that it does not require GPU. &lt;/p&gt;

&lt;p&gt;I never thought that there would be such an option so it's a goldmine for devs who don't want to pay much. Plus, it allows to generate of Text, Audio, Video, and Images and also has voice cloning capabilities. What more do you need?&lt;/p&gt;

&lt;p&gt;You can watch the complete walkthrough by Semaphore CI!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Xh57mMlfuMk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;There are a lot of &lt;a href="https://localai.io/docs/integrations/" rel="noopener noreferrer"&gt;integration options&lt;/a&gt; and developers have built awesome stuff such as &lt;a href="https://github.com/badgooooor/localai-vscode-plugin" rel="noopener noreferrer"&gt;Extension for attaching LocalAI instance to VSCode&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://localai.io/basics/getting_started/" rel="noopener noreferrer"&gt;quickstart guide&lt;/a&gt; and how to &lt;a href="https://localai.io/basics/kubernetes/" rel="noopener noreferrer"&gt;run it with kubernetes&lt;/a&gt;. Find all the &lt;a href="https://github.com/mudler/LocalAI?tab=readme-ov-file#book--media-blogs-social" rel="noopener noreferrer"&gt;resources&lt;/a&gt; including how to run it on AWS, k8sgpt, and more.&lt;/p&gt;

&lt;p&gt;They have 21k+ stars on GitHub and are on the &lt;code&gt;v2.18&lt;/code&gt; release.&lt;/p&gt;

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


&lt;h2&gt;
  
  
  6.  &lt;a href="https://github.com/continuedev/continue" rel="noopener noreferrer"&gt;Continue&lt;/a&gt; - enable you to create an AI software development system.
&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%2F7ro5ctus5tdfvqdnysby.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%2F7ro5ctus5tdfvqdnysby.png" alt="continue" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Continue is one of the best AI code assistants I've seen in my developer journey.&lt;/p&gt;

&lt;p&gt;You can connect any models and any context to build custom autocomplete and chat experiences inside &lt;a href="https://marketplace.visualstudio.com/items?itemName=Continue.continue" rel="noopener noreferrer"&gt;VS Code&lt;/a&gt; and &lt;a href="https://plugins.jetbrains.com/plugin/22707-continue-extension" rel="noopener noreferrer"&gt;JetBrains&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can easily set it up. Below are some of the snapshots while I was installing it.&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%2Frq5ld2djixiv5pmz8zzx.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%2Frq5ld2djixiv5pmz8zzx.png" alt="step 1" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;
Step 1



&lt;p&gt; &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%2Fj9u0lan7koa5sjtysykw.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%2Fj9u0lan7koa5sjtysykw.png" alt="step 2" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;
run it through terminal



&lt;p&gt; &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%2Fduhhgmg2eqr1tk1r2ecy.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%2Fduhhgmg2eqr1tk1r2ecy.png" alt="step2 complete" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;
step2 complete



&lt;p&gt; &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%2Fwzufhvtre8o97wq3zqlr.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%2Fwzufhvtre8o97wq3zqlr.png" alt="step3" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;
run it through terminal



&lt;p&gt; &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%2Fnd4lu8r0shiah1v7odq0.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%2Fnd4lu8r0shiah1v7odq0.png" alt="step3 complete" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;
step3 complete



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

&lt;p&gt;After you've configured it, you're all set to use all the amazing concepts it provides.&lt;/p&gt;

&lt;p&gt;They have a lot of awesome features such as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tab to autocomplete code suggestions.&lt;/p&gt;
&lt;/blockquote&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%2F09xt6urla4jic5x3m5rr.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%2F09xt6urla4jic5x3m5rr.gif" alt="autocomplete" width="600" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ask questions about your codebase.&lt;/p&gt;
&lt;/blockquote&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%2Fqd95frn0j9cd417yighz.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%2Fqd95frn0j9cd417yighz.gif" alt="questions" width="600" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Understand terminal errors immediately.&lt;/p&gt;
&lt;/blockquote&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%2Fkaaq6x5978tm1u61moxb.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%2Fkaaq6x5978tm1u61moxb.gif" alt="errors" width="600" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Kick off actions with slash commands.&lt;/p&gt;
&lt;/blockquote&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%2Fj4vlzc2vuiuoivgqy5e7.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%2Fj4vlzc2vuiuoivgqy5e7.png" alt="commands" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Refactor functions where you are coding.&lt;/p&gt;
&lt;/blockquote&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%2F7wz1tzon8afivi79ulvn.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%2F7wz1tzon8afivi79ulvn.png" alt="refactor" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read about all the &lt;a href="https://docs.continue.dev/how-to-use-continue" rel="noopener noreferrer"&gt;features&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You will have to install the &lt;a href="https://marketplace.visualstudio.com/items?itemName=Continue.continue" rel="noopener noreferrer"&gt;VSCode extension&lt;/a&gt; from the marketplace and then read the &lt;a href="https://docs.continue.dev/quickstart" rel="noopener noreferrer"&gt;quickstart guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.continue.dev/intro" rel="noopener noreferrer"&gt;docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can also watch this basic demo on YouTube!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/V3Yq6w9QaxI?start=29"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;They have 13k+ stars on GitHub and are built using TypeScript.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/continuedev/continue" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Continue ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  7. &lt;a href="https://github.com/chat2db/Chat2DB" rel="noopener noreferrer"&gt;Chat2DB&lt;/a&gt; - AI-driven data management platform.
&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%2F0fu2hozmkm3ps8l99rj9.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%2F0fu2hozmkm3ps8l99rj9.png" alt="chat2db" width="800" height="297"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Chat2DB is an AI-first data management, development, and analysis tool.&lt;/p&gt;

&lt;p&gt;Its core is AIGC (Artificial Intelligence Generation Code), which can convert natural language into SQL, SQL into natural language, and automatically generate reports, taking efficiency to another level. &lt;/p&gt;

&lt;p&gt;Even operations that do not understand SQL can use it to quickly query business data and generate reports.&lt;/p&gt;

&lt;p&gt;When you do any operation, it will give you some suggestions. &lt;br&gt;
For instance, when you are doing database development, it will help you generate SQL directly in natural language, give you SQL optimization suggestions, help you analyze SQL performance, analyze SQL execution plan, and can also help you quickly generate SQL test data, system code, etc. It's actually very powerful :)&lt;/p&gt;

&lt;p&gt;They have excellent support for multi-data sources and can easily integrate up to 17 different database types including PostgreSQL, MySQL, MongoDB, and Redis.&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%2Fc5k3ryojynrovdlx508i.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%2Fc5k3ryojynrovdlx508i.png" alt="databases" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can download or &lt;a href="https://app.chat2db.ai/" rel="noopener noreferrer"&gt;try it in the browser&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let's see some of the exciting features:&lt;/p&gt;

&lt;p&gt;✅ Intelligent reports.&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%2Fg4580tabu3t3vq48e0k5.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%2Fg4580tabu3t3vq48e0k5.png" alt="reports" width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ Data Exploration.&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%2Fmqq58sgw239ugep7ocez.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%2Fmqq58sgw239ugep7ocez.png" alt="data exploration" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ SQL Development.&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%2F7fpvwv5lpiyqil2t6aig.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%2F7fpvwv5lpiyqil2t6aig.png" alt="SQL Development" width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &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%2Fj6zszr0onru157uuvhpw.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%2Fj6zszr0onru157uuvhpw.png" alt="sql development" width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.chat2db.ai/docs/start-guide/getting-started" rel="noopener noreferrer"&gt;quickstart guide&lt;/a&gt; on the official docs.&lt;/p&gt;

&lt;p&gt;They have 14k+ stars on GitHub and are on the release &lt;code&gt;v3.2&lt;/code&gt;.&lt;/p&gt;

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


&lt;h2&gt;
  
  
  8. &lt;a href="https://github.com/danny-avila/LibreChat?tab=readme-ov-file" rel="noopener noreferrer"&gt;LibreChat&lt;/a&gt; - Enhanced ChatGPT Clone.
&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%2Fkhdouc1ssvs8g3wwfets.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%2Fkhdouc1ssvs8g3wwfets.png" alt="libre chat" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;LibreChat is a free, open source AI chat platform. This Web UI offers vast customization, supporting numerous AI providers, services, and integrations. &lt;/p&gt;

&lt;p&gt;It serves all AI conversations in one place with a familiar interface, and innovative additions, for as many users as you need.&lt;/p&gt;

&lt;p&gt;Some of the features are:&lt;/p&gt;

&lt;p&gt;✅ Upload and analyze images seamlessly with advanced models like Claude 3, GPT-4, Gemini Vision, Llava, and Assistants.&lt;/p&gt;

&lt;p&gt;✅ Chat with files using various powerful endpoints using OpenAI, Azure, Anthropic, and Google.&lt;/p&gt;

&lt;p&gt;✅ Multilingual UI with support for 20+ languages.&lt;/p&gt;

&lt;p&gt;✅ &lt;a href="https://www.librechat.ai/docs/features#diverse-model-options" rel="noopener noreferrer"&gt;Diverse Model options&lt;/a&gt; including OpenAI, BingAI, Anthropic (Claude), Azure OpenAI, and Google’s premier machine learning offerings.&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%2F3lwh3xae7ax2yejsqwxp.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%2F3lwh3xae7ax2yejsqwxp.png" alt="ai model image" width="750" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://www.librechat.ai/docs/quick_start" rel="noopener noreferrer"&gt;quickstart guide&lt;/a&gt; to get started.&lt;/p&gt;

&lt;p&gt;Watch this video for the complete walkthrough!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/bSVHEbVPNl4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;They have 15k+ stars on GitHub and offer 4 packages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/danny-avila/LibreChat?tab=readme-ov-file" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star LibreChat ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  9. &lt;a href="https://github.com/lobehub/lobe-chat" rel="noopener noreferrer"&gt;Lobe Chat&lt;/a&gt; - modern-design LLMs/AI chat framework.
&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%2Fddxibf7xxx931tdoj1mn.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%2Fddxibf7xxx931tdoj1mn.png" alt="lobe chat" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;An open-source, modern-design ChatGPT/LLMs UI/Framework.&lt;br&gt;
Supports speech-synthesis, multi-modal, and extensible (function call) plugin systems. You can deploy your private OpenAI with one click. &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%2F39se198xal53r854sdps.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%2F39se198xal53r854sdps.png" alt="journey" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's see some of the exciting features of LobeChat:&lt;/p&gt;

&lt;p&gt;✅ Multi-Model Service Provider Support.&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%2Fnodazgxel962wrp2hnvo.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%2Fnodazgxel962wrp2hnvo.png" alt="multi service" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They have expanded our support to multiple model service providers, rather than being limited to a single one.&lt;/p&gt;

&lt;p&gt;Find the complete list of &lt;a href="https://lobehub.com/docs/usage/features/multi-ai-providers" rel="noopener noreferrer"&gt;10+ model service providers&lt;/a&gt; that they support.&lt;/p&gt;

&lt;p&gt;✅ Assistant Market.&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%2F35z3kz2jr4mnxid9dwsg.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%2F35z3kz2jr4mnxid9dwsg.png" alt="Assistant Market" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In LobeChat's &lt;a href="https://lobehub.com/assistants" rel="noopener noreferrer"&gt;Assistant Market&lt;/a&gt;, creators can discover an innovative community that brings together numerous carefully designed assistants. &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%2Fex23f2epblfp2cxtxbnl.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%2Fex23f2epblfp2cxtxbnl.png" alt="market" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are so many awesome applications there. WOW!&lt;/p&gt;

&lt;p&gt;✅ Model Vision Recognition.&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%2Ffuxz350091223cj36dq7.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%2Ffuxz350091223cj36dq7.png" alt="Model Vision Recognition" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LobeChat now supports large language models with visual recognition capabilities such as OpenAI's gpt-4-vision, Google Gemini Pro vision, and Zhipu GLM-4 Vision, enabling LobeChat to have multimodal interaction capabilities. &lt;/p&gt;

&lt;p&gt;Users can easily upload or drag and drop images into the chat box, and the assistant will be able to recognize the content of the images and engage in intelligent conversations.&lt;/p&gt;

&lt;p&gt;✅ Text to Image Generation.&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%2Fz2q6qzcy8anjgsg2381o.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%2Fz2q6qzcy8anjgsg2381o.png" alt="Text to Image Generation" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can directly utilize the Text-to-image tool during conversations with the assistant. &lt;/p&gt;

&lt;p&gt;By using the power of AI tools such as DALL-E 3, MidJourney, and Pollinations, assistants can now implement it properly.&lt;/p&gt;

&lt;p&gt;✅ Local Large Language Model (LLM) Support.&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%2Fucn4rpa4p2vb11hhvkn1.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%2Fucn4rpa4p2vb11hhvkn1.png" alt="Local Large Language Model (LLM) Support." width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the powerful infrastructure of Ollama AI and the community's collaborative efforts, you can now engage in conversations with a local LLM (Large Language Model) in LobeChat! &lt;/p&gt;

&lt;p&gt;By running the following Docker command, you can experience conversations with a local LLM in LobeChat.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 3210:3210 &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;OLLAMA_PROXY_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://host.docker.internal:11434/v1 lobehub/lobe-chat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;✅ Progressive Web App (PWA).&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%2Fsccmha74iz01rr12gphr.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%2Fsccmha74iz01rr12gphr.png" alt="Progressive Web App (PWA)" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They have adopted Progressive Web App PWA technology, which is a modern web technology that elevates web applications to a near-native app experience. &lt;/p&gt;

&lt;p&gt;✅ Custom Themes.&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%2F7cl73pplbor4z1381kdm.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%2F7cl73pplbor4z1381kdm.png" alt="custom themes" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Read about all of the &lt;a href="https://lobehub.com/docs/usage/start" rel="noopener noreferrer"&gt;features and use cases&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can self-host or deploy it using docker. The &lt;a href="https://github.com/lobehub/lobe-chat/tree/main?tab=readme-ov-file#-ecosystem" rel="noopener noreferrer"&gt;ecosystem&lt;/a&gt; of lobe chat provides 4 packages: &lt;code&gt;lobehub/ui&lt;/code&gt;, &lt;code&gt;lobehub/icons&lt;/code&gt;, &lt;code&gt;lobehub/tts&lt;/code&gt;, and &lt;code&gt;lobehub/lint&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;They also provide &lt;a href="https://lobehub.com/plugins" rel="noopener noreferrer"&gt;plugins market&lt;/a&gt; where you can find lots of useful plugins that can be used to introduce new function calls and even new ways to render message results. If you want to develop your own plugin, refer to &lt;a href="https://lobehub.com/docs/usage/plugins/development" rel="noopener noreferrer"&gt;📘 Plugin Development Guide&lt;/a&gt; in the wiki.&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%2Fuqtxt31vc42uwnw2ukgr.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%2Fuqtxt31vc42uwnw2ukgr.png" alt="plugins market" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://lobehub.com/docs/usage/start" rel="noopener noreferrer"&gt;docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can check the &lt;a href="https://chat-preview.lobehub.com/chat" rel="noopener noreferrer"&gt;live demo&lt;/a&gt;. It's pretty cool!&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%2Fxe3ngshtwpps2kmpu98f.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%2Fxe3ngshtwpps2kmpu98f.png" alt="demo snapshot" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They have 35k+ stars on GitHub with more than 500 releases.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/lobehub/lobe-chat" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Lobe Chat ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  10. &lt;a href="https://github.com/mindsdb/mindsdb" rel="noopener noreferrer"&gt;MindsDB&lt;/a&gt; - The platform for customizing AI from enterprise data.
&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%2Fi9q3jdswxdx6wqfk0vqw.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%2Fi9q3jdswxdx6wqfk0vqw.png" alt="MindsDB" width="800" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;MindsDB is the platform for customizing AI from enterprise data.&lt;/p&gt;

&lt;p&gt;With MindsDB, you can deploy, serve, and fine-tune models in real-time, utilizing data from databases, vector stores, or applications, to build AI-powered apps - using universal tools developers already know.&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%2Fd7ggww5ner38r4r9qc06.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%2Fd7ggww5ner38r4r9qc06.png" alt="mindsdb" width="800" height="665"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With MindsDB and its nearly &lt;a href="https://docs.mindsdb.com/integrations/data-overview" rel="noopener noreferrer"&gt;200 integrations&lt;/a&gt; to data sources and AI/ML frameworks, any developer can use their enterprise data to customize AI for their purpose, faster and more securely.&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%2F4q1gfmhq43gopdix03gr.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%2F4q1gfmhq43gopdix03gr.png" alt="how MindsDB works" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.mindsdb.com/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and &lt;a href="https://docs.mindsdb.com/quickstart-tutorial" rel="noopener noreferrer"&gt;quickstart guide&lt;/a&gt; to get started.&lt;/p&gt;

&lt;p&gt;They currently support a total of &lt;a href="https://docs.mindsdb.com/sdks/overview" rel="noopener noreferrer"&gt;3 SDKs&lt;/a&gt; that is using using Mongo-QL, Python, and JavaScript.&lt;/p&gt;

&lt;p&gt;There are several applications of MindsDB such as integrating with numerous data sources and AI frameworks so you can easily bring data and AI together to create &amp;amp; automate custom workflows.&lt;/p&gt;

&lt;p&gt;The other common use cases include fine-tuning models, chatbots, alert systems, content generation, natural language processing, classification, regressions, and forecasting. Read more about the &lt;a href="https://docs.mindsdb.com/use-cases/" rel="noopener noreferrer"&gt;use cases&lt;/a&gt; and each of them has an architecture diagram with a little info.&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%2Fwuhxzbioqh9a5s9f0w7s.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%2Fwuhxzbioqh9a5s9f0w7s.png" alt="use cases" width="621" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For instance, the chatbot architecture diagram with MindsDB. You can read about all the &lt;a href="https://github.com/mindsdb/mindsdb?tab=readme-ov-file#-get-started" rel="noopener noreferrer"&gt;solutions&lt;/a&gt; provided along with their SQL Query examples.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// SQL Query Example for Chatbot
CREATE CHATBOT slack_bot USING database='slack',agent='customer_support'; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fotoqsro02ghqb709yglk.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%2Fotoqsro02ghqb709yglk.png" alt="chatbot" width="800" height="681"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just to tell you about the overall possibilities, you can check out &lt;a href="https://mindsdb.com/blog/how-to-forecast-air-temperatures-with-ai-iot-sensor-data" rel="noopener noreferrer"&gt;How to Forecast Air Temperatures with AI + IoT Sensor Data&lt;/a&gt;. Exciting right :)&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%2F82wrjyrkch44taeurv1r.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%2F82wrjyrkch44taeurv1r.png" alt="mindsdb" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They have 25.4k+ stars on GitHub and are on the &lt;code&gt;v24.7.2.0&lt;/code&gt; with more than 200 releases. By the way, this is the first time I've seen 4 parts in any release as I always followed the semantic release.&lt;/p&gt;

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


&lt;h2&gt;
  
  
  11. &lt;a href="https://github.com/Significant-Gravitas/AutoGPT" rel="noopener noreferrer"&gt;AutoGPT&lt;/a&gt; - more exciting than ChatGPT.
&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%2F3hjamyxzkhy7luwsi9vp.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%2F3hjamyxzkhy7luwsi9vp.png" alt="auto gpt" width="800" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;At the core of AutoGPT lies its primary project, a semi-autonomous agent driven by large language models (LLMs), designed to perform any tasks for you.&lt;/p&gt;

&lt;p&gt;The AutoGPT project consists of &lt;a href="https://docs.agpt.co/#agent" rel="noopener noreferrer"&gt;four main components&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Agent – also known as just "AutoGPT"&lt;/li&gt;
&lt;li&gt;The Benchmark – AKA agbenchmark&lt;/li&gt;
&lt;li&gt;The Forge&lt;/li&gt;
&lt;li&gt;The Frontend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Read on how you can &lt;a href="https://docs.agpt.co/autogpt/setup/" rel="noopener noreferrer"&gt;set up AutoGPT&lt;/a&gt; using the OpenAI key.&lt;/p&gt;

&lt;p&gt;You can see this &lt;a href="https://www.youtube.com/watch?v=_rGXIXyNqpk" rel="noopener noreferrer"&gt;YouTube video by Fireship&lt;/a&gt; on what is AutoGPT.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/_rGXIXyNqpk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;You can also watch this &lt;a href="https://www.youtube.com/watch?v=FeIIaJUN-4A" rel="noopener noreferrer"&gt;AutoGPT tutorial&lt;/a&gt; by Sentral Media.&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.agpt.co/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and check out the &lt;a href="https://github.com/orgs/Significant-Gravitas/projects/1" rel="noopener noreferrer"&gt;project board&lt;/a&gt; on what things are under development right now.&lt;/p&gt;

&lt;p&gt;Even if you don't know much about AI, you can try AutoGPT to understand how you can save time and build cool stuff.&lt;/p&gt;

&lt;p&gt;They have 164k+ stars on GitHub due to such an excellent use case and automation capabilities. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Significant-Gravitas/AutoGPT" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star AutoGPT ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  12. &lt;a href="https://github.com/reorproject/reor" rel="noopener noreferrer"&gt;reor&lt;/a&gt; - self organizing AI note-taking app.
&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%2Fc0x2q2a67bg7gzdekizw.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%2Fc0x2q2a67bg7gzdekizw.png" alt="reor" width="800" height="172"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;One of the most exciting projects that I've seen so far, especially because it runs models locally.&lt;/p&gt;

&lt;p&gt;Reor is an AI-powered desktop note-taking app. It automatically links related notes, answers questions on your notes, and provides semantic search. &lt;/p&gt;

&lt;p&gt;Everything is stored locally and you can edit your notes with an Obsidian-like markdown editor. The project hypothesizes that AI tools for thought should run models locally by default. &lt;/p&gt;

&lt;p&gt;Reor stands on the shoulders of the giants &lt;code&gt;Ollama&lt;/code&gt;, &lt;code&gt;Transformers.js&lt;/code&gt; &amp;amp; &lt;code&gt;LanceDB&lt;/code&gt; to enable both LLMs and embedding models to run locally. Connecting to OpenAI or OpenAI-compatible APIs like Oobabooga is also supported.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I know you're wondering How can it possibly be &lt;code&gt;self-organizing&lt;/code&gt;?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;a. Every note you write is chunked and embedded into an internal vector database.&lt;br&gt;
b. Related notes are connected automatically via vector similarity.&lt;br&gt;
c. LLM-powered Q&amp;amp;A does RAG on the corpus of notes.&lt;br&gt;
d. Everything can be searched semantically.&lt;/p&gt;

&lt;p&gt;You can watch the demo here!&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%2Fk1whpg9m7ubt5xluyf7f.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%2Fk1whpg9m7ubt5xluyf7f.gif" alt="demo" width="600" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One way to think about Reor is as a RAG app with two generators: the LLM and the human. In Q&amp;amp;A mode, the LLM is fed retrieved context from the corpus to help answer a query. &lt;/p&gt;

&lt;p&gt;Similarly, in editor mode, we can toggle the sidebar to reveal related notes &lt;code&gt;retrieved&lt;/code&gt; from the corpus. This is quite a powerful way of &lt;code&gt;augmenting&lt;/code&gt; your thoughts by cross-referencing ideas in a current note against related ideas from your digital collection.&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://www.reorproject.org/docs" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and &lt;a href="https://www.reorproject.org/" rel="noopener noreferrer"&gt;download&lt;/a&gt; from the website. Mac, Linux &amp;amp; Windows are all supported.&lt;/p&gt;

&lt;p&gt;They have also provided starter guides to help you get started.&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%2Fbx3w7nalcwc9egumu0hm.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%2Fbx3w7nalcwc9egumu0hm.png" alt="get started guides" width="703" height="653"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also watch this walkthrough!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/2XFYyrQz9xQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;They have 6.5k stars on GitHub and are built using TypeScript.&lt;/p&gt;

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


&lt;h2&gt;
  
  
  13. &lt;a href="https://github.com/leon-ai/leon" rel="noopener noreferrer"&gt;Leon&lt;/a&gt; - your open source personal assistant.
&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%2Fmnv85osce6ps9xodf07t.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%2Fmnv85osce6ps9xodf07t.png" alt="leon" width="800" height="612"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Leon is an open source personal assistant who can live on your server. You're definitely curious, right? 😅&lt;/p&gt;

&lt;p&gt;He does stuff when you ask him to. You can even talk to him and he will revert by talking to you. Similarly, you can also text him!&lt;/p&gt;

&lt;p&gt;If you are a developer (or not), you may want to build many things that could help in your daily life. Instead of building a dedicated project for each of those ideas, Leon can help you with his &lt;code&gt;Skills&lt;/code&gt; structure.&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%2Fygd52jmxnyz5ctjfoyto.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%2Fygd52jmxnyz5ctjfoyto.gif" alt="leon gif" width="600" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to, Leon can communicate with you by being offline to protect your privacy. This is a list of &lt;a href="https://github.com/leon-ai/leon/tree/develop/skills" rel="noopener noreferrer"&gt;skills&lt;/a&gt; that Leon can do for now. &lt;/p&gt;

&lt;p&gt;You should read the &lt;a href="https://blog.getleon.ai/the-story-behind-leon/" rel="noopener noreferrer"&gt;story behind Leon&lt;/a&gt;. You can also watch this demo to learn more about Leon.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/p7GRGiicO1c"&gt;
&lt;/iframe&gt;
&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%2F70mddmgadcbfwzugd1bl.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%2F70mddmgadcbfwzugd1bl.png" alt="features" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the High-level architecture schema of Leon.&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%2Fa6b9vgj3fagera0bsyur.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%2Fa6b9vgj3fagera0bsyur.png" alt="architecture" width="800" height="572"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can install Leon by using 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;# install leon global cli
npm install --global @leon-ai/cli

# install leon
leon create birth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You can read the &lt;a href="https://docs.getleon.ai/" rel="noopener noreferrer"&gt;docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Appwrite is one of the sponsors which says a lot about its overall impact.&lt;/p&gt;

&lt;p&gt;It has 15k stars on GitHub and has released some drastic changes recently so make sure to read the docs with extra caution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/leon-ai/leon" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Leon ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  14.  &lt;a href="https://github.com/blob42/Instrukt" rel="noopener noreferrer"&gt;Instrukt&lt;/a&gt; - Integrated AI in the terminal.
&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%2Fwsk64pf5yuosui91tmz9.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%2Fwsk64pf5yuosui91tmz9.png" alt="instrukt" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Instrukt is a terminal-based AI-integrated environment. It offers a platform where users can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create and instruct modular AI agents.&lt;/li&gt;
&lt;li&gt;Generate document indexes for question-answering.&lt;/li&gt;
&lt;li&gt;Create and attach tools to any agent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instruct them in natural language and, for safety, run them inside secure containers (currently implemented with Docker) to perform tasks in their dedicated, sandboxed space.&lt;/p&gt;

&lt;p&gt;It's built using &lt;code&gt;Langchain&lt;/code&gt;, &lt;code&gt;Textual&lt;/code&gt;, and &lt;code&gt;Chroma&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Get started with 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 instrukt[all]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fr3aza7hnlji7hbi2o0js.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%2Fr3aza7hnlji7hbi2o0js.gif" alt="instrukt" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are a lot of exciting features such as:&lt;/p&gt;

&lt;p&gt;✅ A terminal-based interface for power keyboard users to instruct AI agents without ever leaving the keyboard.&lt;/p&gt;

&lt;p&gt;✅ Index your data and let agents retrieve it for question-answering. You can create and organize your indexes with an easy UI.&lt;/p&gt;

&lt;p&gt;✅ Index creation will auto-detect programming languages and optimize the splitting/chunking strategy accordingly.&lt;/p&gt;

&lt;p&gt;✅ Run agents inside secure docker containers for safety and privacy.&lt;/p&gt;

&lt;p&gt;✅ Integrated REPL-Prompt for quick interaction with agents, and a fast feedback loop for development and testing.&lt;/p&gt;

&lt;p&gt;✅ You can automate repetitive tasks with custom commands. It also has a built-in prompt/chat history.&lt;/p&gt;

&lt;p&gt;You can read about all the &lt;a href="https://github.com/blob42/Instrukt?tab=readme-ov-file#features" rel="noopener noreferrer"&gt;features&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://blob42.github.io/Instrukt/install.html" rel="noopener noreferrer"&gt;installation guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can also debug and introspect agents using an in-built IPython console which is a neat little feature.&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%2Fqaan8np68e3fk1yueexm.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%2Fqaan8np68e3fk1yueexm.png" alt="console debugging" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instrukt is licensed with an AGPL license meaning that it can be used by anyone for whatever purpose.&lt;/p&gt;

&lt;p&gt;It is safe to say that Instrukt is an AI commander for your terminal.&lt;/p&gt;

&lt;p&gt;It is a new project so they have around 240 stars on GitHub but the use case is damn good.&lt;/p&gt;

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


&lt;h2&gt;
  
  
  15. &lt;a href="https://github.com/QuivrHQ/quivr" rel="noopener noreferrer"&gt;Quivr&lt;/a&gt; - RAG Framework for building GenAI Second Brains.
&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%2Foiowtt3ys9shf4iivglq.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%2Foiowtt3ys9shf4iivglq.png" alt="quivr" width="800" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Quivr, your second brain, utilizes the power of GenerativeAI to be your personal assistant! You can think of it as Obsidian but turbocharged with AI powers.&lt;/p&gt;

&lt;p&gt;Quivr is a platform that enables the creation of AI assistants, referred to as &lt;code&gt;Brain&lt;/code&gt;. These assistants are designed with specialized capabilities like some can connect to specific data sources, allowing users to interact directly with the data. &lt;/p&gt;

&lt;p&gt;While others serve as specialized tools for particular use cases, powered by Rag technology. These tools process specific inputs to generate practical outputs, such as summaries, translations, and more.&lt;/p&gt;

&lt;p&gt;Watch a quick demo of Quivr!&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%2Fk7xx3290daebg2pw11i2.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%2Fk7xx3290daebg2pw11i2.gif" alt="quivr gif" width="600" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of the amazing features are:&lt;/p&gt;

&lt;p&gt;✅ You can choose the type of Brain you want to use, based on the data source you wish to interact with.&lt;/p&gt;

&lt;p&gt;✅ They also provide a powerful feature to share your brain with others. This can be done by sharing with individuals via their emails and assigning them specific rights. &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%2Fe3mn636j0sl6si5lzpzf.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%2Fe3mn636j0sl6si5lzpzf.png" alt="sharing brain" width="668" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ Quivr works offline, so you can access your data anytime, anywhere.&lt;/p&gt;

&lt;p&gt;✅ You can access and continue your past conversations with your brains.&lt;/p&gt;

&lt;p&gt;✅ But the best one that I loved is that you can literally install a Slack bot. Refer to this demo to see what you can do. Very cool!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/1yMe21vIl9E"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Anyway, read about all the &lt;a href="https://docs.quivr.app/features/brain-creation" rel="noopener noreferrer"&gt;awesome stuff&lt;/a&gt; that you can do with Quivr.&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://github.com/QuivrHQ/quivr?tab=readme-ov-file#getting-started-" rel="noopener noreferrer"&gt;installation guide&lt;/a&gt; and &lt;a href="https://www.youtube.com/watch?v=cXBa6dZJN48" rel="noopener noreferrer"&gt;60 seconds installation video&lt;/a&gt;. I really loved this idea!&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.quivr.app/home/intro" rel="noopener noreferrer"&gt;docs&lt;/a&gt;.&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%2F5a27c2ubbmri0b2xlh1l.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%2F5a27c2ubbmri0b2xlh1l.png" alt="stats" width="667" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They have also provided &lt;a href="https://docs.quivr.app/deployment/porter" rel="noopener noreferrer"&gt;guides&lt;/a&gt; on how to deploy Quivr with Vercel, Porter, AWS, and Digital Ocean.&lt;/p&gt;

&lt;p&gt;They could provide a better free tier plan but it's more than enough to test things on your end.&lt;/p&gt;

&lt;p&gt;It has 30k+ Stars on GitHub with 220+ releases which means they're constantly improving.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/QuivrHQ/quivr" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Quivr ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  16. &lt;a href="https://github.com/OpenInterpreter/open-interpreter" rel="noopener noreferrer"&gt;Open Interpreter&lt;/a&gt; - natural language interface for terminal.
&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%2Fav7udc5fibj1wz88w0u8.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%2Fav7udc5fibj1wz88w0u8.png" alt="Open Interpreter" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Open Interpreter lets LLMs run code (Python, Javascript, Shell, and more) locally. You can chat with Open Interpreter through a ChatGPT-like interface in your terminal by running &lt;code&gt;$ interpreter&lt;/code&gt; after installing.&lt;/p&gt;

&lt;p&gt;This provides a natural-language interface to your computer's general-purpose capabilities:&lt;/p&gt;

&lt;p&gt;✅ Create and edit photos, videos, PDFs, etc.&lt;br&gt;
✅ Control a Chrome browser to perform research Plot, clean, and analyze large datasets.&lt;/p&gt;

&lt;p&gt;I don't know about you, but their &lt;a href="https://www.openinterpreter.com/" rel="noopener noreferrer"&gt;website&lt;/a&gt; made me say WOW!&lt;/p&gt;

&lt;p&gt;Quickstart using this command.&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="n"&gt;pip&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;interpreter&lt;/span&gt;

&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="n"&gt;After&lt;/span&gt; &lt;span class="n"&gt;installation&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;simply&lt;/span&gt; &lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="n"&gt;interpreter&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You can read the &lt;a href="https://docs.openinterpreter.com/getting-started/introduction" rel="noopener noreferrer"&gt;quickstart guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You should read about the &lt;a href="https://github.com/OpenInterpreter/open-interpreter?tab=readme-ov-file#comparison-to-chatgpts-code-interpreter" rel="noopener noreferrer"&gt;comparison to ChatGPT's Code Interpreter&lt;/a&gt; and the &lt;a href="https://github.com/OpenInterpreter/open-interpreter?tab=readme-ov-file#commands" rel="noopener noreferrer"&gt;commands&lt;/a&gt; that you can use.&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.openinterpreter.com/getting-started/introduction" rel="noopener noreferrer"&gt;docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Open Interpreter works with both hosted and local language models. Hosted models are faster and more capable, but require payment while local models are private and free but are often less capable. Choose based on your use case!&lt;/p&gt;

&lt;p&gt;They have 48k+ stars on GitHub and are used by 300+ developers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/OpenInterpreter/open-interpreter" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Open Interpreter ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  17. &lt;a href="https://github.com/CopilotKit/CopilotKit" rel="noopener noreferrer"&gt;CopilotKit&lt;/a&gt; - 10x easier to build AI Copilots.
&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%2Fiq3tyn2vi21qmnso1lg7.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%2Fiq3tyn2vi21qmnso1lg7.png" alt="copilotKit" width="800" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;You will agree that it's tough to add AI features in React, that's where Copilot helps you as a framework for building custom AI Copilots.&lt;/p&gt;

&lt;p&gt;You can build in-app AI chatbots, and in-app AI Agents with simple components provided by Copilotkit which is at least 10x easier compared to building it from scratch. &lt;/p&gt;

&lt;p&gt;You shouldn't reinvent the wheel if there is already a very simple and fast solution!&lt;/p&gt;

&lt;p&gt;They also provide built-in (fully-customizable) Copilot-native UX components like &lt;code&gt;&amp;lt;CopilotKit /&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;CopilotPopup /&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;CopilotSidebar /&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;CopilotTextarea /&amp;gt;&lt;/code&gt;. &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%2Fabbaw6u488uu6xw8y88x.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%2Fabbaw6u488uu6xw8y88x.png" alt="components" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get started with the following npm command.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i @copilotkit/react-core @copilotkit/react-ui
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This is how you can integrate a Chatbot.&lt;/p&gt;

&lt;p&gt;A &lt;code&gt;CopilotKit&lt;/code&gt; must wrap all components which interact with CopilotKit. It’s recommended you also get started with &lt;code&gt;CopilotSidebar&lt;/code&gt; (you can swap to a different UI provider later).&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;use client&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;CopilotKit&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@copilotkit/react-core&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;CopilotSidebar&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@copilotkit/react-ui&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@copilotkit/react-ui/styles.css&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;RootLayout&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nx"&gt;children&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;CopilotKit&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/path_to_copilotkit_endpoint/see_below&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;CopilotSidebar&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;children&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/CopilotSidebar&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/CopilotKit&lt;/span&gt;&lt;span class="err"&gt;&amp;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;You can read the &lt;a href="https://docs.copilotkit.ai/getting-started/quickstart-textarea" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and check the &lt;a href="https://github.com/CopilotKit/CopilotKit?tab=readme-ov-file#demo" rel="noopener noreferrer"&gt;demo video&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can integrate Vercel AI SDK, OpenAI APIs, Langchain, and other LLM providers with ease. You can follow this &lt;a href="https://docs.copilotkit.ai/getting-started/quickstart-chatbot" rel="noopener noreferrer"&gt;guide&lt;/a&gt; to integrate a chatbot into your application.&lt;/p&gt;

&lt;p&gt;The basic idea is to build AI Chatbots very fast without a lot of struggle, especially with LLM-based apps. &lt;/p&gt;

&lt;p&gt;You can watch the complete walkthrough!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/VFXdSQxTTww"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;CopilotKit has recently crossed 7k+ stars on GitHub with 300+ releases.&lt;/p&gt;

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


&lt;h2&gt;
  
  
  18. &lt;a href="https://github.com/gpt-engineer-org/gpt-engineer" rel="noopener noreferrer"&gt;GPT Engineer&lt;/a&gt; - AI builds what you ask.
&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%2F8zdpd1ndd7afnt8m4cvz.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%2F8zdpd1ndd7afnt8m4cvz.png" alt="gpt engineer" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;GPT-engineer lets you specify software in natural language, sit back, and watch as an AI writes and executes the code, and you can ask the AI to implement improvements.&lt;/p&gt;

&lt;p&gt;It's safe to say that it's an engineer who doesn't need a degree 😅&lt;/p&gt;

&lt;p&gt;It's a commercial project for the automatic generation of web apps. It features a UI for non-technical users connected to a git-controlled codebase.&lt;/p&gt;

&lt;p&gt;I know this feels confusing, so watch the below demo to understand how you can use GPT Engineer.&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%2F4lpk4ctcuypzr7ms2pii.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%2F4lpk4ctcuypzr7ms2pii.gif" alt="demo gif" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can get started by installing the stable release using 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;python -m pip install gpt-engineer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;By default, gpt-engineer expects text input via a prompt file. It can also accept image inputs for vision-capable models. This can be useful for adding UX or architecture diagrams as additional context for GPT engineer. Read about all the &lt;a href="https://github.com/gpt-engineer-org/gpt-engineer?tab=readme-ov-file#features" rel="noopener noreferrer"&gt;awesome features&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you want a complete walkthrough, watch this awesome demo by David!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/gWy-pJ2ofEM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;I recommend checking out the &lt;a href="https://github.com/gpt-engineer-org/gpt-engineer/blob/main/ROADMAP.md" rel="noopener noreferrer"&gt;roadmap&lt;/a&gt; to understand the overall vision.&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%2Fv6vhrqgn8brw8woklvm0.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%2Fv6vhrqgn8brw8woklvm0.png" alt="roadmap" width="800" height="551"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They have 51k+ stars on GitHub and are on the &lt;code&gt;v0.3&lt;/code&gt; release.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/gpt-engineer-org/gpt-engineer" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star GPT Engineer ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  19. &lt;a href="https://github.com/cocktailpeanut/dalai" rel="noopener noreferrer"&gt;Dalai&lt;/a&gt; - the simplest way to run LLaMA and Alpaca locally.
&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%2Fhthbzdoar9s2li6kepgp.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%2Fhthbzdoar9s2li6kepgp.png" alt="dalai" width="591" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Dalai lets you run LLaMA and Alpaca on your computerP and is powered by &lt;code&gt;llama.cpp&lt;/code&gt;, &lt;code&gt;llama-dl CDN&lt;/code&gt;, and &lt;code&gt;alpaca.cpp&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Dalai runs on operating systems such as Linux, Mac, and Windows so that's a plus point!&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%2Foy0b7ahc6p3t71ztsrw0.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%2Foy0b7ahc6p3t71ztsrw0.gif" alt="gif demo" width="560" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dalai is also an NPM package:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;programmatically install&lt;/li&gt;
&lt;li&gt;locally make requests to the model&lt;/li&gt;
&lt;li&gt;run a dalai server (powered by socket.io)&lt;/li&gt;
&lt;li&gt;programmatically make requests to a remote dalai server (via socket.io)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can install the package using the below npm command.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install dalai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F27mx3wt2l025oxtzzz6p.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%2F27mx3wt2l025oxtzzz6p.png" alt="latest package" width="789" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://github.com/cocktailpeanut/dalai?tab=readme-ov-file#2-memory-requirements" rel="noopener noreferrer"&gt;memory requirements&lt;/a&gt; and &lt;a href="https://github.com/cocktailpeanut/dalai?tab=readme-ov-file#using-a-different-home-folder" rel="noopener noreferrer"&gt;how to archive elsewhere&lt;/a&gt; rather than home directory.&lt;/p&gt;

&lt;p&gt;They have 13k stars on GitHub and are still in the very early stages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/cocktailpeanut/dalai" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Dalai ⭐️&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  20. &lt;a href="https://github.com/bentoml/OpenLLM" rel="noopener noreferrer"&gt;OpenLLM&lt;/a&gt; - run LLMs as OpenAI compatible API endpoint in the cloud
&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%2Fjf3fjhw0bqxyletw847q.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%2Fjf3fjhw0bqxyletw847q.png" alt="open llm" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;OpenLLM lets developers run any open-source LLMs as OpenAI-compatible API endpoints with a single command.&lt;/p&gt;

&lt;p&gt;⚡ Build for fast and production usage.&lt;br&gt;
⚡ Support llama3, qwen2, gemma, etc, and many quantized versions full list.&lt;br&gt;
⚡ OpenAI-compatible API &amp;amp; includes ChatGPT like UI.&lt;br&gt;
⚡ Accelerated LLM decoding with state-of-the-art inference backends.&lt;br&gt;
⚡ Ready for enterprise-grade cloud deployment (Kubernetes, Docker, and BentoCloud).&lt;/p&gt;

&lt;p&gt;Get started with 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 openllm  # or pip3 install openllm
openllm hello
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;OpenLLM provides a chat user interface (UI) at the /chat endpoint for an LLM server. You can visit the chat UI at &lt;code&gt;http://localhost:3000/chat&lt;/code&gt; and start different conversations with the model.&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%2Fwgbyum3mgy51q46njf0q.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%2Fwgbyum3mgy51q46njf0q.png" alt="open llm" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OpenLLM supports LLM cloud deployment via BentoML, the unified model serving framework, and BentoCloud, an AI inference platform for enterprise AI teams.  &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%2Fmdlikmcik2dq746qha3b.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%2Fmdlikmcik2dq746qha3b.png" alt="models" width="800" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you don't know, BentoCloud provides a fully managed infrastructure optimized for LLM inference with autoscaling, model orchestration, observability, and many more, allowing you to run any AI model in the cloud.&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%2Frmhtm95h90h6z2ei9e8b.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%2Frmhtm95h90h6z2ei9e8b.png" alt="bento cloud console" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;
Once the deployment is complete, you can run model inference on the BentoCloud console:



&lt;p&gt;You can read about the &lt;a href="https://github.com/bentoml/OpenLLM?tab=readme-ov-file#supported-models" rel="noopener noreferrer"&gt;supported models&lt;/a&gt; and how to &lt;a href="https://github.com/bentoml/OpenLLM?tab=readme-ov-file#start-an-llm-server" rel="noopener noreferrer"&gt;start the LLM server&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Explore docs as you can also chat with a model in the CLI using &lt;code&gt;openllm run&lt;/code&gt; and specifying model version - &lt;code&gt;openllm run llama3:8b&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For people like me who love exploring walkthroughs, watch this demo by Matthew!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/8nZZ2oQhx4E"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;They have 9k+ stars on GitHub and have 100+ releases so it's growing at a rapid pace.&lt;/p&gt;

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


&lt;h2&gt;
  
  
  21. &lt;a href="https://github.com/unslothai/unsloth" rel="noopener noreferrer"&gt;Unsloth&lt;/a&gt; - Finetune Llama 3, Mistral, Phi &amp;amp; Gemma LLMs 2-5x faster with 80% less memory.
&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%2F3eoe4v0miesybe1p9n0e.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%2F3eoe4v0miesybe1p9n0e.png" alt="unsloth" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Unsloth makes finetuning large language models like Llama-3, Mistral, Phi-3, and Gemma 2x faster, use 70% less memory, and with no degradation in accuracy!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;✅ What is finetuning?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If we want a language model to learn a new skill, a new language, some new programming language, or simply want the language model to learn how to follow and answer instructions like how ChatGPT functions, we do finetuning!&lt;/p&gt;

&lt;p&gt;Finetuning is the process of updating the actual &lt;code&gt;brains&lt;/code&gt; of the language model through some process called back-propagation. But, finetuning can get very slow and very resource intensive.&lt;/p&gt;

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

&lt;p&gt;Unsloth can be installed locally or through another GPU service like Google Colab. Most use Unsloth through the interface Google Colab which provides a &lt;a href="https://github.com/unslothai/unsloth?tab=readme-ov-file#-finetune-for-free" rel="noopener noreferrer"&gt;free GPU&lt;/a&gt; to train with.&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%2F6mnntbvbcho8hmihd59j.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%2F6mnntbvbcho8hmihd59j.png" alt="Finetune for Free" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of the things that stand out:&lt;/p&gt;

&lt;p&gt;✅ Open source trains 5x faster, and the pro version claims to be 30x faster.&lt;/p&gt;

&lt;p&gt;✅ No approximation methods are used resulting in a 0% loss in accuracy.&lt;/p&gt;

&lt;p&gt;✅ No change of hardware, Works on Linux and Windows via WSL.&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%2F0147naadascce5oztcwf.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%2F0147naadascce5oztcwf.png" alt="unsloth model stats" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://github.com/unslothai/unsloth?tab=readme-ov-file#-installation-instructions" rel="noopener noreferrer"&gt;installation instructions&lt;/a&gt; and &lt;a href="https://unsloth.ai/blog/mistral-benchmark#Benchmark%20tables" rel="noopener noreferrer"&gt;performance benchmarking tables&lt;/a&gt; on the website.&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%2Fqm9hb9k6rqt8i1xr3re1.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%2Fqm9hb9k6rqt8i1xr3re1.png" alt="unsloth" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can read the &lt;a href="https://docs.unsloth.ai/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and all the &lt;a href="https://huggingface.co/unsloth" rel="noopener noreferrer"&gt;uploaded models on Hugging Face&lt;/a&gt; directly.&lt;/p&gt;

&lt;p&gt;They have also provided a detailed guide on &lt;a href="https://docs.unsloth.ai/tutorials/how-to-finetune-llama-3-and-export-to-ollama" rel="noopener noreferrer"&gt;How to Finetune Llama-3 and Export to Ollama&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;They have 12.5k+ stars on GitHub and it's an efficient solution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/unslothai/unsloth" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Star Unsloth ⭐️&lt;/a&gt;
&lt;/p&gt;



&lt;p&gt;I hope you learned something new!&lt;/p&gt;

&lt;p&gt;I believe that learning to use these powerful LLM is a choice and it's on you (as a developer) to find better productivity solutions for your use case.&lt;/p&gt;

&lt;p&gt;Have a great day! Till next time.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;If you like this kind of stuff, &lt;br&gt; please follow me for more :)&lt;/th&gt;
&lt;th&gt;
&lt;a href="https://twitter.com/Anmol_Codes" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FTwitter-d5d5d5%3Fstyle%3Dfor-the-badge%26logo%3Dx%26logoColor%3D0A0209" alt="profile of Twitter with username Anmol_Codes" width="103" height="28"&gt;&lt;/a&gt; &lt;a href="https://github.com/Anmol-Baranwal" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fgithub-181717%3Fstyle%3Dfor-the-badge%26logo%3Dgithub%26logoColor%3Dwhite" alt="profile of GitHub with username Anmol-Baranwal" width="95" height="28"&gt;&lt;/a&gt; &lt;a href="https://www.linkedin.com/in/Anmol-Baranwal/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FLinkedIn-0A66C2%3Fstyle%3Dfor-the-badge%26logo%3Dlinkedin%26logoColor%3Dwhite" alt="profile of LinkedIn with username Anmol-Baranwal" width="91" height="28"&gt;&lt;/a&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Follow Latitude for more content like this.&lt;/p&gt;


&lt;div class="ltag__user ltag__user__id__8649"&gt;
  &lt;a href="/latitude" class="ltag__user__link profile-image-link"&gt;
    &lt;div class="ltag__user__pic"&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%2Forganization%2Fprofile_image%2F8649%2F4a824627-0334-40e4-8df4-7f7465a347f0.png" alt="latitude image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
      &lt;a href="/latitude" class="ltag__user__link"&gt;Latitude&lt;/a&gt;
      Follow
    &lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a href="/latitude" class="ltag__user__link"&gt;
        Latitude is the open-source LLM development platform. Build, test, and deploy your LLM-based features with confidence.
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;



</description>
      <category>programming</category>
      <category>opensource</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Understanding APIs: 10 API Concepts and Examples</title>
      <dc:creator>Opemipo Disu</dc:creator>
      <pubDate>Thu, 27 Jun 2024 12:59:58 +0000</pubDate>
      <link>https://forem.com/latitude/understanding-apis-10-api-concepts-and-examples-23cn</link>
      <guid>https://forem.com/latitude/understanding-apis-10-api-concepts-and-examples-23cn</guid>
      <description>&lt;p&gt;As a developer or a person in tech, you are likely to have heard of "APIs.” Hearing this term may get you curious. Imagine you're using a service that needs to fetch data from another server. APIs make this possible by serving as a bridge between the data and the application.&lt;/p&gt;

&lt;p&gt;This article will clarify APIs by explaining the basic concepts and practices you can apply to your API development cycle. Here is a thing you should know before getting started with APIs 😂👇:&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%2Fi8lzw28oxegw3hewvp8q.jpg" 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%2Fi8lzw28oxegw3hewvp8q.jpg" alt="one does not try meme" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://github.com/latitude-dev/latitude" rel="noopener noreferrer"&gt;⭐️  Would you consider giving us a star on GitHub? ⭐️ &lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What you will learn from this article?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Basic understanding of APIs, their key concepts, and their importance in your development cycle.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Types of APIs and their fundamentals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Best practices in API development&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tools or platforms where you can experiment with APIs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;APIs are one of the foundational components of modern development. They enable seamless interaction between applications and data. Instead of manually providing communication between applications and data, using APIs makes this interaction accessible and efficient for developers.&lt;/p&gt;

&lt;p&gt;Whether you are building a web application, a mobile application, or integrating a service, APIs are crucial in allowing different components in your application to connect with your data seamlessly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is an API?
&lt;/h2&gt;

&lt;p&gt;An API (Application Programming Interface) is a framework that consists of a series of commands, functions, and protocols that enable interaction between different applications. Its primary purpose is to define methods and data structures developers could use to interact with their software components.&lt;/p&gt;

&lt;p&gt;Think of API as a waiter in a restaurant; you tell the waiter (API) what you want, and they bring it to the kitchen (server) and then deliver your food (data) back to you. That is precisely how it works!&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%2Fazkmbkvkjlurhs1u8ow0.jpg" 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%2Fazkmbkvkjlurhs1u8ow0.jpg" alt="server meme" width="500" height="605"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;APIs serve as links that take requests from applications, fetch the necessary data from a server, and then return the processed data to the application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of APIs
&lt;/h2&gt;

&lt;p&gt;There are different types of APIs tailored for various use cases and purposes. Understanding types of APIs helps developers choose the correct API for their specific needs. Here are the most common types of APIs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Public or Open APIs&lt;/strong&gt;: These are made publicly available to any developer with little or no restrictions, enabling developers to access a service's data and functionalities.&lt;/p&gt;

&lt;p&gt;A good example of a place where you can get a public API is the &lt;a href="https://some-random-api.ml/" rel="noopener noreferrer"&gt;Some Random API platform&lt;/a&gt;. You will find a lot of API endpoints you can use freely in that service.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Internal or Private APIs&lt;/strong&gt;: Their primary intent is team collaboration. They are usually not open to external developers and are used to integrate systems and services within a team or an organization. They are restricted to developers granted access to work with the API.&lt;/p&gt;

&lt;p&gt;APIs are made private for many reasons. Some are made private to secure sensitive data, accelerate development for business reasons, or enhance internal workflows. If you're working on a large-scale application, it's best to protect your API by privatizing it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Partner APIs&lt;/strong&gt;: This is an example of a private API; they are not open to the public. However, they are specifically designed for external partners to use. Access is typically granted through a contractual agreement, allowing partners to integrate and access certain functionalities or data.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now that you know the major types of APIs, it's best to understand how and where they can be applied. Different types of APIs serve various purposes and are best suited for some specific projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  REST APIs
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;REST&lt;/strong&gt; (Representational State Transfer) or &lt;strong&gt;RESTful&lt;/strong&gt; APIs are rules for building and interacting with web applications. They rely on standard HTTP methods and protocols to enable communication between clients and servers.&lt;/p&gt;

&lt;p&gt;REST APIs are designed to be simple, scalable, and stateless, making them popular for web and mobile applications. Unlike a typical API, RESTful APIs are not a protocol; instead, they leverage them for interaction.&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%2Ffqvr2kaj2zj9b09micj2.jpg" 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%2Ffqvr2kaj2zj9b09micj2.jpg" alt="spongebob meme" width="748" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The server responds with the requested data when the client asks for it. That's how easy it is!&lt;/p&gt;

&lt;h2&gt;
  
  
  Principles of REST APIs
&lt;/h2&gt;

&lt;p&gt;Some architectural principles guide RESTful APIs; their unique architecture makes up everything, ensuring they remain efficient and easy to use. Here are some of REST APIs' unique principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Statelessness&lt;/strong&gt;: Every request from a client to a server must contain all the necessary information to understand and process the request. The server does not store any session state about the client.&lt;br&gt;&lt;br&gt;
This helps to simplify the server's architecture, as it doesn't need to manage and store session information, making the application more scalable. It also helps to give accurate information.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Client-Server Architecture&lt;/strong&gt;: In a REST API, the client and server are separate components that interact through requests and responses. The client handles the user interface and user experience, while the server manages data storage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Uniform Interface&lt;/strong&gt;: REST APIs follow a consistent way of getting access to resources. This includes using HTTP methods like &lt;code&gt;GET&lt;/code&gt;, &lt;code&gt;POST&lt;/code&gt;, &lt;code&gt;PUT&lt;/code&gt;, and &lt;code&gt;DELETE&lt;/code&gt; to URIs (Uniform Resource Identifier) to access and manipulate resources. This makes REST APIs easier to understand and accessible, as developers can rely on the patterns they are familiar with.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cacheability&lt;/strong&gt;: This is one of the principles of RESTful APIs that most developers enjoy. With REST APIs, responses from the server are labeled as cacheable or non-cacheable. Caching can reduce the number of client-server interactions and improve performance.&lt;br&gt;&lt;br&gt;
This increases efficiency by reducing unnecessary network calls, decreasing latency, and improving overall performance.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;RESTful APIs have a great structure, commonly used in the modern-day development cycle. Its major features are its principles, which make REST APIs what they are.&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%2Fgp8lrzhnn5et5ae2cbqo.jpeg" 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%2Fgp8lrzhnn5et5ae2cbqo.jpeg" alt="riding bicycle rest api meme" width="500" height="680"&gt;&lt;/a&gt;&lt;br&gt;
Image credit: &lt;a href="https://x.com/philsturgeon/status/1047527475931041792" rel="noopener noreferrer"&gt;Phil Sturgeon&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  SOAP APIs
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;SOAP&lt;/strong&gt; (Simple Object Access Protocol) API is a protocol for exchanging structured information in web applications. Unlike REST, which uses simple HTTP methods, SOAP leverages XML for its message format and follows a more complex structure.&lt;/p&gt;

&lt;p&gt;SOAP APIs are strictly used for web applications and have built-in commands to ensure the security of messages, making them suitable for applications with tight security.&lt;/p&gt;
&lt;h3&gt;
  
  
  Differences between REST and SOAP
&lt;/h3&gt;

&lt;p&gt;There are clear differences between &lt;strong&gt;REST&lt;/strong&gt; and &lt;strong&gt;SOAP&lt;/strong&gt;, as noticed in the definition above. While both are used for the web, they still differ in architecture, standards, etc. Here are some of its differences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Protocol VS Architectural Style&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SOAP&lt;/strong&gt;: A protocol with standards and rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;REST&lt;/strong&gt;: An architectural style that uses standard HTTP methods and protocols for interaction between web applications and data.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Message Format&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SOAP&lt;/strong&gt;: Uses XML for message formatting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;REST&lt;/strong&gt;: Uses JSON but can also use XML, HTML, or plain text for message formatting.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Complexity&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SOAP&lt;/strong&gt;: It's more complex due to its standards and XML messaging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;REST&lt;/strong&gt;: Simpler and more flexible, easier to implement.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Transport&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SOAP&lt;/strong&gt;: Can use various protocols (HTTP, SMTP, etc.).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;REST&lt;/strong&gt;: Typically uses HTTPS for communication.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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%2F1wb7524l1kjcwwh7qxgv.jpeg" 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%2F1wb7524l1kjcwwh7qxgv.jpeg" alt="jealous girlfriend meme" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By understanding the differences between this protocol and architectural style, developers can choose the appropriate protocol based on the needs of their specific applications.&lt;/p&gt;
&lt;h2&gt;
  
  
  JSON and XML
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;JSON (JavaScript Object Notation)&lt;/strong&gt; and &lt;strong&gt;XML (eXtensible Markup Language)&lt;/strong&gt; are standard API communication data formats. These formats serve the same primary purpose: to encode data structures between a server and a client so that both can understand.&lt;/p&gt;
&lt;h3&gt;
  
  
  JSON
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;JSON&lt;/strong&gt; is a lightweight data-interchange format derived from JavaScript. It is easy for humans to read and write and for machines to parse and generate.&lt;/p&gt;
&lt;h3&gt;
  
  
  XML
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;XML&lt;/strong&gt; is a markup language that defines the structure for encoding documents in a format readable to humans and machines. XML is mainly known for its ability to handle complex data structures.&lt;/p&gt;
&lt;h3&gt;
  
  
  Differences between JSON and XML
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Readability&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JSON&lt;/strong&gt;: Syntax is more readable, ideal for quick interaction, and more accessible for developers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;XML&lt;/strong&gt;: Comes with a more complex syntax. Best tailored for representing complex data structures and documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Size&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JSON&lt;/strong&gt;: More compact and lightweight. Results in faster data transmission and less bandwidth usage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;XML&lt;/strong&gt;: Larger due to extensive use of markdown tags.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Data Types&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JSON&lt;/strong&gt;: Supports data types such as strings, numbers, arrays, and objects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;XML&lt;/strong&gt;: All data is written in text, requiring parsing for specific data types.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Parsing and Performance&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JSON&lt;/strong&gt;: Faster to parse, especially in JavaScript environments, due to compatibility.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;XML&lt;/strong&gt;: Slower to parse and process, requiring more resources.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Schema Support&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JSON&lt;/strong&gt;: JSON schema is available but not as extensive as XML schema.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;XML&lt;/strong&gt;: XML schema is very powerful for verifying document structure and data types.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can use whichever data formats you want for communication when working with APIs. It's best to know its differences, as there is no 'perfect' data format to use in API development. You can select any of them tailored to your needs.&lt;/p&gt;
&lt;h3&gt;
  
  
  When to use
&lt;/h3&gt;

&lt;p&gt;There are cases where you can use JSON as your data format, as well as cases where you can use XML. Knowing when and where to use them is very important.&lt;/p&gt;

&lt;p&gt;You can use &lt;strong&gt;JSON&lt;/strong&gt; when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You need a lightweight data format.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Working with web APIs, especially in JavaScript environments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simplicity and readability are essential.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You are dealing with simpler data structures and need to reduce bandwidth usage.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can use &lt;strong&gt;XML&lt;/strong&gt; when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You want to handle complex data structures.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Validation of the data format and structure is needed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Working with applications that require extensive metadata and descriptive data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data interchange needs to be highly extensible and self-descriptive.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By understanding the strengths and cases when you can use both JSON and XML, developers can decide which data format to use based on the needs of their applications.&lt;/p&gt;
&lt;h2&gt;
  
  
  API Endpoints
&lt;/h2&gt;

&lt;p&gt;At this point in this article, you may be wondering what API endpoints are because you might have come across the term "API endpoints" a few times in this article.&lt;/p&gt;

&lt;p&gt;An &lt;strong&gt;API endpoint&lt;/strong&gt; is a URL at which a client can access an API to perform actions like retrieving, updating, or deleting data. Endpoints represent the functions and services provided by an API.&lt;/p&gt;

&lt;p&gt;The endpoint lets API interact with the application you are working on, enabling communication and exchange of information. They are accessed with HTTP methods such as &lt;code&gt;GET&lt;/code&gt;, &lt;code&gt;POST&lt;/code&gt;, &lt;code&gt;PUT&lt;/code&gt;, and &lt;code&gt;DELETE&lt;/code&gt;, which define the type of operation that will be performed.&lt;/p&gt;
&lt;h3&gt;
  
  
  Example of an API Endpoint
&lt;/h3&gt;

&lt;p&gt;Let's consider an example of a REST API for managing student information in a web application. The base URL for the API could be &lt;a href="https://api.example.com" rel="noopener noreferrer"&gt;&lt;code&gt;https://api.example.com&lt;/code&gt;&lt;/a&gt;. Now, let's take a look at other endpoints and responses.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Retrieve a list of students&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Endpoint&lt;/strong&gt;: &lt;a href="https://api.example.com/students" rel="noopener noreferrer"&gt;https://api.example.com/students&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP method&lt;/strong&gt;: GET&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Purpose&lt;/strong&gt;: To retrieve a list of all registered students in the system.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Request&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight shell"&gt;&lt;code&gt;GET https://api.example.com/students
&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Here is the response you get:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Opemipo Disu"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"opemipo.disu@school.com"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ralf Endrick"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ralf.endrick@school.com"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;In this example, we used the GET method to retrieve information from the system. After that, it gives us the data we requested from the endpoint in JSON format.&lt;/p&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Another example could be an endpoint for registering students in the system. Let's create that and see its response.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add a new student&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Endpoint&lt;/strong&gt;: &lt;a href="https://api.example.com/students" rel="noopener noreferrer"&gt;https://api.example.com/students&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP Method&lt;/strong&gt;: POST&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Purpose&lt;/strong&gt;: Adding a new student to the management system.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Request&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;POST&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;https://api.example.com/students&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="err"&gt;Content-Type:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;application/json&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Opemipo Disu"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"opemipo.disu@student.com"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;Response&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Opemipo Disu"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"opemipo.disu@student.com"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;In this case, you will notice we are working with the &lt;a href="https://api.example.com/students" rel="noopener noreferrer"&gt;https://api.example.com/students&lt;/a&gt; endpoint, basically because we want to add a new student to the system; the only way the users could be accessed is by using that endpoint because it should have information related to the student in it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Now, let's think of deleting a specific student's information. Here's how we could go about that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Deleting a Student's information&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Endpoint&lt;/strong&gt;: &lt;a href="https://api.example.com/students/%7Bid%7D" rel="noopener noreferrer"&gt;&lt;strong&gt;https://api.example.com/students/{id}&lt;/strong&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP method&lt;/strong&gt;: DELETE&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Purpose&lt;/strong&gt;: To delete a student by their ID.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Request&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  DELETE https://api.example.com/students/1

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


&lt;p&gt;&lt;strong&gt;Response&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  {
    "message": "Student deleted successfully."
  }

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

&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you want to delete a student's information using an API, addressing the specific data by its ID in the API endpoint ensures that you target the correct record.&lt;/p&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;By understanding how endpoints work and seeing some examples, developers can also use APIs to interact with web applications and perform various operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;HTTP methods&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;HTTP methods define the action performed on resources identified by the API endpoints. We have almost 40 registered HTTP methods, but here are the four most common ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GET&lt;/li&gt;
&lt;li&gt;POST&lt;/li&gt;
&lt;li&gt;PUT&lt;/li&gt;
&lt;li&gt;DELETE&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, we will go into what these methods are used for and provide an example for each of the four most commonly used HTTP methods.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;GET&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;GET&lt;/strong&gt; method retrieves data from the server without making any changes to the server data.&lt;/p&gt;

&lt;p&gt;An example of how it works was showcased earlier in the endpoint for retrieving students' information.&lt;/p&gt;

&lt;p&gt;An example, once again:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Request&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET https://api.example.com/students

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Response&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[
  {
    "id": 1,
    "name": "Opemipo Disu",
    "email": "opemipo.disu@school.com"
  },
  {
    "id": 2,
    "name": "Ralf Endrick",
    "email": "ralf.endrick@school.com"
  }
]

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

&lt;/div&gt;



&lt;p&gt;As seen above, the GET method was used to retrieve the data shown in JSON format from the endpoint.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;POST&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;POST&lt;/strong&gt; method sends data to the server to create a new resource. Unlike GET, which is used to retrieve data, POST submits data to the server. GET is dependent on the data sent to the server by POST.&lt;/p&gt;

&lt;p&gt;An example of how the POST method could be used was explained earlier. The student's registration example was a precise instance where the POST method could be used.&lt;/p&gt;

&lt;p&gt;If you missed it, please take a look at it again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Request&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST https://api.example.com/students
Content-Type: application/json

{
  "name": "Opemipo Disu",
  "email": "opemipo.disu@student.com"
}

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

&lt;/div&gt;



&lt;p&gt;We sent a request using the POST method. This was used because we wanted to add a student's information to the server.&lt;/p&gt;

&lt;p&gt;Here's the response we get by doing that:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "id": 1,
  "name": "Opemipo Disu",
  "email": "opemipo.disu@student.com"
}

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

&lt;/div&gt;



&lt;p&gt;In the response above, the POST method automatically helped to create and register the new student. That is just how the POST method works.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;PUT&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This method is used to update existing resources with new data or create a new resource if it doesn’t exist. It replaces the current information of the resource with the data provided in the request.&lt;/p&gt;

&lt;p&gt;Let's take an example of updating a student's information using the PUT method.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Request&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PUT https://api.example.com/students/1
Content-Type: application/json

{
  "name": "Opemipo Hay",
  "email": "opemipo.hay@student.com"
}

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Response&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "id": 1,
  "name": "Opemipo Hay",
  "email": "opemipo.hay@student.com"
}

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

&lt;/div&gt;



&lt;p&gt;In this case, we had to locate the information we wanted to update using its ID. We used the PUT method and added the data we wanted to update.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;DELETE&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This method is used to delete existing resources. When a DELETE request is made, the server deletes the resource the URI identifies.&lt;/p&gt;

&lt;p&gt;For this, we will take an example of deleting a student's information by its ID.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Request&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DELETE https://api.example.com/students/1

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Response&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "message": "Student's information deleted successfully"
}

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

&lt;/div&gt;



&lt;p&gt;In the request, we used the DELETE method to delete the user's information using their ID. After, we got a response saying, "Student's information deleted successfully."&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;HTTP Status Codes&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;HTTP status codes are responses returned by servers to indicate the result of the client's request. They play a vital role in API communication by displaying the outcome of the client's request to the server.&lt;/p&gt;

&lt;p&gt;Here are some common out of many HTTP status codes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;200&lt;/li&gt;
&lt;li&gt;400&lt;/li&gt;
&lt;li&gt;500&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;200 (OK)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;When you get this response, the request is successful, and the server returns the requested data.&lt;/p&gt;

&lt;p&gt;An example of where you can get this response is when there's a successful GET request to retrieve data. This indicates in the &lt;strong&gt;network&lt;/strong&gt; tab of your &lt;strong&gt;developer console&lt;/strong&gt; that the operation was successful and that the server processed the request as expected.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;400 (Not Found)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You get this response when the server cannot find the requested resource or data. This could be because data wasn't fetched correctly or because the resource doesn’t exist.&lt;/p&gt;

&lt;p&gt;An example of where you can get this error is when you use a &lt;code&gt;GET&lt;/code&gt; request for a user that does not exist. Let's have a quick look at that:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Request&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET https://api.example.com/users/583

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Response&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "status": 404,
  "message": "Resource not found"
}

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

&lt;/div&gt;



&lt;p&gt;The response gave an error because there was no resource in the presumed endpoint.&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%2F3u35kypk3g7hmhu4is63.jpeg" 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%2F3u35kypk3g7hmhu4is63.jpeg" alt="copying answer meme" width="540" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  500 (Internal Server Error)
&lt;/h3&gt;

&lt;p&gt;When you get this response, the server encountered an unexpected condition that prevented it from fulfilling the request.&lt;/p&gt;

&lt;p&gt;You could get this response when a server-side error occurred while processing the request.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Request&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;POST&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;https://api.example.com/students&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="err"&gt;Content-Type:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;application/json&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Opemipo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"opemipo.disu@example.com"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Response&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Internal server error"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A &lt;strong&gt;500 Internal Server Error&lt;/strong&gt; indicates a general server-side error. It shows that something went wrong on the server, not necessarily due to the client's request.&lt;/p&gt;

&lt;p&gt;While there are a few other HTTP status codes, &lt;a href="https://www.geeksforgeeks.org/10-most-common-http-status-codes/" rel="noopener noreferrer"&gt;you can read this article to learn more about them&lt;/a&gt;. The ones available in this article are the most common status codes.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Authentication and Authorization&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;While API security is essential, authentication and authorization are critical components of API security. Authentication in API development is the process of verifying the identity of a user or an application, typically through techniques like API keys, OAuth tokens, or user credentials.&lt;/p&gt;

&lt;p&gt;Authorization, on the other hand, determines what resources or operations the authenticated entity is allowed to access.&lt;/p&gt;

&lt;p&gt;These processes ensure only valid users or applications can access the API and perform actions based on their permissions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Basic Concepts of API Keys and OAuth
&lt;/h3&gt;

&lt;p&gt;An &lt;strong&gt;API key&lt;/strong&gt; is a unique identifier used to authenticate requests associated with a project or application.&lt;/p&gt;

&lt;p&gt;API keys are included in the API requests to identify the calling project or application. They are typically used to track and control how the API is being used. API keys should be kept secure and not exposed in code to prevent unauthorized access.&lt;/p&gt;

&lt;p&gt;However, they are not secure and should be used with other security measures, such as environmental variables.&lt;/p&gt;

&lt;p&gt;On the other hand, &lt;strong&gt;OAuth&lt;/strong&gt; (Open Authorization) is a token-based authentication framework that allows third-party applications to access user data without exposing user credentials.&lt;/p&gt;

&lt;p&gt;It is widely used by platforms like Google and GitHub to grant limited access to user data. It involves a flow where the user authorizes the application, and the application receives an access token that can be used to make authorized API requests. It provides a more flexible and secure method compared to API keys.&lt;/p&gt;

&lt;h3&gt;
  
  
  Importance for API Security
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prevention of Unauthorized Access&lt;/strong&gt;: Authentication ensures that only users and applications can access the API, preventing unauthorized access to sensitive data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rate Limiting&lt;/strong&gt;: Authentication helps track APIs' usage, enabling the implementation of rate limits to prevent data misuse.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitoring&lt;/strong&gt;: Authentication allows for detailed logging and monitoring of API usage, which can be crucial for identifying errors.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Rate Limiting and Throttling
&lt;/h2&gt;

&lt;p&gt;APIs use rate limiting to keep things stable and safe. This means they limit how many requests a user or application can make in a certain amount of time. This helps prevent servers from getting overloaded.&lt;/p&gt;

&lt;p&gt;It also ensures that all users in an application get an equal distribution of the API's resources.&lt;/p&gt;

&lt;p&gt;To manage rate limits, applications should gradually increase the wait time between retries if a limit is reached. Monitor your API usage to stay within these limits. If you store frequently used data, you can reduce the number of requests you make.&lt;/p&gt;

&lt;p&gt;Using page numbers and filters can help you manage large data sets more quickly, reducing the load on the API.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Testing APIs&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Testing APIs is essential in the API development process, ensuring that your application communicates correctly with the server and handles data as expected. Dedicated tools allow you to make API requests, check and analyze responses, and log issues early in the development cycle.&lt;/p&gt;

&lt;p&gt;Let's explore some of the best tools for testing APIs and provide an essential guide on effectively testing an API using these tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  API testing tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.postman.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Postman&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; Postman is a tool that simplifies API development. It allows you to construct and send requests, organize APIs into collections, automate tests, and generate detailed reports.&lt;/p&gt;

&lt;p&gt;Ideal for both manual and automated testing, Postman supports various HTTP methods, making it flexible for testing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://curl.se/" rel="noopener noreferrer"&gt;cURL&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; This command-line technique enables data transfer with URLs.&lt;/p&gt;

&lt;p&gt;cURL is used mainly because of its accessibility and flexibility, especially for developers comfortable with the command line.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://swagger.io/" rel="noopener noreferrer"&gt;&lt;strong&gt;Swagger&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; Swagger provides a suite of tools for API documentation and testing. It allows you to visualize and interact with the API's resources without manually creating requests.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Guide on how to Test an API&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Define the Endpoint and Method&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Determine the API endpoint you wish to test and the HTTP method (GET, POST, PUT, DELETE) to use.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Example: To fetch user data, you might use:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  GET https://api.example.com/users

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

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Set Up the Request&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Postman&lt;/strong&gt;: Open Postman, create a new request, enter the endpoint URL, and select the HTTP method. Add necessary headers like API keys and parameters.&lt;/p&gt;

&lt;p&gt;For a GET request to retrieve users, just set the URL to &lt;a href="https://api.example.com/users" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;code&gt;https://api.example.com/users&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; and include any required headers or parameters.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Send the Request&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click "&lt;strong&gt;Send&lt;/strong&gt;" in Postman to execute the request and observe the response.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Analyze the Response&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Status Code&lt;/strong&gt;: Indicates the success or failure of the request (e.g., 200 OK, 404 Not Found).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Headers&lt;/strong&gt;: Provide metadata about the response.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Body&lt;/strong&gt;: Contains the data returned by the API, typically in JSON or XML format.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example&lt;/strong&gt;: A successful GET request might return a status code 200 and a JSON body with user data.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Handle Errors&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If the request fails, analyze the status code and error message to diagnose the issue.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Example&lt;/strong&gt;: A &lt;strong&gt;404 status code&lt;/strong&gt; indicates that the endpoint is incorrect or the resource does not exist.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Adjust the request accordingly and retry.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automate Testing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Postman supports scripting to automate tests. You can write pre-request scripts to set conditions and test scripts to validate responses.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;: To verify a successful response, add the following script in Postman's "Tests" tab:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  pm.test("Status code is 200", function () {
      pm.response.to.have.status(200);
  });

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

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By utilizing tools like Postman, cURL, and Swagger, you can streamline the process of testing APIs, ensuring your application interacts with external services reliably and efficiently.&lt;/p&gt;

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

&lt;p&gt;Understanding APIs is essential for any developer who is just starting. They are a major component of modern development, enabling seamless communication and data exchange between applications.&lt;/p&gt;

&lt;p&gt;This article has covered the fundamental concepts of APIs, including their types, key principles of REST and SOAP APIs, data formats like JSON and XML, and the importance of API endpoints and HTTP methods.&lt;/p&gt;

&lt;p&gt;Additionally, we explored aspects of API security through authentication and authorization, as well as the importance of rate limiting and throttling.&lt;/p&gt;

&lt;p&gt;If you found this article helpful, please consider giving us a star on GitHub&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/latitude-dev/latitude" rel="noopener noreferrer"&gt;⭐ Would you consider giving us a Star on GitHub?⭐&lt;/a&gt;&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%2Fan3sgmfqrn9p5s07a6dj.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%2Fan3sgmfqrn9p5s07a6dj.gif" alt="thank you gif" width="480" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your support helps us to continue improving and providing valuable content to the developer community. Thank you for reaching this far in this article 💙!&lt;/p&gt;

</description>
      <category>api</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Mastering Embedded Analytics: A Getting Started Guide 📊</title>
      <dc:creator>Opemipo Disu</dc:creator>
      <pubDate>Tue, 11 Jun 2024 09:12:13 +0000</pubDate>
      <link>https://forem.com/latitude/mastering-embedded-analytics-a-getting-started-guide-4od5</link>
      <guid>https://forem.com/latitude/mastering-embedded-analytics-a-getting-started-guide-4od5</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;TL;DR&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This article will walk you through all the information you need about embedded analytics and &lt;a href="https://tools.latitude.so/" rel="noopener noreferrer"&gt;&lt;strong&gt;Latitude&lt;/strong&gt;&lt;/a&gt;, including how to use Latitude to visualize your data, with a detailed guide.&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%2Fpj1nxle54ixegi27ovzg.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%2Fpj1nxle54ixegi27ovzg.png" alt="Open glasses meme" width="640" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Overview of Embedded Analytics&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;At this point, you may want to know what &lt;strong&gt;embedded analytics&lt;/strong&gt; is. It refers to integrating data visualization into software or a web application. Instead of viewing data as numbers or as disorganized, there are different ways to display data in an organized way and embed it in an application.&lt;/p&gt;

&lt;p&gt;Modern technologies like charting libraries, web components, APIs, and SDKs have made data visualization seamless. An alternative to visualizing your data could be using an underlying technology, but it could be challenging to achieve compared to emerging technologies such as the ones mentioned earlier.&lt;/p&gt;

&lt;p&gt;Modern charting tools provide users with pre-built components that make them easy to work with. While using these tools, you only need to provide raw data to work with in most cases. This makes it easy to include your data visualization in your application.&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%2Flxiidgydos0owp34lwjm.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%2Flxiidgydos0owp34lwjm.gif" alt="are you ready gif" width="498" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ICYMI&lt;/strong&gt;: We published an article a couple of weeks ago on the &lt;a href="https://blog.latitude.so/7-best-chart-libraries-developers-2024/" rel="noopener noreferrer"&gt;&lt;strong&gt;best chart libraries to use in 2024&lt;/strong&gt;&lt;/a&gt;. It's best to read that article if you are looking for a chart library to work with. I've included in the article comprehensive details about the best charting libraries to work with according to your needs.&lt;/p&gt;

&lt;p&gt;By the way, I'm a part of Latitude's team, and it would mean a lot if you could check out our open-source framework for embedded analytics and &lt;a href="https://github.com/latitude-dev/latitude" rel="noopener noreferrer"&gt;&lt;strong&gt;give us a star on GitHub&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We're working to provide a better developer experience, and all support is appreciated!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/latitude-dev/latitude" rel="noopener noreferrer"&gt;&lt;strong&gt;Star Latitude on GitHub ⭐️&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay, now - let's get back at it! 😉&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Key Concepts of Embedded Analytics&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Real-time data access&lt;/strong&gt;: Embedded analytics often provide access to real-time data. This lets users view analytics based on the most current data available. While doing this, you must know that this is a dynamic way of rendering analytics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Customization&lt;/strong&gt;: Most embedded analytics tools come with various pre-built components. You can customize the analytics tailored to your needs with the help of pre-built themes or custom styling. These tools also let you include features you want in your analytics. With the help of customization, you can display your analytics with the features or style you want to embed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integration with databases and host applications&lt;/strong&gt;: Embedded analytics tools let you work directly with databases and host applications as data sources. While data could be rendered dynamically, many of these tools render data differently, just as various technologies are used for database management.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Focus on User Experience&lt;/strong&gt;: This is the primary purpose of embedded analytics; it focuses on how data can be visualized in the best way for users. Providing great functionality in analytics helps users understand the context of the analysis.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are tons of things embedded analytics could be used for. Embedding analytics works in hands with your data, but you may be wondering what its purpose is. For instance, you see a dashboard that displays the usage stats in an application as a chart—an example of embedded analytics integrated into that application. Different tools for visualizing data have various methods of sourcing data.&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%2F8loy0uuw0yxh2dzmwj4d.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%2F8loy0uuw0yxh2dzmwj4d.gif" alt="let's get to work gif" width="400" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Getting Started with Latitude&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;There are different tools available for embedding analytics into your application. One option is &lt;a href="https://tools.latitude.so/" rel="noopener noreferrer"&gt;&lt;strong&gt;Latitude&lt;/strong&gt;&lt;/a&gt;, an open-source framework that allows you to build and embed interactive analytics based on your database or data warehouse.&lt;/p&gt;

&lt;p&gt;With Latitude, you only need to write composable SQL queries with custom parameters to pull data and transform it into analytics on your front end. The framework works with &lt;strong&gt;Svelte&lt;/strong&gt; for the front end; with the pre-built components Latitude provides, you can include your components as attributes to display your analytics.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How Latitude Works&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Latitude works with two major things: your &lt;strong&gt;database&lt;/strong&gt; or &lt;strong&gt;data warehouse&lt;/strong&gt; and your &lt;strong&gt;front end&lt;/strong&gt;, with the help of the created database. Additionally, data can be displayed statically using CSV files. By doing this, there's no need to worry about anything apart from creating SQL queries.&lt;/p&gt;

&lt;p&gt;Latitude isn't limited to using Svelte alone for the front end; you can also integrate Latitude into your &lt;strong&gt;React&lt;/strong&gt; application. All you need to do after configuring the parameters is include them in the components for the data you have to display.&lt;/p&gt;

&lt;p&gt;With Latitude, you're on the right path to embedding your analytics into your application.&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%2Fo2bnmggflwl0qefzre89.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%2Fo2bnmggflwl0qefzre89.gif" alt="rushing gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Prerequisites for getting started with Latitude&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Basic knowledge of SQL.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;npm &amp;gt;= 8.5.5&lt;/code&gt; or higher installed on your local development machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vast knowledge of React or Svelte.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Basic knowledge of CSS frameworks such as Tailwind for styling.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Away from the hype, Latitude is one tool you will love to try out because of its accessibility! To start with Latitude, you must install Latitude's CLI on your local machine. The command below will install Latitude's CLI globally on your local machine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;npm install -g @latitude-data/cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After installing the CLI, you need to create your Latitude project. You can only configure your &lt;strong&gt;queries&lt;/strong&gt; and &lt;strong&gt;views&lt;/strong&gt; by creating a project in Latitude. Use the command below to create a Latitude project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;latitude start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is where your actual journey of building with Latitude begins. When you run the command, you should input the project name when requested and select the type of project, whether a prebuilt project (DuckDB + CSV demo) or an empty project from scratch.&lt;/p&gt;

&lt;p&gt;By doing that, you have your project created locally. Afterward, &lt;code&gt;cd&lt;/code&gt; into the project name. After doing this, you can execute the &lt;code&gt;code .&lt;/code&gt; command to work on the project from your IDE. From here, you need to understand Latitude's project structure.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Project structure&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Before working on any project, you need to understand its structure, the functionalities of each path, and the file in every path.&lt;/p&gt;

&lt;p&gt;In Latitude, there are two significant directories: &lt;code&gt;queries&lt;/code&gt; and &lt;code&gt;views&lt;/code&gt;. But before going into that, here is the project structure of a Latitude project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;project-name/
├── queries/
├── views/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are the only two paths to work with. In these paths, you will find files. The &lt;code&gt;queries&lt;/code&gt; directory contains a configuration file, &lt;code&gt;source.yml,&lt;/code&gt; and SQL queries. Although, when you create a project from scratch, you won't find any query files. You will have to create your query files.&lt;/p&gt;

&lt;p&gt;Also, you can add your CSV file to the queries directory if you like. In this context, fundamental knowledge of SQL or other query languages is best. &lt;code&gt;queries&lt;/code&gt; in Latitude can be regarded as the &lt;strong&gt;data source&lt;/strong&gt; displayed in the embedded analytics.&lt;/p&gt;

&lt;p&gt;For the &lt;code&gt;views&lt;/code&gt; path, it controls the entire front end. You will find an HTML file in that directory that works with Svelte. In that file, you interact with your queries using parameters configured in your queries.&lt;/p&gt;




&lt;p&gt;Now, we need to start working on queries. I will use &lt;a href="https://gist.githubusercontent.com/rioto9858/ff72b72b3bf5754d29dd1ebf898fc893/raw/1164a139a780b0826faef36c865da65f2d3573e0/top50MusicFrom2010-2019.csv" rel="noopener noreferrer"&gt;this CSV file&lt;/a&gt;, Top 50 Spotify Music from 2010 to 2019, as the data source in this guide. You could download the file and keep it on your &lt;code&gt;query&lt;/code&gt; path.&lt;/p&gt;

&lt;p&gt;The next thing to do is set up your queries. This is where your SQL knowledge will be beneficial. Create a file in the same &lt;code&gt;queries&lt;/code&gt; directory to capture your data source. You can use the query snippet below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;select title,
       artist,
       genre,
       music_year,
       BeatsPerMinute,
from read_csv_auto('queries/spotify.csv')
order by music_year asc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code snippet above shows that the only fields to extract data are the title, artist, genre, music_year, and BeatsPerMinute fields from the CSV file. Toward the end of the snippet, the sixth line specifies the CSV file from which to pull data.&lt;/p&gt;

&lt;p&gt;After doing this, you need another query to sum up your data. To do this, you can give the file a suitable name for an aggregated query file. In this case, I’ll name the query file &lt;code&gt;firstcomp.sql&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;select
  music_year,
  count(*) as all_titles,
from { ref('first') }
group by 1
order by 1 asc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the query above, the &lt;code&gt;music_year&lt;/code&gt; field from the CSV file was selected, and then the primary query file, &lt;code&gt;first.sql&lt;/code&gt; , was referenced &lt;code&gt;first&lt;/code&gt;. It indicates that data should be grouped differently and in ascending order.&lt;/p&gt;

&lt;p&gt;To &lt;strong&gt;verify&lt;/strong&gt; if your data was extracted correctly, you will have to run the query above using Latitude's CLI with this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;latitude run second_filename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By doing that, this should be your result:&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%2Fh6s195yoa6r0skpf1w30.jpg" 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%2Fh6s195yoa6r0skpf1w30.jpg" alt="result from terminal gif" width="800" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you get something like this, you're on the right path. After verifying your queries and data source, the next thing to do is work on how the data should be displayed.&lt;/p&gt;

&lt;p&gt;Now, let's navigate to the &lt;code&gt;views/&lt;/code&gt; directory to set the front end for the analytics we want to display.&lt;/p&gt;

&lt;p&gt;Unlike the &lt;code&gt;queries/&lt;/code&gt; path, where we have to work with multiple files, we will work with &lt;code&gt;index.html&lt;/code&gt; alone. You can add this snippet to your HTML code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;svelte:head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Demo project&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/svelte:head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;View&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"gap-8 p-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;Row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Text.H2&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"font-bold"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Top 50 Spotify music dataset (2010 to 2019)&lt;span class="nt"&gt;&amp;lt;/Text.H2&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/Row&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;Row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;LineChart&lt;/span&gt;
      &lt;span class="na"&gt;query=&lt;/span&gt;&lt;span class="s"&gt;"firstagg"&lt;/span&gt;
      &lt;span class="na"&gt;x=&lt;/span&gt;&lt;span class="s"&gt;"music_year"&lt;/span&gt;
      &lt;span class="na"&gt;y=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt;
    &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/Row&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;Row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Table&lt;/span&gt; &lt;span class="na"&gt;query=&lt;/span&gt;&lt;span class="s"&gt;"first"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/Row&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/View&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see in the code above, it works with Svelte. Now, we aim to display analytics with the components available. The &lt;code&gt;LineChart&lt;/code&gt; component was used because we wanted to display our data as a line chart. Afterward, we added values to the components to work with the parameters in the query files. I also added a table to work with the primary query file.&lt;/p&gt;

&lt;p&gt;When you have that code in your &lt;code&gt;index.html&lt;/code&gt; file, you can now run the project using this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;latitude dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By doing this, you'll be redirected to &lt;a href="http://localhost:3000/" rel="noopener noreferrer"&gt;&lt;strong&gt;localhost:3000&lt;/strong&gt;&lt;/a&gt; from your terminal. Then, you should have this view on your browser displaying your data analytics.&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%2Fbe2cswp3q3a0zdn41iha.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%2Fbe2cswp3q3a0zdn41iha.png" alt="result image" width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can embed your analytics into any website using React or HTML. If you are familiar with React, &lt;a href="https://docs.latitude.so/react/getting-started/introduction" rel="noopener noreferrer"&gt;&lt;strong&gt;this documentation&lt;/strong&gt;&lt;/a&gt; will guide you on embedding your analytics application with React.&lt;/p&gt;

&lt;p&gt;To embed this in any application, you must ensure your Latitude application is deployed on &lt;strong&gt;Latitude Cloud&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To deploy your application, you need to sign up for Latitude Cloud.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;latitude signup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you have an existing Latitude Cloud account, you can log in to access it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;latitude login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After doing this, you can deploy your application by running the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;latitude deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Congratulations! You have your Latitude application deployed. 🎉&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%2Fi4jkofdu8jmi6m3yrlvj.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%2Fi4jkofdu8jmi6m3yrlvj.gif" alt="thumbs up gif" width="728" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that we have our Latitude application deployed, the last thing to do is embed the analytics in our Latitude into another website. You can use the &lt;strong&gt;iframe embedding&lt;/strong&gt; technique if you're not using React.&lt;/p&gt;

&lt;p&gt;This could be done in three ways, depending on what you want to achieve by embedding. It could be embedded directly using parameters in the iframe's value or passing signed parameters.&lt;/p&gt;

&lt;p&gt;To embed your analytics directly, you can put this iframe in your code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;iframe&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://app-url.latitude.so/"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"100%"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"400"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this context, you need to replace the source, &lt;code&gt;https://app-url.latitude.so/&lt;/code&gt;, with the actual URL of your deployed application. The iframe code above helps embed your entire analytics into your web application.&lt;/p&gt;

&lt;p&gt;That is the easiest way to embed analytics into your application, literally. You can learn about the other methods; &lt;a href="https://docs.latitude.so/guides/embed/iframe#passing-parameters" rel="noopener noreferrer"&gt;&lt;strong&gt;passing parameters&lt;/strong&gt;&lt;/a&gt; and &lt;a href="https://docs.latitude.so/views/basics/signed-parameters" rel="noopener noreferrer"&gt;&lt;strong&gt;passing signed parameters&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As much as there are tons of tools for visualizing data and embedding analytics into your application, Latitude makes this look very easy. It's not false hype, but the developer experience of Latitude is what makes it a great tool to use. Imagine connecting your data to your front end to integrate analytics into your application seamlessly - it's something you want to try out.&lt;/p&gt;

&lt;p&gt;You can learn more about Latitude by going through &lt;a href="https://docs.latitude.so/" rel="noopener noreferrer"&gt;&lt;strong&gt;Latitude's documentation&lt;/strong&gt;&lt;/a&gt;. There are a series of guides that can walk you through everything about Latitude.&lt;/p&gt;

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

&lt;p&gt;This article transitioned from embedded analytics to how you can get started with it easily using Latitude. If you don't understand how to use any embedded analytics tool, Latitude is one you can try out because of its seamlessness and developer experience.&lt;/p&gt;

&lt;p&gt;Note that Latitude can be used with React or Svelte. Either way, they’re both great ways to use Latitude.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Support us 🙏 ⭐️&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Latitude is open-source; you can contribute to the project as we want to make it more seamless for developers. If you love the project, you can go ahead and give it a star; we appreciate it!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/latitude-dev/latitude" rel="noopener noreferrer"&gt;&lt;strong&gt;Star Latitude on GitHub ⭐️&lt;/strong&gt;&lt;/a&gt;&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%2Fhshrv764ke23mkqrprv1.jpeg" 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%2Fhshrv764ke23mkqrprv1.jpeg" alt="give latitude a star image" width="500" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope you got the best out of this article. I look forward to hearing your thoughts about using Latitude for your embedded analytics in the comment section. I can't wait to have you read my next article. 👋&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>11 Tools To Improve Your Developer Experience by 10x 🚀</title>
      <dc:creator>Opemipo Disu</dc:creator>
      <pubDate>Thu, 30 May 2024 14:40:50 +0000</pubDate>
      <link>https://forem.com/latitude/11-tools-to-improve-your-developer-experience-by-10x-1f22</link>
      <guid>https://forem.com/latitude/11-tools-to-improve-your-developer-experience-by-10x-1f22</guid>
      <description>&lt;p&gt;There are numerous tools designed to make development seamless and efficient for developers.&lt;/p&gt;

&lt;p&gt;As a developer, leveraging the right resources for aspects like development, design, and even communication can boost your level of productivity and streamline your workflow.&lt;/p&gt;

&lt;p&gt;This article will cover 11 tools to take your developer experience to the next level and beyond. Also, it will cover reasons why they are essential, their benefits, and how to maximize their capabilities.&lt;/p&gt;

&lt;p&gt;Whether you are a junior or mid-level developer, this article is for you. Let's get into this!&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%2Fzzj8yz4782akfysb5ub2.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%2Fzzj8yz4782akfysb5ub2.gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Overview of Developer Experience&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Developer Experience (DX or DevEX) refers to the overall satisfaction and productivity developers have during their development cycle as they interact with various tools and environments. Similar to what non-technical folks know as User Experience (UX), Developer Experience specifically involves tools used by developers.&lt;/p&gt;

&lt;p&gt;A great developer experience results in increased productivity and improved developer job satisfaction. Tools that offer a superior developer experience can substantially impact your work, allowing you to streamline tasks and produce high-quality code. These tools make coding, deployment, testing, and other development processes much more efficient.&lt;/p&gt;

&lt;p&gt;Developer Experience is directly connected to developer productivity; working with tools that make life easier for developers boosts productivity. In essence, a great developer experience supercharges your developer productivity&lt;/p&gt;

&lt;p&gt;Whether you're just starting your career or have some coding experience, optimizing your workflow with tools that offer a great developer experience is crucial. These tools provide a variety of features, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Consistency in development environments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enhanced collaboration with your team.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improved structures and code quality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automated workflows.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here are a bunch of developer tools that can immensely improve your developer experience:&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Visual Studio Code&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;
&lt;/h3&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%2F6a5blqb04qhe2lz6b05j.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%2F6a5blqb04qhe2lz6b05j.png" alt="VSCode logo" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Visual Studio Code&lt;/strong&gt;, or VSCode, is one of the most popular integrated development environments (IDEs). Developed by Microsoft, VSCode supports various technical tasks, including coding, debugging, and compiling. Its innovative features, such as IntelliSense, provide intelligent code completions based on imported modules, significantly enhancing coding efficiency.&lt;/p&gt;

&lt;p&gt;VSCode is highly customizable, allowing developers to tailor their workspace to suit their needs. With a vast library of extensions, developers can add functionality to streamline their workflow, whether for coding, debugging, or deployment. These extensions have many purposes, from improving code quality and structure to automating repetitive tasks.&lt;/p&gt;

&lt;p&gt;One of the mind-blowing features of Visual Studio Code is its seamless integration with GitHub. Without leaving the IDE, you can manage your repositories, commit changes, and sync code with remote repositories. This integration facilitates efficient version control and collaboration, enabling developers to push and pull code, manage branches, and review changes within the same environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Features of Visual Studio Code&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lightweight yet powerful IDE&lt;/strong&gt;: Visual Studio Code offers numerous features while remaining a lightweight IDE, which contributes to its speed. Its extensibility can be considered "lightweight" as it doesn't include any extensions by default; you must install the ones you need. While coding, there's a lot you can accomplish. For instance, you can debug while performing other tasks. One of the primary reasons Visual Studio Code is considered a powerful code editor is its integration with IntelliSense. Even features like debugging and built-in Git support are potent tools that Visual Studio Code provides. You can perform many remarkable tasks with it, making it incredibly powerful.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Built-in support for multiple languages&lt;/strong&gt;: Visual Studio Code supports hundreds of major programming languages, including JavaScript, PHP, Python, Go, etc. If the language you want to work with isn't supported by default, you'll need to navigate to the &lt;strong&gt;Extensions&lt;/strong&gt; tab and search for extensions compatible with your desired language. These extensions can provide some of Visual Studio Code's built-in features, such as debugging and IntelliSense. Visual Studio Code also provides guides on how to use the different languages it supports by default.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Extensive library of extensions&lt;/strong&gt;: In Visual Studio Code, developers have many extensions created to simplify code writing. In the environment, you'll find a tab for Extensions; this tab directly interfaces with the Visual Studio Code Marketplace. This Marketplace offers numerous extensions, allowing you to choose based on your needs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tips for maximizing use&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Exploring and utilizing extensions for better functionality&lt;/strong&gt;: As mentioned earlier, Visual Studio Code provides you with many extensions that different developers build. These extensions have their own purposes, but most aim to improve the workflow for developers. You can navigate to the &lt;strong&gt;Extensions&lt;/strong&gt; tab in the environment and choose the one you want to work with. Here are some customizable extensions that can improve your workflow:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=GitHub.copilot" rel="noopener noreferrer"&gt;&lt;strong&gt;GitHub Copilot&lt;/strong&gt;&lt;/a&gt;: AI code completion tool for code completion&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode" rel="noopener noreferrer"&gt;&lt;strong&gt;Prettier&lt;/strong&gt;&lt;/a&gt;: Automatic code formatting extension&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=figma.figma-vscode-extension" rel="noopener noreferrer"&gt;&lt;strong&gt;Figma for VSCode&lt;/strong&gt;&lt;/a&gt;: Extension for streamlining design to code workflow for Visual Studio Code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens" rel="noopener noreferrer"&gt;&lt;strong&gt;GitLens&lt;/strong&gt;&lt;/a&gt;: Supercharge Git in Visual Studio Code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Using keyboard shortcuts to enhance productivity&lt;/strong&gt;: Many small tasks can consume time, but using keyboard shortcuts can automate these tasks. For instance, formatting your code can take a lot of time, but it can be done quickly by pressing the &lt;code&gt;Shift + Option + F&lt;/code&gt; keys. Visual Studio Code provides numerous default keyboard shortcuts to perform tasks and accelerate development. Note that keyboard shortcuts are customizable.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://tunnel.dev" rel="noopener noreferrer"&gt;&lt;strong&gt;Tunnel&lt;/strong&gt;&lt;/a&gt;
&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%2Fckuwxp711brtc1ajgr8x.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%2Fckuwxp711brtc1ajgr8x.png" alt="Image description" width="800" height="167"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tunnel&lt;/strong&gt; is a collaborative tool that lets developers work together on a project by providing feedback and creating custom workflows. With Tunnel, developers can report bugs in your project. With just a few lines of code, you can start with Tunnel, making integration easy.&lt;/p&gt;

&lt;p&gt;Integration with Tunnel is made easy with frameworks like React, Next (app and page routed), and VanillaJS. Additionally, Tunnel streamlines collecting, organizing, and resolving user issues.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Features of Using Tunnel&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simple integration&lt;/strong&gt;: As mentioned earlier, Tunnel provides ease of use and accessibility for developers. It ensures that setting up and managing tunnels in local development environments is straightforward and requires minimal configuration. With just a few lines of code, you can start with Tunnel. Here's an example of how to set up Tunnel in a JavaScript environment.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script&lt;/span&gt;
  &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://tunnelapp.dev/__tunnel/script.js"&lt;/span&gt;
  &lt;span class="na"&gt;data-project-id=&lt;/span&gt;&lt;span class="s"&gt;"PROJECT_ID"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you're in a React environment, you can use this code snippet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;TunnelToolbar&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;tunnel&lt;/span&gt;&lt;span class="sr"&gt;/react&lt;/span&gt;&lt;span class="err"&gt;;
&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;My App&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;TunnelToolbar&lt;/span&gt; 
        &lt;span class="na"&gt;projectId&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="na"&gt;YOUR_PROJECT_ID&lt;/span&gt;
        &lt;span class="na"&gt;branch&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="na"&gt;BRANCH_NAME&lt;/span&gt;
      &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&amp;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;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Access control&lt;/strong&gt;: When your project is deployed, you can invite people to collaborate. It lets you restrict who can access your project and share feedback by providing their email and role without giving them access to the entire organization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Detailed bug capture&lt;/strong&gt;: Bug capture in Tunnel goes beyond just capturing a bug description. It gives detailed information on network logs on the request and responses gotten when loaded, even browser data, console logs, and just a few other things. Using Tunnel might be a great way to make your project almost perfect if you like paying attention to details.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tips for maximizing use&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitor and log traffic&lt;/strong&gt;: With Tunnel, you can monitor your network and console logs - using them to keep track of traffic. This can help you understand usage patterns, detect access issues, and capture errors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collaborative development&lt;/strong&gt;: Tunnel allows you to share your development environment with team members for pair feedback or collaborative debugging sessions. This can be particularly useful for remote teams.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create custom workflows&lt;/strong&gt;: With Tunnel, you can integrate your favorite development tools, like GitHub, to link your pull requests to fit specific needs and enhance your development process, or even Slack for feedback. Custom workflows are used to improve overall efficiency in Tunnel.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docker.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Docker&lt;/strong&gt;&lt;/a&gt;
&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%2Flolop7pzvy1ull0l6aet.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%2Flolop7pzvy1ull0l6aet.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker&lt;/strong&gt; is a platform that lets you build, test, and deploy your applications using containers. It's a tool primarily used by cloud and DevOps engineers. Using the significant benefits of Docker saves you a lot of stress; it reduces the workflow of writing code and running it on production.&lt;/p&gt;

&lt;p&gt;Containers, in this context, enable developers to package an application with its dependencies into a standardized unit for development.&lt;/p&gt;

&lt;p&gt;With Docker, all of your applications are containerized. Therefore, it helps your application run consistently in different environments, from development to production!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Features of Docker&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Containerization of applications&lt;/strong&gt;: Docker isolates your applications, making them lightweight and faster than running them on a virtual machine. It ensures each container has its environment, so there's no situation where everything is running at once, which could potentially slow down your application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistent environments&lt;/strong&gt;: When you use Docker, you can see there is a structure. As mentioned, it provides consistency in different environments, such as the development, testing, and production environments. This means that your application runs the same way whether you're running an application on your local machine or in the cloud.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resource Utilization&lt;/strong&gt;: Containers are efficient when it comes to resource usage. They can allow massive deployments, with multiple containers operating on your local machine. This means you can run more applications on the same machine, saving time and improving your capacity to handle larger workloads.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tips for maximizing use&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Optimizing Dockerfiles&lt;/strong&gt;: When a Dockerfile is structured to minimize the number of layers, each command creates a new layer. While building your application, ensure you have a Dockerfile in order; it's just the basic instructions for the Docker Daemon to follow when assembling a container image.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Logging and monitoring&lt;/strong&gt;: To keep track of your applications, there are two things to do: logging and monitoring. Centralized logging tools such as Graylog, Splunk, Fluntd, etc., could be used to collect and analyze logs. Monitoring is essential to keeping track of your application's performance. If something terrible wants to happen or is about to happen, monitoring tools such as Grafana, New Relic, or even Prometheus are good tools to keep track of your application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reading Docker's documentation&lt;/strong&gt;: Docker is one of those tools that provides clear and concise guides for its current and potential users. The guides on Docker's documentation are updated frequently as soon as their team makes an update. Aside from that, their blog gives detailed guides for the best practices for using Docker.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://www.atlassian.com/software/jira" rel="noopener noreferrer"&gt;&lt;strong&gt;Jira&lt;/strong&gt;&lt;/a&gt;
&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%2Ftyo2azshrjzun0egv13z.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%2Ftyo2azshrjzun0egv13z.png" alt="Image description" width="459" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Jira&lt;/strong&gt; is an agile product management tool for managing tasks and projects and tracking bugs, among many other things. Jira was developed by the &lt;a href="https://www.atlassian.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Atlassian&lt;/strong&gt;&lt;/a&gt; team to make collaboration easy while monitoring and managing tasks.&lt;/p&gt;

&lt;p&gt;One of the most astonishing benefits of Jira is its integration with different tools to track your progress on tasks assigned to the tool. Using tools like Jira helps your team achieve its goals quickly; with this, managing functions for everyone in your organization is all in one place.&lt;/p&gt;

&lt;p&gt;Jira also provides insights to check the team's progress within a certain period. If you are looking for a tool to provide accurate information on vital aspects of your team's work, Jira is for you!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Features of Jira&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Issue and bug tracking&lt;/strong&gt;: Jira issues are tasks, bugs, or stories. Essentially, they are items assigned to team members. Jira allows you to track these issues and their progress. For instance, when a user is assigned too many tasks, Jira can provide updates on incomplete tasks. It doesn't just ensure that you've worked on a task; it ensures that it is completed. It also helps you track bugs listed for fixes in the project's timeline so you can address them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Customizable workflows&lt;/strong&gt;: Jira allows you to make changes to issue workflows. You can change the issue type, edit workflow settings, and more. It's exciting to see how you can create significant transitions in your workflow.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tips for maximizing use&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integration with third-party tools&lt;/strong&gt;: To keep track of your team's work, Jira enables you to integrate directly with the tools you use in your daily activities as a developer. Tools like GitHub, Slack, Notion, etc., can be integrated seamlessly. Integrating with them lets you easily keep track of your work without doing it manually. For instance, if you integrate with GitHub, you no longer have to include updates manually, as it keeps track of your pull requests, issues, etc., in real time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Utilize dashboards for project insights&lt;/strong&gt;: As mentioned earlier, Jira provides its users with access to comprehensive project insights directly on its dashboard. This feature lets you see how well or poorly the team performs regarding assigned tasks and overall productivity. The dashboard offers detailed data about your project, including its metrics and analytics.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;5.&lt;/strong&gt; &lt;a href="https://slack.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Slack&lt;/strong&gt;&lt;/a&gt;
&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%2Fro0s0p970dwvlqdwppk4.jpg" 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%2Fro0s0p970dwvlqdwppk4.jpg" alt="Image description" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slack&lt;/strong&gt; is one of the most popular cloud-based communication tools for teams. Its primary purpose is to ensure accessible communication among team members. Unlike email for team communication, Slack allows you to interact with your teammates or external partners freely and accomplish much within a single platform.&lt;/p&gt;

&lt;p&gt;Besides serving as a messaging platform, Slack enables you to meet with your team via audio or video huddles without needing an external platform. Slack is much more enjoyable than email communication; you can see who is online in your workspace and send them messages directly. This fosters better communication within teams, which can lead to increased productivity.&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%2Fglys3xt24hheidbbpxo2.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%2Fglys3xt24hheidbbpxo2.gif" alt="Image description" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Features of Slack&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Real-time communication&lt;/strong&gt;: The primary use of Slack is communication—specifically, real-time communication. It's easy to communicate with your teammates on Slack; it feels like chatting with a friend in a professional context. Communication in Slack extends beyond messaging to include features like Slack Huddles. Huddles allow you to join team conversations without using external WebRTC tools like Google Meet or Zoom. Huddles are embedded within your Slack application. One notable aspect of Huddles is that they help retain the messages shared within them directly in Slack.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integration with productivity apps and development tools&lt;/strong&gt;: Slack allows you to integrate with numerous applications easily and provides real-time updates. If Slack is your team's default communication mode, you'll likely receive updates quickly. For example, if you use Slack to track GitHub issues, it will send notifications on updates immediately.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tips for maximizing use&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create channels for specific projects or topics&lt;/strong&gt;: Channels for organized discussions: Different Slack channels serve different purposes, similar to workspaces. Channels can be public or private, but they are created for specific purposes. Some channels may be used for support, general team communication, stand-up updates, etc. These channels make team communication very organized.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Using Canvas to share critical information&lt;/strong&gt;: In your Slack environment, you can always find Canvas; it's fun. This allows you to keep or share information with the rest of your teammates. It lets you include valuable assets such as audio or video and add your workflows.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;6.&lt;/strong&gt; &lt;a href="https://postman.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Postman&lt;/strong&gt;&lt;/a&gt;
&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%2Fj9q8ujebb1ll6hvw8v69.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%2Fj9q8ujebb1ll6hvw8v69.png" alt="Image description" width="800" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Postman&lt;/strong&gt; is arguably the most popular API management platform. It doesn't only help with managing APIs; it also assists in building, testing, and automating APIs efficiently. Developers can even contribute to open APIs available on Postman. Its user-friendly interface for creating requests and debugging is one of the main reasons for its widespread use.&lt;/p&gt;

&lt;p&gt;Beyond API development, Postman enables you to create custom documentation for your APIs. This documentation can be updated in real time, ensuring that all changes are reflected immediately. Additionally, Postman provides its users with automated testing, monitoring, and collaboration tools that allow multiple developers to work together seamlessly.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Features of Postman&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated testing and monitoring&lt;/strong&gt;: Postman lets developers write and execute tests automatically as a part of the API development cycle. Automating tests lets developers identify issues early before use. Developers can write tests to verify the APIs' definitiveness, performance, and reliability. It also allows for CI/CD workflows where tests are executed automatically, even when there's an update in the code. Developers can also set up monitors to run API tests. It enables Postman to send notifications to the development team at scheduled intervals. The monitoring is to keep track of the API's performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collaboration features for API development&lt;/strong&gt;: Postman offers a series of collaboration features for API development, enabling teams to work together efficiently. These features ensure that all team members are on the same page throughout the API development cycle. Postman provides personal and team workspaces, allowing members to share collections, environments, and other resources. It also offers role-based access control to manage who can make changes and view workspaces and collections. This provides a secure way to collaborate with developers on your team, especially when trying to keep sensitive information away from unauthorized users.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;API development and testing&lt;/strong&gt;: Postman is primarily used to develop APIs, providing an interface that makes this process easy. With Postman, teams can efficiently build, test, and document APIs, enhancing collaboration and productivity. Testing can be integrated with CI/CD tools like Jenkins, CircleCI, Semaphore, etc. Postman offers a friendly environment for writing tests and automating workflows.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tips for maximizing use&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Share collections with team members for collaboration.&lt;/strong&gt; Collections in Postman are groups of requests. By granting your team access, they can edit and test the same APIs. This ensures consistency and fosters collaboration among team members. Additionally, sharing collections makes it easy for team members to manage APIs collectively.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use collections to organize API requests.&lt;/strong&gt; Collections allow you to group related requests to make them easy to manage. Organizing helps keep your work tidy and enables you to navigate requests easily when needed. Using collections helps to run requests simultaneously and automate workflows for efficient collaboration and testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automate tests to catch issues early&lt;/strong&gt;: Automated tests allow you to run predefined tests on your APIs regularly, ensuring they function correctly and meet some requirements. Integrating these tests into your CI/CD pipeline will enable you to automatically validate your APIs with each code change, identifying and addressing problems before they reach production.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;7.&lt;/strong&gt; &lt;a href="https://www.jenkins.io/" rel="noopener noreferrer"&gt;&lt;strong&gt;Jenkins&lt;/strong&gt;&lt;/a&gt;
&lt;/h3&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%2F88iq50fwz70gg6hq4k8e.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%2F88iq50fwz70gg6hq4k8e.png" alt="Image description" width="800" height="261"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Jenkins&lt;/strong&gt; is a popular open-source automation server and CI/CD tool that works with your existing tools to automate stages for your development's continuous integration and delivery. It helps streamline the building, testing, and deployment of your code. By automating these tasks, Jenkins helps teams deliver high-quality software faster and with fewer errors.&lt;/p&gt;

&lt;p&gt;Using Jenkins in your development workflow is a modern DevOps practice because it automates different parts of the software development process.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Features of Jenkins&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automation server for CI/CD&lt;/strong&gt;: Jenkins is widely used to implement Continuous Integration and Continuous Delivery (CI/CD) pipelines. As mentioned earlier, it helps to facilitate the automation of different stages of the software development cycle. By doing this, you get improved code quality and an increased deployment frequency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugin ecosystem&lt;/strong&gt;: Jenkins provides its users with an incredible number of plugins to extend its functionality. Each plugin has many purposes attached to it, but they're designed to make your automation cycle seamless. The extensibility allows Jenkins to integrate seamlessly with any tool or technology you use for development.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;It supports various programming languages and platforms.&lt;/strong&gt; It also supports numerous underlying technologies and tools you use for development. It enables different teams using different underlying technologies to integrate with Jenkins, making it ideal for diverse development environments. This doesn't only apply to programming languages; it also applies to building tools. It lets you integrate build tools, such as Maven, Gradle, etc., to build processes, run tests, and deploy applications. Aside from build tools, it also lets you work with code management tools, deployment tools, and testing frameworks.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tips for maximizing use&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Install plugins to extend functionality.&lt;/strong&gt; As mentioned earlier, Jenkins has a wide range of supported plugins. Using Jenkins alone could be limited, but plugins are great as they help increase capabilities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Configure pipelines for automated workflows&lt;/strong&gt;: Jenkins pipelines are robust; they help define your entire CI/CD process as code. By configuring pipelines for automated workflows, you can streamline your development process, ensure consistency, and reduce interventions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitor builds and deployments for issues&lt;/strong&gt;: Monitoring builds and deployments is important to maintain healthy pipelines in Jenkins. There are different ways monitoring could be done. It could be done by using monitoring tools such as Grafana, New Relic, Sentry, etc.; it could also be monitored by setting up deployment notifications when integrating with tools like Slack, email notifications, etc.; leveraging build and deployment history in Jenkins is also a way to monitor builds and deployment. Monitoring is essential; it helps notify you when something terrible is about to happen or is happening in your pipeline.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;8.&lt;/strong&gt; &lt;a href="https://www.terraform.io/" rel="noopener noreferrer"&gt;&lt;strong&gt;Terraform&lt;/strong&gt;&lt;/a&gt;
&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%2Fztcmw72twvuhgnmjt9uh.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%2Fztcmw72twvuhgnmjt9uh.png" alt="Image description" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Terraform&lt;/strong&gt; is an infrastructure-as-code (IaC) tool developed by HashiCorp to enable developers to automate infrastructure tasks and provide infrastructure resources using a configuration language called the HashiCorp Configuration Language (HCL).&lt;/p&gt;

&lt;p&gt;With Terraform, you can describe the desired state of your code infrastructure with provided resources such as virtual machines, networks, storage, etc. Terraform automates managing resources across different cloud providers and local environments.&lt;/p&gt;

&lt;p&gt;It's mainly used for orchestrating and automating tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Features of Terraform&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Supports multiple cloud providers&lt;/strong&gt;: Terraform supports many providers, allowing users to manage infrastructure across different platforms using a single configuration. This enables other teams to adopt various strategies for the cloud, leveraging the strengths of different providers while maintaining consistency in infrastructure management.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Declarative configuration language&lt;/strong&gt;: Terraform provides a declarative configuration language called HashiCorp Configuration Language (HCL) for defining infrastructure resources and ensuring consistency across different environments. It gives a syntax that Terraform can interpret for both humans and machines. &lt;a href="https://developer.hashicorp.com/terraform/tutorials/configuration-language" rel="noopener noreferrer"&gt;&lt;strong&gt;This documentation&lt;/strong&gt;&lt;/a&gt; will guide you through learning HCL if you are interested.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tips for maximizing use&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Apply configurations to provision infrastructure&lt;/strong&gt;: There are different ways to provide infrastructure. Terraform's commands, such as &lt;code&gt;plan&lt;/code&gt; and &lt;code&gt;apply&lt;/code&gt; to preview and execute changes, could be done as they ensure accuracy and minimize errors. Also, integrating Terraform with CI/CD tools like Jenkins or CircleCI to automate provisioning is another incredible thing to do. Also, storing state files remotely with AWS S3 or Terraform Cloud is a way to apply configurations to provide infrastructure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Define infrastructure in configuration files&lt;/strong&gt;: Use configuration files to ensure your infrastructure code is consistent. Storing configurations allows for easy collaboration and auditing. Configuration files improve clarity, making understanding and managing your infrastructure easier. Organized files with clear formatting are easier to maintain, just as reusing code with modules promotes efficiency and reduces duplication.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;9.&lt;/strong&gt; &lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;&lt;strong&gt;ESLint&lt;/strong&gt;&lt;/a&gt;
&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%2Frzcq8axqk1o360t2ox3y.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%2Frzcq8axqk1o360t2ox3y.png" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ESLint&lt;/strong&gt; is a popular open-source tool for JavaScript developers; it helps to analyze code, find problems, and improve code quality. It's integrated into IDEs and can run as a part of your CI/CD process. Apart from improving code quality, it also analyzes your code by showing its potential errors and maintaining coding standards.&lt;/p&gt;

&lt;p&gt;ESLint also helps organize your code by improving the readability of your codebase. It dramatically helps to patch incorrect patterns to provide high-quality code.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Features of ESLint&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Customizable rules&lt;/strong&gt;: ESLint allows you to configure rules to maintain consistency in your code. It offers many rules but can be fine-tuned easily from the project's configuration file. Each rule has its purpose but comes with many built-in rules. You can add more rules using plugins or change the available rules.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integrates with various IDEs&lt;/strong&gt;: As mentioned earlier, ESLint integrates with most code editors and IDEs to provide feedback and ensure fewer errors and repetitions in the environment. It helps to add an auto-fix in your IDE when working within a JavaScript environment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Static code analysis&lt;/strong&gt;: ESLint helps examine your code for errors and enforce coding standards without debugging. This allows developers to identify potential issues early in development, leading to more reliable and maintainable code.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tips for maximizing use&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use recommended rulesets&lt;/strong&gt;: Starting with ESLint's recommended rulesets to quickly implement best practices and common coding standards is a great thing to do when using ESLint, as these rulesets cover a wide range of common issues and help ensure excellent code quality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integrate with build systems for automated linting&lt;/strong&gt;: ESLint lets you integrate with build tools to run automatically within your build system or CI/CD pipeline. This ensures that code is consistently checked for errors and adherence to coding standards with every build, preventing code with potential errors from being merged into the main codebase.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;10.&lt;/strong&gt; &lt;a href="https://kubernetes.io/" rel="noopener noreferrer"&gt;&lt;strong&gt;Kubernetes&lt;/strong&gt;&lt;/a&gt;
&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%2Fe9my27e2ae5dhc6c2o9q.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%2Fe9my27e2ae5dhc6c2o9q.png" alt="Image description" width="800" height="257"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubernetes&lt;/strong&gt;, or K8s, is an open-source platform for orchestrating containerized applications. It's designed to manage the lifecycle, deployment, and scaling of containers, providing a unified system for automating the management of complex distributed applications.&lt;/p&gt;

&lt;p&gt;Its features are just valid reasons why Kubernetes is labeled an essential tool for modern DevOps practices.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Features of Kubernetes&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Extensibility&lt;/strong&gt;: Kubernetes offers an extensible structure, allowing users to integrate additional features and extend functionality tailored to their needs. It also supports deployment across different environments, including public, private, and hybrid clouds.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automates deployment, scaling, and operations&lt;/strong&gt;: Kubernetes automates containerized application deployment, ensuring a reliable and smooth deployment process. It also automates scaling based on resource usage and handling tasks such as health checks and upcoming updates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Manages containerized applications&lt;/strong&gt;: Kubernetes also provides management capabilities, including scheduling, orchestration, and resource management. It ensures containers are distributed properly across clusters, maintaining desired states, and managing their lifecycle.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tips for maximizing use&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Leverage Kubernetes for microservices architecture&lt;/strong&gt;: Kubernetes is designed for managing microservices. It allows you to deploy, scale, and update individual services easily. This can improve the scalability of your applications by isolating failures and enabling efficient resource usage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use Helm for managing Kubernetes applications&lt;/strong&gt;: Using Helm's package manager for Kubernetes to simplify deployment and management of applications. By using Helm charts, you can define, install, and update complex Kubernetes applications with a single command.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;11.&lt;/strong&gt; &lt;a href="https://mintlify.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Mintlify&lt;/strong&gt;&lt;/a&gt;
&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%2Fcmh8m7lpev1vbzf02rmx.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%2Fcmh8m7lpev1vbzf02rmx.png" alt="Image description" width="618" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mintlify&lt;/strong&gt; is a platform designed to simplify the process of creating and maintaining technical documentation for developers. It offers templates that allow users to embed their content with minimal effort, streamlining the documentation process.&lt;/p&gt;

&lt;p&gt;Mintlify provides features to help users create and maintain up-to-date documentation. Instead of building a new documentation site from scratch, Mintlify allows users to configure a few settings and integrate their content seamlessly.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Features of Mintlify&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Markdown Support&lt;/strong&gt;: Mintlify provides templates, but after choosing, you must embed your content in Markdown for simplicity. It has a &lt;a href="https://mintlify.com/docs/page" rel="noopener noreferrer"&gt;guide&lt;/a&gt; on how to write markdowns when you use Mintlify.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Customizability&lt;/strong&gt;: You can customize a template tailored to your needs. With Mintlify, users can create and modify their templates to align with their branding and style and ensure consistency in the documentation. You can customize the navigation structure and sidebar organization to fit your needs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A.I. search&lt;/strong&gt;: The AI search feature is one of the most exciting things on Mintlify. It is designed to enhance the readability and efficiency of documentation by leveraging AI to provide more accurate and relevant search results based on the contents of the documentation.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tips for maximizing use&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Optimize AI search&lt;/strong&gt;: Use Mintlify's AI search to improve the readability of information. Ensure your content is well-structured and labeled to enable users to get better search results.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitoring documentation analytics&lt;/strong&gt;: Leveraging analytics is a powerful way to maximize the use of Mintlify. By understanding how users interact with your documentation, you can make some decisions to improve its effectiveness and usability.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;By leveraging the 11 tools in this article and maximizing their capabilities, developers can significantly increase their developer experience to the next level. Each tool offers incredible features and benefits that address different aspects of the development lifecycle.&lt;/p&gt;

&lt;p&gt;This doesn't apply to coding alone but to other aspects like collaboration, automation, linting, etc. This article explains these tools, their features, and how to get the most out of them to make your life as a developer easier.&lt;/p&gt;

&lt;p&gt;Congratulations if you've made it to this point of the article.&lt;/p&gt;

&lt;p&gt;Just a quick one: we have a project; &lt;a href="https://tools.latitude.so/" rel="noopener noreferrer"&gt;&lt;strong&gt;Latitude&lt;/strong&gt;&lt;/a&gt; is an open-source framework for embedding analytics into your application using code. I'd appreciate it if you would give us a star on our GitHub repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/latitude-dev/latitude" rel="noopener noreferrer"&gt;&lt;strong&gt;Give Latitude a Star on GitHub 🌟&lt;/strong&gt;&lt;/a&gt;&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%2F0kj4b0yympnu141543h2.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%2F0kj4b0yympnu141543h2.gif" alt="Image description" width="400" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you found this article useful, let us know in the comments. We hope to have you read our next blog post! 😃&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Things I wish I knew before I started an open-source project</title>
      <dc:creator>Opemipo Disu</dc:creator>
      <pubDate>Thu, 23 May 2024 12:02:20 +0000</pubDate>
      <link>https://forem.com/latitude/things-i-wish-i-knew-before-i-started-an-open-source-project-1pdn</link>
      <guid>https://forem.com/latitude/things-i-wish-i-knew-before-i-started-an-open-source-project-1pdn</guid>
      <description>&lt;p&gt;New to the world of open source? You’ll likely make a few mistakes in your first open-source project 🤷‍♂️. In this article, I’ll share key takeaways from our experience building Latitude, covering what you need to know before launching your first open-source project. &lt;/p&gt;

&lt;p&gt;If you’re considering taking the plunge, this article is for you!&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%2Fyyj8cvaodypeoslv1j2n.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%2Fyyj8cvaodypeoslv1j2n.gif" alt="https://cdn.hashnode.com/res/hashnode/image/upload/v1716096673448/fc18bf57-5183-48ed-8025-ded490e30e4a.gif?auto=format,compress&amp;amp;gif-q=60&amp;amp;format=webm&amp;amp;auto=format,compress&amp;amp;gif-q=60&amp;amp;format=webm" width="400" height="213"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to properly set up an OSS project on GitHub&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A well-configured project requires more than just a basic setup. It needs detailed information to give potential users and contributors a clear understanding of the project’s objective and functionality. This can be achieved by crafting a clear and concise project description, accompanied by a comprehensive README file that provides step-by-step guidance on how to use the project. &lt;a href="https://www.freecodecamp.org/news/how-to-write-a-good-readme-file/" rel="noopener noreferrer"&gt;This article&lt;/a&gt; offers invaluable insights on what to include in your README files and provides tips on writing an effective one.&lt;/p&gt;

&lt;p&gt;Beyond that, it’s also essential to establish a contribution guideline and a code of conduct to maintain a respectful and inclusive community.&lt;/p&gt;

&lt;p&gt;A contribution guideline provides clear guidelines for making contributions to the project. This includes instructions for submitting issues and pull requests, as well as outlining coding standards and best practices. A code of conduct, on the other hand, sets the tone for a respectful and inclusive community, covering aspects like language choices, behavioral standards, and more. &lt;/p&gt;

&lt;p&gt;Check out &lt;a href="https://github.com/latitude-dev/latitude" rel="noopener noreferrer"&gt;Latitude&lt;/a&gt; for examples of all these.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Choosing the right license&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;When I started my first open-source project, I underestimated the importance of choosing a license that fitted my project.&lt;/p&gt;

&lt;p&gt;Open-source licenses protect users and contributors and govern how others can use, modify, or distribute an OSS project. There are two broad categories of open-source licenses: &lt;strong&gt;&lt;a href="https://snyk.io/learn/open-source-licenses/#copyleft" rel="noopener noreferrer"&gt;Copyleft licenses&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://snyk.io/learn/open-source-licenses/#permissive" rel="noopener noreferrer"&gt;Permissive licenses&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Copyleft Licenses ensure any derivative work inherits the original OSS license and this can protect the original author from bad actors abusing their work. Latitude, for example, uses an &lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/LGPL" rel="noopener noreferrer"&gt;LGPL copyleft license&lt;/a&gt;, which grants some protections against commercial competitors using Latitude to compete with us. Permissive licenses, on the other hand, are less restrictive and don’t enforce any license reuse in derivative work.&lt;/p&gt;

&lt;p&gt;Likewise, it is very important to have all contributors sign a Contributors License Agreement, which stipulates the terms under which intellectual property has been contributed to your project. This ensures contributors cannot easily sue you for code they might have contributed to your project in the past. &lt;/p&gt;

&lt;p&gt;To have all contributors sign the CLA, there’s a handy &lt;a href="https://github.com/contributor-assistant/github-action" rel="noopener noreferrer"&gt;Gtihub Action&lt;/a&gt; that automatically requires new contributors to do so.&lt;/p&gt;

&lt;h3&gt;
  
  
  Version control and branch protection rules
&lt;/h3&gt;

&lt;p&gt;Open-source collaboration often involves working with contributors whom you don’t necessarily trust. To avoid potential disasters, it’s crucial to set clear boundaries for what contributors can do. Failure to do so could lead to mistakes, such as deleting main branch code, which can be extremely difficult to resolve.&lt;/p&gt;

&lt;p&gt;Here’s a set of sane defaults we use at Latitude:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Require a pull request with approval from code owners to merge code to main branch&lt;/li&gt;
&lt;li&gt;Enforce approval after any code change to pull requests&lt;/li&gt;
&lt;li&gt;Require all CI status checks to pass before merge&lt;/li&gt;
&lt;li&gt;Only give permission to merge pull requests to code owners&lt;/li&gt;
&lt;li&gt;Optionally allow your closest team to bypass some of these restrictions&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to maintain coding standards&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In an open-source project, it’s essential to maintain coding standards. When code is written with consistency and clarity, it becomes easier to understand, maintain, and contribute to, ultimately making the project more sustainable.&lt;/p&gt;

&lt;p&gt;One effective way to ensure coding standards are upheld is by incorporating linters like &lt;strong&gt;ESLint&lt;/strong&gt; into the development workflow. Linters scrutinize code for syntax errors, formatting inconsistencies, and stylistic issues, providing instant feedback to developers on how to improve their code.&lt;/p&gt;

&lt;p&gt;In addition to linters, code formatters like &lt;strong&gt;Prettier&lt;/strong&gt; can further reinforce coding standards. These tools automatically format code according to pre-defined rules, eliminating inconsistencies in indentation, spacing, and syntax. &lt;/p&gt;

&lt;p&gt;By combining a linter with a code formatter, open-source projects can establish a unified coding standard that is both easy to enforce and maintain. This not only improves the overall quality of the code but also creates a more welcoming environment for new contributors to join and contribute to the project.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to manage new releases&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Managing releases in an OSS project can be complicated, especially when publishing versioned packages of your software. In contrast to software-as-a-service, where you control the version users access, OSS users can install a particular package version and never update it. This increases the importance of shipping stable and bug-free software.&lt;/p&gt;

&lt;p&gt;As a general rule, I recommend against completely automating the release of your software and instead have a manual approval step required at some point in the process. Tools like &lt;a href="https://github.com/changesets/changesets" rel="noopener noreferrer"&gt;changesets&lt;/a&gt;, the one we use at Latitude, greatly help with this. Changesets takes care of publishing new packages, updating changelogs, and tagging releases, yet it can only do so via automatic pull requests that have the same approval requirements as any other PR at Latitude. &lt;/p&gt;

&lt;p&gt;Some more recommendations include maintaining proper human-readable changelogs, tagging releases, and making sure you follow semantic versioning – package managers rely on it for safely keeping project dependencies up to date.&lt;/p&gt;

&lt;p&gt;Lastly, a word on prereleases. If you publish versioned packages of your software I greatly encourage you to QA new versions in alpha release. When properly tagged, package managers will ignore these package versions, allowing you to properly and safely test new features in production-like environments. &lt;a href="https://github.com/changesets/changesets/blob/main/docs/prereleases.md" rel="noopener noreferrer"&gt;Changesets&lt;/a&gt; can also help you with prereleases.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Security best practices&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Security practices in OSS projects are not much different from the ones you’d follow in a closed-source project. So here’s a somewhat comprehensive list we follow at Latitude:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Update dependencies regularly&lt;/strong&gt;: Make use of automated tracking of minor dependency updates with tools like Dependabot, and try to update any major version of your dependencies every so often – at Latitude we review all our dependencies once a month or so.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Reviews&lt;/strong&gt;: Implement a code review process, especially for the sensitive areas of your code that might deal with production secrets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access control&lt;/strong&gt;: Implement role-based access control to restrict access to sensitive parts of your project, control who can trigger new releases, and who can push code to your main branch. GitHub provides tools for all of these.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secure storage&lt;/strong&gt;: Never share production secrets in OSS code, ensure only code owners and administrators have access to sensitive areas of your org like shared password managers, PaaS providers and whatnot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These practices will only strengthen your project’s security; it’s best to keep up with them.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In conclusion, launching a successful open-source project requires careful consideration of several key factors, including defining the project’s purpose and goals, choosing the right license, setting up a proper project on GitHub, understanding version control, maintaining coding standards, managing new releases, and implementing security best practices. &lt;/p&gt;

&lt;p&gt;By learning from the mistakes and experiences shared in this article, first-time open-source contributors can avoid common pitfalls and set their projects up for success.&lt;/p&gt;

&lt;p&gt;Thanks for making it to the end of this article. I hope you found the article helpful!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do well to help me&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://tools.latitude.so/" rel="noopener noreferrer"&gt;Latitude&lt;/a&gt;&lt;/strong&gt; is an open-source framework for embedding analytics into your application using code. &lt;/p&gt;

&lt;p&gt;Please consider giving it a &lt;strong&gt;&lt;a href="https://github.com/latitude-dev/latitude" rel="noopener noreferrer"&gt;Star on GitHub&lt;/a&gt;&lt;/strong&gt;.&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%2Fs4suhjmlffjvk5pwqeu2.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%2Fs4suhjmlffjvk5pwqeu2.gif" alt="https://cdn.hashnode.com/res/hashnode/image/upload/v1716228754111/1997d703-0998-4c10-a48f-f2aff7738818.gif?auto=format,compress&amp;amp;gif-q=60&amp;amp;format=webm&amp;amp;auto=format,compress&amp;amp;gif-q=60&amp;amp;format=webm" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lastly, if you have any questions about what I've shared in this article, you can drop a comment below.&lt;/p&gt;

&lt;p&gt;I hope to have you read my next piece! 😃&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
