<?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>DEV Community: Naman vyas</title>
    <description>The latest articles on DEV Community by Naman vyas (@namanvyas).</description>
    <link>https://dev.to/namanvyas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F420414%2F11894cc1-249a-4c52-a119-9603e07eeca4.jpg</url>
      <title>DEV Community: Naman vyas</title>
      <link>https://dev.to/namanvyas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/namanvyas"/>
    <language>en</language>
    <item>
      <title>ShowDEV - We built a All-in-one AI command center for your products.</title>
      <dc:creator>Naman vyas</dc:creator>
      <pubDate>Sun, 11 Aug 2024 20:47:37 +0000</pubDate>
      <link>https://dev.to/namanvyas/showdev-we-built-a-all-in-one-ai-command-center-for-your-products-435e</link>
      <guid>https://dev.to/namanvyas/showdev-we-built-a-all-in-one-ai-command-center-for-your-products-435e</guid>
      <description>&lt;p&gt;Hey there, fellow devs! 👋 Are you building &lt;a href="https://dev.to/t/ai"&gt;AI-powered applications&lt;/a&gt;? Struggling with managing multiple AI providers, optimizing costs, and keeping track of your prompts? We've got something exciting to share with you today!&lt;/p&gt;

&lt;p&gt;My brother &lt;a class="mentioned-user" href="https://dev.to/vaibhavacharya"&gt;@vaibhavacharya&lt;/a&gt; (AI wizard) and I have been working on various AI applications for the past couple of years. During this time, we encountered numerous hurdles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Juggling multiple AI provider APIs&lt;/li&gt;
&lt;li&gt;Struggling with cost optimization&lt;/li&gt;
&lt;li&gt;Managing and versioning prompts effectively&lt;/li&gt;
&lt;li&gt;Lack of comprehensive analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These pain points weren't unique to us – we saw many developers facing similar issues. That's when we decided to create a solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet UltraAI.app
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://ultraai.app" rel="noopener noreferrer"&gt;UltraAI.app&lt;/a&gt; is your new best friend in the world of AI development. It's an all-in-one AI command center designed to make your life easier and your applications smarter. Let's dive into what makes UltraAI.app special!&lt;/p&gt;

&lt;h3&gt;
  
  
  🌐 Multi-provider AI Gateway
&lt;/h3&gt;

&lt;p&gt;Gone are the days of juggling multiple AI provider APIs. UltraAI.app offers a unified interface to access various AI providers through a single, &lt;a href="https://platform.openai.com/docs/api-reference" rel="noopener noreferrer"&gt;OpenAI-compatible API&lt;/a&gt;. Whether you're using OpenAI, Anthropic, or any other supported provider, you can switch between them seamlessly without changing your code.&lt;/p&gt;

&lt;h3&gt;
  
  
  💾 Semantic Caching
&lt;/h3&gt;

&lt;p&gt;Want to save up to 10x on your API costs? Our semantic caching has got you covered! Choose between simple and similarity caching, fine-tune the behavior for each API call, and set precise similarity levels for optimal results. It's like having a super-smart AI assistant that remembers previous conversations!&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 Logs &amp;amp; Analytics
&lt;/h3&gt;

&lt;p&gt;Make data-driven decisions faster with our comprehensive logs and analytics. Monitor your AI usage, track costs, and gain insights into your application's performance. It's like having a crystal ball for your AI operations!&lt;/p&gt;

&lt;h3&gt;
  
  
  📝 Prompts Manager
&lt;/h3&gt;

&lt;p&gt;Managing and using dynamic prompts can be a headache. We've made it easy! With our Prompts Manager, you can store, version control, and efficiently manage your AI prompts. It's like having a well-organized library for all your AI conversations.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛡️ Rate Limiting &amp;amp; Protection
&lt;/h3&gt;

&lt;p&gt;Protect your product and prevent abuse with our built-in rate limiting feature. Set custom limits for each user, choose flexible time frames, and easily integrate it into your application. It's like having a bouncer for your AI party!&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Choose UltraAI.app?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity&lt;/strong&gt;: One API to rule them all. No more juggling multiple provider SDKs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost-Effective&lt;/strong&gt;: Save money with intelligent caching and optimized API usage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility&lt;/strong&gt;: Easily switch between AI providers without changing your code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Insights&lt;/strong&gt;: Make informed decisions with detailed logs and analytics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: Protect your application with built-in rate limiting.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Getting Started is a Breeze!
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://dashboard.ultraai.app/login" rel="noopener noreferrer"&gt;Sign up for UltraAI.app&lt;/a&gt; (Psst... it's free during beta!)&lt;/li&gt;
&lt;li&gt;Grab your API key from the dashboard.&lt;/li&gt;
&lt;li&gt;Replace your existing OpenAI base URL with &lt;code&gt;https://api.ultraai.app/v1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Start coding with superpowers!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here's a quick example in Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&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="n"&gt;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;your-ultraai-api-key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.ultraai.app/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;completion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;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="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;models&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;openai:gpt-4&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;anthropic:claude-2&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;cache&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;type&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;similarity&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;maxAge&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3600&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;threshold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.8&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}),&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="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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello, how are you?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
    &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;userId&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;user123&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;maxRequests&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;duration&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;hour&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Join the UltraAI Community
&lt;/h2&gt;

&lt;p&gt;We're excited to see what you'll build with UltraAI.app! Have questions, feedback, or just want to chat about AI? We'd love to hear from you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📚 Check out our &lt;a href="https://ultraai.app/documentation" rel="noopener noreferrer"&gt;documentation&lt;/a&gt; for detailed guides and API references.&lt;/li&gt;
&lt;li&gt;📝 Read our &lt;a href="https://dev.to/ultraai"&gt;blog posts&lt;/a&gt; for tips, tricks, and AI insights.&lt;/li&gt;
&lt;li&gt;📅 &lt;a href="https://cal.com/vaibhavacharya/ultra-ai-intro" rel="noopener noreferrer"&gt;Book a call&lt;/a&gt; with us to discuss your AI needs.&lt;/li&gt;
&lt;li&gt;📧 Reach out to us at &lt;a href="//mailto:vaibhav@ultraai.app"&gt;vaibhav@ultraai.app&lt;/a&gt; for any queries.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ready to supercharge your AI development? &lt;a href="https://dashboard.ultraai.app/login" rel="noopener noreferrer"&gt;Sign up for UltraAI.app&lt;/a&gt; today and join us on this exciting journey! 🚀&lt;/p&gt;

&lt;p&gt;Happy coding, and may the AI be with you! 🤖✨&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>programming</category>
      <category>ai</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Debugging AI: Tools and Techniques for Troubleshooting AI Applications</title>
      <dc:creator>Naman vyas</dc:creator>
      <pubDate>Sun, 11 Aug 2024 19:54:48 +0000</pubDate>
      <link>https://dev.to/ultraai/debugging-ai-tools-and-techniques-for-troubleshooting-ai-applications-3h2p</link>
      <guid>https://dev.to/ultraai/debugging-ai-tools-and-techniques-for-troubleshooting-ai-applications-3h2p</guid>
      <description>&lt;p&gt;As AI applications become increasingly complex, debugging them can feel like finding a needle in a haystack. But fear not! In this post, we'll explore some effective strategies and tools for troubleshooting AI applications, with a special focus on how &lt;a href="https://ultraai.app" rel="noopener noreferrer"&gt;UltraAI.app&lt;/a&gt; can streamline your debugging process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Challenges in AI Debugging
&lt;/h2&gt;

&lt;p&gt;Before we dive into solutions, let's identify some common challenges:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Lack of transparency&lt;/strong&gt;: AI models, especially deep learning ones, can be black boxes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reproducibility issues&lt;/strong&gt;: AI behavior can be inconsistent due to randomness in training or inference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data-related problems&lt;/strong&gt;: Issues with input data can lead to unexpected outputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance bottlenecks&lt;/strong&gt;: AI models can be computationally expensive, leading to slow response times.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration complexities&lt;/strong&gt;: AI services often involve multiple components and APIs.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  General Debugging Strategies for AI Applications
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Implement Comprehensive Logging
&lt;/h3&gt;

&lt;p&gt;Detailed logging is your first line of defense. Log everything from input data and model parameters to intermediate outputs and final results. This helps in tracing the flow of data and identifying where things might be going wrong.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro tip&lt;/strong&gt;: Use &lt;a href="https://ultraai.app/documentation" rel="noopener noreferrer"&gt;UltraAI.app's logging feature&lt;/a&gt; to automatically capture detailed logs for all your AI interactions across different providers. This centralized logging makes it easier to spot patterns and anomalies.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Use Visualization Tools
&lt;/h3&gt;

&lt;p&gt;Visualizing your data and model outputs can provide insights that raw numbers can't. Tools like TensorBoard for TensorFlow or Weights &amp;amp; Biases can help you visualize model architectures, training progress, and output distributions.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Implement A/B Testing
&lt;/h3&gt;

&lt;p&gt;When making changes to your AI model or application, use A/B testing to compare the performance of different versions. This helps isolate the impact of specific changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UltraAI.app tip&lt;/strong&gt;: Our multi-provider gateway makes it easy to run A/B tests across different AI models or providers. Simply specify multiple models in your API call, and we'll handle the rest!&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Utilize Explainable AI Techniques
&lt;/h3&gt;

&lt;p&gt;Techniques like SHAP (SHapley Additive exPlanations) or LIME (Local Interpretable Model-agnostic Explanations) can help you understand how your model is making decisions. This is particularly useful for identifying biases or unexpected behaviors.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Monitor Performance Metrics
&lt;/h3&gt;

&lt;p&gt;Keep a close eye on key performance metrics like response time, error rates, and resource utilization. Sudden changes in these metrics can indicate underlying issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UltraAI.app advantage&lt;/strong&gt;: Our built-in analytics dashboard provides real-time insights into your AI application's performance across all providers. Spot trends and anomalies at a glance!&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Implement Robust Error Handling
&lt;/h3&gt;

&lt;p&gt;Design your application to gracefully handle and report errors. This includes not just model errors, but also issues with data preprocessing, API calls, and result parsing.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Use Semantic Caching for Faster Debugging
&lt;/h3&gt;

&lt;p&gt;Caching can significantly speed up the debugging process by reducing the need to recompute results for the same or similar inputs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UltraAI.app feature spotlight&lt;/strong&gt;: Our semantic caching capability not only speeds up your application but also makes debugging faster. You can quickly retrieve past results for similar inputs, helping you isolate issues more effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools for AI Debugging
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Integrated Development Environments (IDEs)&lt;/strong&gt;: PyCharm, Visual Studio Code with Python extensions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Debugging Libraries&lt;/strong&gt;: pdb for Python, debug for Node.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Profiling Tools&lt;/strong&gt;: cProfile for Python, Node.js built-in profiler&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model Inspection Tools&lt;/strong&gt;: Netron for visualizing model architectures&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Testing Tools&lt;/strong&gt;: Postman, cURL for testing HTTP requests&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;UltraAI.app as your debugging companion&lt;/strong&gt;: While these tools are great, UltraAI.app brings everything together in one place. Our platform provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Centralized logging across all AI providers&lt;/li&gt;
&lt;li&gt;Real-time performance analytics&lt;/li&gt;
&lt;li&gt;Easy A/B testing capabilities&lt;/li&gt;
&lt;li&gt;Semantic caching for faster iterations&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Best Practices for AI Debugging
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start with a simple model&lt;/strong&gt;: Begin with a baseline model and gradually increase complexity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use synthetic data&lt;/strong&gt;: Create test cases with known outputs to verify model behavior.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implement unit tests&lt;/strong&gt;: Test individual components of your AI pipeline separately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Version control everything&lt;/strong&gt;: Not just your code, but also your data and model versions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document your debugging process&lt;/strong&gt;: Keep track of what you've tried and the results.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Debugging AI applications can be challenging, but with the right strategies and tools, it becomes much more manageable. By implementing comprehensive logging, utilizing visualization tools, and leveraging platforms like UltraAI.app, you can significantly streamline your debugging process.&lt;/p&gt;

&lt;p&gt;Remember, effective debugging is not just about fixing errors—it's about gaining deeper insights into your AI application's behavior and performance. With UltraAI.app, you get a powerful ally in your quest for robust, high-performance AI applications.&lt;/p&gt;

&lt;p&gt;Ready to take your AI debugging to the next level? &lt;a href="https://dashboard.ultraai.app/login" rel="noopener noreferrer"&gt;Sign up for UltraAI.app&lt;/a&gt; today and experience the difference!&lt;/p&gt;

&lt;p&gt;Happy debugging! 🐛🔍🤖&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>ops</category>
      <category>webdev</category>
    </item>
    <item>
      <title>From OpenAI to Anthropic: Switching AI Providers Without Breaking Your Code</title>
      <dc:creator>Naman vyas</dc:creator>
      <pubDate>Sat, 10 Aug 2024 21:38:02 +0000</pubDate>
      <link>https://dev.to/ultraai/from-openai-to-anthropic-switching-ai-providers-without-breaking-your-code-526g</link>
      <guid>https://dev.to/ultraai/from-openai-to-anthropic-switching-ai-providers-without-breaking-your-code-526g</guid>
      <description>&lt;p&gt;In the rapidly evolving world of AI, having the flexibility to switch between different AI providers can be a game-changer for your applications. Whether you're looking to optimize costs, experiment with different models, or ensure reliability through redundancy, the ability to seamlessly switch between providers like OpenAI and Anthropic is crucial. In this blog post, we'll explore how to make this switch without breaking your code, and introduce a tool that makes this process even easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Challenge of Switching AI Providers
&lt;/h2&gt;

&lt;p&gt;Traditionally, switching between AI providers like OpenAI and Anthropic would require significant code changes. Each provider has its own SDK, authentication methods, and API structure. This can lead to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Extensive code refactoring&lt;/li&gt;
&lt;li&gt;Potential downtime during the switch&lt;/li&gt;
&lt;li&gt;The need to maintain multiple codebases for different providers&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But what if there was a way to switch providers with minimal code changes? Enter &lt;a href="https://ultraai.app" rel="noopener noreferrer"&gt;UltraAI.app&lt;/a&gt;, your all-in-one AI command center.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing UltraAI.app
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://ultraai.app" rel="noopener noreferrer"&gt;UltraAI.app&lt;/a&gt; provides a unified API that's compatible with multiple AI providers, including OpenAI and Anthropic. By using UltraAI, you can switch between providers with just a simple configuration change, without altering your core application code.&lt;/p&gt;

&lt;p&gt;Let's look at how this works in practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Example: OpenAI to Anthropic Switch
&lt;/h2&gt;

&lt;p&gt;Here's how you might typically use OpenAI in your Python code:&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="n"&gt;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;your-openai-api-key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;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-3.5-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;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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;What&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s the capital of France?&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="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&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="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&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 see how you can use UltraAI to easily switch to Anthropic:&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="n"&gt;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;your-ultraai-api-key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.ultraai.app/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;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="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;models&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;anthropic:claude-2&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;openai:gpt-3.5-turbo&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;}),&lt;/span&gt;
    &lt;span class="n"&gt;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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;What&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s the capital of France?&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="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&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="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, the core structure of the code remains the same. The key differences are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;We're now using the UltraAI base URL.&lt;/li&gt;
&lt;li&gt;We're specifying the model as a JSON string that includes both Anthropic and OpenAI models.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With this setup, UltraAI will first attempt to use Anthropic's Claude 2 model. If that fails for any reason, it will automatically fall back to OpenAI's GPT-3.5-turbo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of Using UltraAI for Provider Switching
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Minimal Code Changes&lt;/strong&gt;: As demonstrated, switching providers requires only minor configuration changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Fallbacks&lt;/strong&gt;: UltraAI can automatically switch to backup providers if the primary one fails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unified Billing and Analytics&lt;/strong&gt;: Track usage across all providers in one place.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistent API&lt;/strong&gt;: Use the same API structure regardless of the underlying provider.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost Optimization&lt;/strong&gt;: Easily switch to the most cost-effective provider for your needs.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Advanced Features
&lt;/h2&gt;

&lt;p&gt;UltraAI offers more than just easy provider switching. Here are some advanced features you can leverage:&lt;/p&gt;

&lt;h3&gt;
  
  
  Semantic Caching
&lt;/h3&gt;

&lt;p&gt;Reduce API calls and costs with intelligent caching:&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;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;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="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;models&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;anthropic:claude-2&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;openai:gpt-3.5-turbo&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;cache&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;type&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;similarity&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;maxAge&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3600&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;threshold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.8&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}),&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="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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;What&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s the capital of France?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Rate Limiting
&lt;/h3&gt;

&lt;p&gt;Protect your application from abuse with built-in rate limiting:&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;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;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;anthropic:claude-2&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&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="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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;What&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s the capital of France?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
    &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;id&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;user123&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;maxRequests&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;duration&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;hour&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Switching between AI providers doesn't have to be a headache. With UltraAI.app, you can easily switch between OpenAI, Anthropic, and other providers without significant code changes. This flexibility allows you to optimize your AI usage, experiment with different models, and build more resilient applications.&lt;/p&gt;

&lt;p&gt;Ready to simplify your AI integrations? &lt;a href="https://dashboard.ultraai.app/login" rel="noopener noreferrer"&gt;Sign up for UltraAI.app&lt;/a&gt; today and experience the freedom of provider-agnostic AI development!&lt;/p&gt;

&lt;p&gt;Remember, the future of AI is flexible, and with UltraAI, you're always ready for what's next. Happy coding!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>showdev</category>
      <category>llm</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Ultimate Guide to Managing AI Prompts for Developers</title>
      <dc:creator>Naman vyas</dc:creator>
      <pubDate>Sat, 10 Aug 2024 21:31:11 +0000</pubDate>
      <link>https://dev.to/ultraai/the-ultimate-guide-to-managing-ai-prompts-for-developers-43p4</link>
      <guid>https://dev.to/ultraai/the-ultimate-guide-to-managing-ai-prompts-for-developers-43p4</guid>
      <description>&lt;h2&gt;
  
  
  The Ultimate Guide to Managing AI Prompts for Developers
&lt;/h2&gt;

&lt;p&gt;As AI becomes increasingly integral to software development, managing prompts effectively has become a crucial skill for developers. In this guide, we'll explore best practices for prompt engineering and introduce you to UltraAI.app, a game-changing tool for AI prompt management.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Prompt Engineering
&lt;/h2&gt;

&lt;p&gt;Prompt engineering is the art and science of crafting input prompts to elicit desired outputs from AI models. It's a critical skill for developers working with large language models (LLMs) like GPT-3, GPT-4, or Claude.&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Practices for Prompt Engineering
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Be Specific and Clear
&lt;/h3&gt;

&lt;p&gt;Clarity is key when crafting prompts. Be as specific as possible about what you want the AI to do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bad Example&lt;/strong&gt;: "Write about dogs."&lt;br&gt;
&lt;strong&gt;Good Example&lt;/strong&gt;: "Write a 200-word paragraph about the history and characteristics of Golden Retrievers."&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Provide Context
&lt;/h3&gt;

&lt;p&gt;Give the AI model necessary background information to generate accurate responses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;: "You are a financial advisor speaking to a 25-year-old who has just started their first job. Explain the importance of starting to save for retirement early."&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Use Examples
&lt;/h3&gt;

&lt;p&gt;Provide examples of the kind of output you're looking for, especially for complex tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;: "Translate the following English phrases to French. Here's an example:&lt;br&gt;
Input: 'Hello, how are you?'&lt;br&gt;
Output: 'Bonjour, comment allez-vous?'&lt;/p&gt;

&lt;p&gt;Now translate:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;'Where is the nearest restaurant?'&lt;/li&gt;
&lt;li&gt;'I love to travel.'"&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  4. Break Complex Tasks into Steps
&lt;/h3&gt;

&lt;p&gt;For complicated tasks, break them down into smaller, manageable steps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;: "Let's write a short story. Follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generate three character names and brief descriptions.&lt;/li&gt;
&lt;li&gt;Create a setting for the story.&lt;/li&gt;
&lt;li&gt;Outline a basic plot with a beginning, middle, and end.&lt;/li&gt;
&lt;li&gt;Write the story in 500 words based on these elements."&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  5. Use Control Statements
&lt;/h3&gt;

&lt;p&gt;Incorporate control statements to guide the AI's behavior.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;: "Analyze the following text for sentiment. Respond ONLY with 'Positive', 'Negative', or 'Neutral'. Text: 'The new restaurant in town has great food, but the service is slow.'"&lt;/p&gt;
&lt;h3&gt;
  
  
  6. Iterate and Refine
&lt;/h3&gt;

&lt;p&gt;Don't expect perfect results on the first try. Iterate on your prompts, refining them based on the outputs you receive.&lt;/p&gt;
&lt;h3&gt;
  
  
  7. Consider Ethical Implications
&lt;/h3&gt;

&lt;p&gt;Always consider the ethical implications of your prompts. Avoid generating harmful, biased, or inappropriate content.&lt;/p&gt;
&lt;h2&gt;
  
  
  Managing Prompts with UltraAI.app
&lt;/h2&gt;

&lt;p&gt;While these best practices are crucial, managing prompts across multiple projects and team members can be challenging. This is where &lt;a href="https://ultraai.app" rel="noopener noreferrer"&gt;UltraAI.app&lt;/a&gt; comes in, offering a robust solution for prompt management.&lt;/p&gt;
&lt;h3&gt;
  
  
  Key Features of UltraAI.app for Prompt Management
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Centralized Prompt Storage&lt;/strong&gt;: Store all your prompts in one place, accessible to your entire team.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prompt Templates&lt;/strong&gt;: Create reusable prompt templates to ensure consistency across your projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dynamic Variables&lt;/strong&gt;: Use variables in your prompts for easy customization without changing the core prompt structure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performance Analytics&lt;/strong&gt;: Track the performance of different prompts to identify which ones work best.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collaboration Tools&lt;/strong&gt;: Share prompts with team members and collaborate on prompt refinement.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integration with Multiple AI Providers&lt;/strong&gt;: Use your prompts with various AI providers through UltraAI.app's unified API.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Using UltraAI.app for Effective Prompt Management
&lt;/h3&gt;

&lt;p&gt;Here's a quick example of how you can use UltraAI.app to manage your prompts:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&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="n"&gt;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;your-ultraai-api-key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.ultraai.app/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;completion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;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="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;models&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;openai:gpt-4&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;anthropic:claude-2&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;cache&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;type&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;similarity&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;maxAge&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3600&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;threshold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.8&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}),&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="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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello, how are you?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
    &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;userId&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;user123&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;maxRequests&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;duration&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;hour&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;In this example, we're using a prompt template stored in UltraAI.app with the ID "customer-support-prompt-v2". We're passing in variables for the product name and customer name, which will be inserted into the prompt template.&lt;/p&gt;

&lt;p&gt;This approach allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reuse prompts across your application&lt;/li&gt;
&lt;li&gt;Easily update prompts without changing your code&lt;/li&gt;
&lt;li&gt;Maintain consistency in your AI interactions&lt;/li&gt;
&lt;li&gt;Track the usage and performance of different prompts&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Effective prompt engineering and management are key to successful AI development. By following these best practices and leveraging tools like UltraAI.app, you can create more efficient, consistent, and powerful AI-driven applications.&lt;/p&gt;

&lt;p&gt;Ready to take your prompt management to the next level? &lt;a href="https://dashboard.ultraai.app/login" rel="noopener noreferrer"&gt;Sign up for UltraAI.app&lt;/a&gt; today and experience the difference that professional prompt management can make in your AI development workflow.&lt;/p&gt;

&lt;p&gt;Remember, the art of prompt engineering is continually evolving. Stay curious, keep experimenting, and don't hesitate to share your experiences with the community. Happy prompting!&lt;/p&gt;

</description>
      <category>llm</category>
      <category>promptengineering</category>
      <category>ai</category>
    </item>
    <item>
      <title>Introducing UltraAI.app — All-in-one AI command center for your product.</title>
      <dc:creator>Naman vyas</dc:creator>
      <pubDate>Sun, 28 Jul 2024 19:31:07 +0000</pubDate>
      <link>https://dev.to/ultraai/introducing-ultraaiapp-all-in-one-ai-command-center-for-your-product-4005</link>
      <guid>https://dev.to/ultraai/introducing-ultraaiapp-all-in-one-ai-command-center-for-your-product-4005</guid>
      <description>&lt;p&gt;Hey there, fellow devs! 👋 Are you building &lt;a href="https://dev.to/t/ai"&gt;AI-powered applications&lt;/a&gt;? Struggling with managing multiple AI providers, optimizing costs, and keeping track of your prompts? We've got something exciting to share with you today!&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet UltraAI.app
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://ultraai.app" rel="noopener noreferrer"&gt;UltraAI.app&lt;/a&gt; is your new best friend in the world of AI development. It's an all-in-one AI command center designed to make your life easier and your applications smarter. Let's dive into what makes UltraAI.app special!&lt;/p&gt;

&lt;h3&gt;
  
  
  🌐 Multi-provider AI Gateway
&lt;/h3&gt;

&lt;p&gt;Gone are the days of juggling multiple AI provider APIs. UltraAI.app offers a unified interface to access various AI providers through a single, &lt;a href="https://platform.openai.com/docs/api-reference" rel="noopener noreferrer"&gt;OpenAI-compatible API&lt;/a&gt;. Whether you're using OpenAI, Anthropic, or any other supported provider, you can switch between them seamlessly without changing your code.&lt;/p&gt;

&lt;h3&gt;
  
  
  💾 Semantic Caching
&lt;/h3&gt;

&lt;p&gt;Want to save up to 10x on your API costs? Our semantic caching has got you covered! Choose between simple and similarity caching, fine-tune the behavior for each API call, and set precise similarity levels for optimal results. It's like having a super-smart AI assistant that remembers previous conversations!&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 Logs &amp;amp; Analytics
&lt;/h3&gt;

&lt;p&gt;Make data-driven decisions faster with our comprehensive logs and analytics. Monitor your AI usage, track costs, and gain insights into your application's performance. It's like having a crystal ball for your AI operations!&lt;/p&gt;

&lt;h3&gt;
  
  
  📝 Prompts Manager
&lt;/h3&gt;

&lt;p&gt;Managing and using dynamic prompts can be a headache. We've made it easy! With our Prompts Manager, you can store, version control, and efficiently manage your AI prompts. It's like having a well-organized library for all your AI conversations.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛡️ Rate Limiting &amp;amp; Protection
&lt;/h3&gt;

&lt;p&gt;Protect your product and prevent abuse with our built-in rate limiting feature. Set custom limits for each user, choose flexible time frames, and easily integrate it into your application. It's like having a bouncer for your AI party!&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Choose UltraAI.app?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity&lt;/strong&gt;: One API to rule them all. No more juggling multiple provider SDKs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost-Effective&lt;/strong&gt;: Save money with intelligent caching and optimized API usage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility&lt;/strong&gt;: Easily switch between AI providers without changing your code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Insights&lt;/strong&gt;: Make informed decisions with detailed logs and analytics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: Protect your application with built-in rate limiting.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Getting Started is a Breeze!
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://dashboard.ultraai.app/login" rel="noopener noreferrer"&gt;Sign up for UltraAI.app&lt;/a&gt; (Psst... it's free during beta!)&lt;/li&gt;
&lt;li&gt;Grab your API key from the dashboard.&lt;/li&gt;
&lt;li&gt;Replace your existing OpenAI base URL with &lt;code&gt;https://api.ultraai.app/v1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Start coding with superpowers!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here's a quick example in Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&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="n"&gt;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;your-ultraai-api-key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.ultraai.app/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;completion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;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="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;models&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;openai:gpt-4&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;anthropic:claude-2&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;cache&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;type&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;similarity&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;maxAge&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3600&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;threshold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.8&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}),&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="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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello, how are you?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
    &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;userId&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;user123&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;maxRequests&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;duration&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;hour&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Join the UltraAI Community
&lt;/h2&gt;

&lt;p&gt;We're excited to see what you'll build with UltraAI.app! Have questions, feedback, or just want to chat about AI? We'd love to hear from you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📚 Check out our &lt;a href="https://ultraai.app/documentation" rel="noopener noreferrer"&gt;documentation&lt;/a&gt; for detailed guides and API references.&lt;/li&gt;
&lt;li&gt;📝 Read our &lt;a href="https://dev.to/ultraai"&gt;blog posts&lt;/a&gt; for tips, tricks, and AI insights.&lt;/li&gt;
&lt;li&gt;📅 &lt;a href="https://cal.com/vaibhavacharya/ultra-ai-intro" rel="noopener noreferrer"&gt;Book a call&lt;/a&gt; with us to discuss your AI needs.&lt;/li&gt;
&lt;li&gt;📧 Reach out to us at &lt;a href="//mailto:vaibhav@ultraai.app"&gt;vaibhav@ultraai.app&lt;/a&gt; for any queries.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ready to supercharge your AI development? &lt;a href="https://dashboard.ultraai.app/login" rel="noopener noreferrer"&gt;Sign up for UltraAI.app&lt;/a&gt; today and join us on this exciting journey! 🚀&lt;/p&gt;

&lt;p&gt;Happy coding, and may the AI be with you! 🤖✨&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>showdev</category>
      <category>devops</category>
    </item>
    <item>
      <title>Control a 3D Model with Your Phone: A React, Three.js, and Socket.io Project 🚀</title>
      <dc:creator>Naman vyas</dc:creator>
      <pubDate>Wed, 26 Apr 2023 17:22:22 +0000</pubDate>
      <link>https://dev.to/namanvyas/control-a-3d-model-with-your-phone-a-react-threejs-and-socketio-project-356c</link>
      <guid>https://dev.to/namanvyas/control-a-3d-model-with-your-phone-a-react-threejs-and-socketio-project-356c</guid>
      <description>&lt;p&gt;As a fan of 3D models and technology, I wanted to create a website that allows you to control a 3D model using your phone's movements on a local network. Here's how I did it&lt;/p&gt;

&lt;p&gt;First, I found a 3D model of a phone online and downloaded it. Then, I used Three.js to display the model on the screen, React.js for the frontend, and Express Node for the backend. I utilized Socket.io to transmit data on the local network.&lt;/p&gt;

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

&lt;p&gt;To sync the 3D model movement with the phone, I used the phone's gyro sensor data and transmitted it to the phone using Socket.io. However, I ran into a problem where I wasn't able to run the application on a local IP due to Chrome's security rules not allowing sensor data on an unsecured site. After some research, I forwarded my PC port to my Android device to access my page as localhost.&lt;/p&gt;

&lt;p&gt;If you're interested in more projects like this, be sure to follow me on Twitter where I share my latest tech explorations!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/gitrevert/status/1651234806783528960" rel="noopener noreferrer"&gt;https://twitter.com/gitrevert/status/1651234806783528960&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>3d</category>
    </item>
    <item>
      <title>I tried making this reflective UI using HTML CSS and Javascript</title>
      <dc:creator>Naman vyas</dc:creator>
      <pubDate>Tue, 07 Mar 2023 17:53:40 +0000</pubDate>
      <link>https://dev.to/namanvyas/i-tried-making-this-reflective-ui-using-html-css-and-javascript-52ij</link>
      <guid>https://dev.to/namanvyas/i-tried-making-this-reflective-ui-using-html-css-and-javascript-52ij</guid>
      <description>&lt;p&gt;Have you ever seen a website with a reflective user interface? &lt;/p&gt;

&lt;p&gt;Recently, I decided to take on the challenge of creating a reflective UI using only these three technologies: HTML, CSS and JavaScript. And after some experimentation and tweaking, I'm happy to share my results with you all.&lt;/p&gt;

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

&lt;p&gt;you can check it out at: &lt;a href="https://demo-gg.vercel.app/" rel="noopener noreferrer"&gt;https://demo-gg.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also it you like it please follow me on Twitter: &lt;a href="https://twitter.com/gitrevert" rel="noopener noreferrer"&gt;@gitrevert&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1633057413312987136-309" src="https://platform.twitter.com/embed/Tweet.html?id=1633057413312987136"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1633057413312987136-309');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1633057413312987136&amp;amp;theme=dark"
  }



&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>showdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Created A AI-Powered Solution For E-commerce Products</title>
      <dc:creator>Naman vyas</dc:creator>
      <pubDate>Thu, 02 Feb 2023 16:57:24 +0000</pubDate>
      <link>https://dev.to/namanvyas/created-a-ai-powered-solution-for-e-commerce-products-19j</link>
      <guid>https://dev.to/namanvyas/created-a-ai-powered-solution-for-e-commerce-products-19j</guid>
      <description>&lt;h2&gt;
  
  
  Hello everyone 👋
&lt;/h2&gt;

&lt;p&gt;Trying to come up with the ideal title, description and other information for your products is taking up a lot of your time. Do you find it difficult to create enticing and comprehensive product descriptions that encourage clients to make purchases? So stop looking now! Writing product descriptions no longer needs to be a burden thanks to our AI-powered tools.&lt;br&gt;
Link: - &lt;a href="//Aiproducttools.com"&gt;Aiproducttools.com&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%2F80s1nq12v63epln66xqk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F80s1nq12v63epln66xqk.png" alt="Product Image" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;We noted that our friend, who works in online sales, struggles with the same thing. He puts a lot of thought and work into creating the best product title, description, and other information for his products. This inspired &lt;a href="https://twitter.com/VaibhavAcharya_" rel="noopener noreferrer"&gt;Vaibhav&lt;/a&gt; and &lt;a href="https://twitter.com/gitrevert" rel="noopener noreferrer"&gt;Me&lt;/a&gt; to develop a method that would reduce the time and work necessary for product descriptions while maximizing their effectiveness.&lt;/p&gt;

&lt;p&gt;To assist online sellers like our friend, we created the AI-powered product tools. It was our goal to develop a platform where everyone can find the answer they require for their online selling business. With the help of this tool, anyone can quickly and easily create high-quality product descriptions, saving time and effort while still delivering outcomes that will increase sales.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;Remix.run&lt;br&gt;
OpenAI&lt;br&gt;
TailwindCSS&lt;br&gt;
Cockroachdb&lt;br&gt;
Prisma&lt;/p&gt;

&lt;h2&gt;
  
  
  Future goals
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Product image enhancer&lt;/li&gt;
&lt;li&gt;Product banner generator&lt;/li&gt;
&lt;li&gt;Product ad creator&lt;/li&gt;
&lt;li&gt;And many more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Thanks for reading 😊.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Give our product a try - &lt;a href="https://www.aiproducttools.com/" rel="noopener noreferrer"&gt;Aiproducttools.com&lt;/a&gt;&lt;br&gt;
And drop your suggestion below&lt;/p&gt;

</description>
      <category>web3</category>
      <category>crypto</category>
      <category>blockchain</category>
      <category>offers</category>
    </item>
    <item>
      <title>Avoiding Common Pitfalls when Working with React JS 🚫</title>
      <dc:creator>Naman vyas</dc:creator>
      <pubDate>Wed, 07 Dec 2022 16:39:48 +0000</pubDate>
      <link>https://dev.to/namanvyas/avoiding-common-pitfalls-when-working-with-react-js-58pp</link>
      <guid>https://dev.to/namanvyas/avoiding-common-pitfalls-when-working-with-react-js-58pp</guid>
      <description>&lt;p&gt;React JS is a powerful and popular JavaScript library for building user interfaces, but like any technology, it has its own set of challenges and potential pitfalls. In this blog post, we'll look at some of the most common mistakes and pitfalls to avoid when working with React JS in order to help you get the most out of this powerful tool. &lt;/p&gt;

&lt;h2&gt;
  
  
  💻 Using React as a One-Size-Fits-All Solution
&lt;/h2&gt;

&lt;p&gt;One of the most common mistakes that people make when working with React is trying to use it as a one-size-fits-all solution. React is a powerful tool, but it's not suitable for every situation. In particular, React is best suited for building user interfaces, and it's not as well-suited for tasks like data processing or routing. If you try to use React for tasks that it's not well-suited for, you may run into performance issues or other problems. &lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 Not Understanding How React Works
&lt;/h2&gt;

&lt;p&gt;Another common mistake is trying to use React without a thorough understanding of how it works. React uses a concept called the virtual DOM, which allows it to efficiently update the user interface based on changes in the underlying data. If you don't understand how the virtual DOM works, you may run into problems when trying to manage state or update the user interface. &lt;/p&gt;

&lt;h2&gt;
  
  
  🔨 Ignoring the Ecosystem of Tools and Libraries
&lt;/h2&gt;

&lt;p&gt;Additionally, many people make the mistake of trying to use React without learning about its ecosystem of tools and libraries. React is just a piece of the puzzle, and in order to build a complete application, you'll need to use a range of tools and libraries like &lt;a href="https://redux.js.org/"&gt;Redux&lt;/a&gt; for state management, &lt;a href="https://reactrouter.com/en/main"&gt;React Router&lt;/a&gt; for routing, and many others. If you don't take the time to learn about these tools and how to use them properly, you may run into difficulties when building your React applications. &lt;/p&gt;

&lt;h2&gt;
  
  
  🗂️ Poor Code Organization
&lt;/h2&gt;

&lt;p&gt;Finally, one of the most common pitfalls when working with React is poor code organization. React applications can quickly become complex, with many different components, state changes, and interactions between different parts of the application. If you don't take the time to organize your code and structure it properly, your application can quickly become difficult to maintain and debug. &lt;/p&gt;

&lt;p&gt;In conclusion, React JS is a powerful tool for building user interfaces, but it's important to avoid common pitfalls and mistakes in order to get the most out of it. By understanding the limitations of React, learning about its ecosystem of tools and libraries, and organizing your code properly, you can avoid many of the common problems and challenges when working with this powerful JavaScript library.&lt;/p&gt;




&lt;p&gt;Thank you fam for reading!!! &lt;br&gt;
Have a great day 😊&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>react</category>
    </item>
    <item>
      <title>Ideaas: A simple platform where lazy people can share their ideas with you and you can build them.</title>
      <dc:creator>Naman vyas</dc:creator>
      <pubDate>Sat, 19 Nov 2022 04:08:52 +0000</pubDate>
      <link>https://dev.to/namanvyas/ideaas-a-simple-platform-where-lazy-people-can-share-their-ideas-with-you-and-you-can-build-them-21lf</link>
      <guid>https://dev.to/namanvyas/ideaas-a-simple-platform-where-lazy-people-can-share-their-ideas-with-you-and-you-can-build-them-21lf</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;do you have an idea that you can not build, share them with the community.&lt;br&gt;
you can check the product here👉: &lt;a href="//ideaas.co"&gt;ideaas.co&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;I had one friend who always had ideas but not the skill to build them. So, he used to tell me the ideas and I used to build them. Then I thought, why not create a community where people can share their idea, discuss and then build them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;I'm going to add the option to sell an idea if you have more than a idea, such as a case study or some mvp.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sorting and tags&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Profile edit&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Remix Run&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;TailwindCSS&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;cockroachDB&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prisma ORM&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thank you 😊&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>showdev</category>
      <category>react</category>
    </item>
    <item>
      <title>Jobilist: Side project to product</title>
      <dc:creator>Naman vyas</dc:creator>
      <pubDate>Sun, 15 May 2022 07:44:18 +0000</pubDate>
      <link>https://dev.to/namanvyas/jobilist-side-project-to-product-30nc</link>
      <guid>https://dev.to/namanvyas/jobilist-side-project-to-product-30nc</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hello everyone👋&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We published our side project public a few days ago after seeing some issues on job boards. We got a lot of positive feedback on it, so we're going to turn it into a side business.&lt;/p&gt;

&lt;p&gt;Website Link : &lt;a href="https://jobilist.com"&gt;https://jobilist.com&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/jobilist/jobilist"&gt;https://github.com/jobilist/jobilist&lt;/a&gt;&lt;br&gt;
ProductHunt: &lt;a href="https://www.producthunt.com/posts/jobilist"&gt;https://www.producthunt.com/posts/jobilist&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Jobilist:&lt;/strong&gt;&lt;br&gt;
It is simple and straightforward job board for both job seekers and employers. It is affordable, beautiful and opensource.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it started&lt;/strong&gt;&lt;br&gt;
We were looking for a job and visited a number of job boards, but we noticed that they were all bulky and displayed useless information, were spammed with advertisements, and so on. So we decided to build a basic and effective job board.&lt;br&gt;
And we launched it a few days ago in the community, and we've gotten a lot of positive feedback in the last few days; today, we have around &lt;strong&gt;1000+ daily visitors&lt;/strong&gt; and &lt;strong&gt;50+ active job&lt;/strong&gt; postings on our job board. After seeing all of this, we decided to transform this project into a product at a cheap price, as the prices on other job boards are expensive.&lt;/p&gt;

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

</description>
      <category>showdev</category>
      <category>design</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>ShowDEV - A open source job Board</title>
      <dc:creator>Naman vyas</dc:creator>
      <pubDate>Wed, 04 May 2022 07:20:24 +0000</pubDate>
      <link>https://dev.to/namanvyas/showdev-a-open-source-job-board-3nhd</link>
      <guid>https://dev.to/namanvyas/showdev-a-open-source-job-board-3nhd</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hello everyone👋&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We are very excited to introduce our first product to the community. It is simple and straightforward job board for both job seekers and employers. It is affordable, beautiful and opensource.&lt;/p&gt;

&lt;p&gt;Website Link : &lt;a href="//jobilist.com"&gt;https://jobilist.com&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/jobilist/jobilist"&gt;https://github.com/jobilist/jobilist&lt;/a&gt;&lt;br&gt;
ProductHunt: &lt;a href="https://www.producthunt.com/posts/jobilist"&gt;https://www.producthunt.com/posts/jobilist&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it started&lt;/strong&gt;&lt;br&gt;
We were looking for a job and visited a number of job boards, but we noticed that they were all bulky and displayed useless information, were spammed with advertisements, and so on. So we decided to build a basic and effective job board.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build With&lt;/strong&gt;&lt;br&gt;
&lt;a href="//Remix.run"&gt;Remix.run&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.prisma.io/"&gt;Prisma&lt;/a&gt;(Postgresql)&lt;br&gt;
&lt;a href="//Railway.app"&gt;Railway.app&lt;/a&gt; &lt;/p&gt;

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

</description>
      <category>showdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
