<?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: Justin Macorin</title>
    <description>The latest articles on DEV Community by Justin Macorin (@justinmacorin).</description>
    <link>https://dev.to/justinmacorin</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%2F1218168%2Fabbfc8c2-f9eb-44a7-b12a-743023cb6e5f.jpeg</url>
      <title>DEV Community: Justin Macorin</title>
      <link>https://dev.to/justinmacorin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/justinmacorin"/>
    <language>en</language>
    <item>
      <title>The Future of Natural Language APIs</title>
      <dc:creator>Justin Macorin</dc:creator>
      <pubDate>Sun, 17 Mar 2024 05:26:50 +0000</pubDate>
      <link>https://dev.to/justinmacorin/the-future-of-natural-language-apis-2m72</link>
      <guid>https://dev.to/justinmacorin/the-future-of-natural-language-apis-2m72</guid>
      <description>&lt;p&gt;&lt;strong&gt;Note: Natural Language APIs is a VERY early concept. Ideas in this article may be not be representative of the direction that software engineering is heading in.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The world of software engineering is constantly evolving, and one of the most exciting developments on the horizon is the potential for APIs to communicate using natural language. This shift could revolutionize the way developers interact with APIs, making the process more intuitive and accessible. By embracing natural language, APIs could become more flexible, adaptable, and user-friendly, ultimately leading to more efficient and effective software development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations of Current API Communication
&lt;/h2&gt;

&lt;p&gt;Currently, REST APIs rely on POST BODY schemas to facilitate communication between different systems. While this approach has been the standard for years, it can be cumbersome and time-consuming for developers to navigate. The need for precise formatting and strict adherence to predetermined schemas can lead to errors and delays in the development process. Additionally, the tight coupling between front-end and back-end systems can make it difficult to adapt to changing requirements or introduce new features.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Promise of Natural Language APIs
&lt;/h2&gt;

&lt;p&gt;Natural language APIs offer a promising alternative to traditional REST APIs. By allowing developers to communicate with APIs using plain English or other natural languages, the barriers to entry for API integration could be significantly reduced. This approach would enable developers to focus on the functionality they need, rather than getting bogged down in the details of complex schemas. Natural language APIs could also make it easier for non-technical stakeholders to understand and contribute to the development process, fostering greater collaboration and innovation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges and Opportunities
&lt;/h2&gt;

&lt;p&gt;While the potential benefits of natural language APIs are significant, there are also challenges that need to be addressed. One of the primary concerns is the need for accurate interpretation of natural language queries and commands. This requires sophisticated natural language processing (NLP) capabilities and well-defined schemas to ensure that the API can understand and respond appropriately to user input. However, as NLP technologies continue to advance, these challenges are likely to be overcome, paving the way for more widespread adoption of natural language APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Road Ahead
&lt;/h2&gt;

&lt;p&gt;As the software engineering community explores the possibilities of natural language APIs, it is clear that this technology has the potential to transform the way we build and interact with software. By embracing natural language, APIs could become more accessible, flexible, and user-friendly, enabling developers to focus on creating innovative solutions rather than navigating complex schemas. While there are challenges to be addressed, the future of API communication looks bright, and natural language APIs are poised to play a significant role in shaping that future.&lt;/p&gt;




&lt;p&gt;Originally published on &lt;a href="https://promptdesk.ai/articles/the-future-of-natural-language-api?ref=dev.to"&gt;PromptDesk&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>llm</category>
      <category>llmops</category>
      <category>promptengineering</category>
      <category>api</category>
    </item>
    <item>
      <title>Small Language Models are Going to Eat the World.</title>
      <dc:creator>Justin Macorin</dc:creator>
      <pubDate>Mon, 22 Jan 2024 02:14:28 +0000</pubDate>
      <link>https://dev.to/justinmacorin/small-language-models-are-going-to-eat-the-world-7l0</link>
      <guid>https://dev.to/justinmacorin/small-language-models-are-going-to-eat-the-world-7l0</guid>
      <description>&lt;p&gt;Today, Large Language Models (LLMs) typically require internet access. As prompt-based applications become ubiquitous, there is a high likelihood we slowly begin to see a transition from internet-based models to locally hosted models.&lt;/p&gt;

&lt;p&gt;Local models are nothing new. Google product users are often pushed to download local models for Google Maps, Google Translate, and Text2Speech. These models run locally for four primary purposes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;speed&lt;/li&gt;
&lt;li&gt;reliability&lt;/li&gt;
&lt;li&gt;privacy&lt;/li&gt;
&lt;li&gt;cost&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Benefits
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Speed
&lt;/h3&gt;

&lt;p&gt;Local models have no network latency. They run locally, and instructions and data transfers happen closer to the application layer, resulting in increased performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reliability
&lt;/h3&gt;

&lt;p&gt;Local models are self-reliant. They don't require additional computers to operate and don't rely on 3rd party service providers. They run as stand-alone and won't break if internet connectivity is lost.&lt;/p&gt;

&lt;h3&gt;
  
  
  Privacy
&lt;/h3&gt;

&lt;p&gt;Private information is processed locally and never shared with another provider. Information passed into these models may contain private or confidential information that an external processor should not process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost
&lt;/h3&gt;

&lt;p&gt;Local models require zero hosting. Models may run frequently, and costs involved in processing data regularly at scale may become unaffordable or may better be absorbed by a local device.&lt;/p&gt;

&lt;h2&gt;
  
  
  How can we make local models a reality?
&lt;/h2&gt;

&lt;p&gt;Python is the language of choice to run LLMs. However, we know that embedded devices, mobile apps, and web servers often use different languages to run and operate efficiently.&lt;/p&gt;

&lt;p&gt;To bridge the gap in SDKs for accessing large language models across various platforms, engineers should consider developing and integrating multi-language libraries and frameworks that are compatible with mobile, embedded, and diverse server environments. Embracing innovation and flexibility in these developments is critical, as large language models represent a new technological frontier rather than merely enhancing existing tools.&lt;/p&gt;

&lt;p&gt;This original article can be found here: &lt;a href="https://promptdesk.ai/articles/small-languages-models-are-going-to-eat-the-world"&gt;https://promptdesk.ai/articles/small-languages-models-are-going-to-eat-the-world&lt;/a&gt;&lt;/p&gt;

</description>
      <category>llmops</category>
      <category>promptengineering</category>
      <category>softwareengineering</category>
      <category>llm</category>
    </item>
    <item>
      <title>PDLC: Prompt Development Life Cycle</title>
      <dc:creator>Justin Macorin</dc:creator>
      <pubDate>Tue, 02 Jan 2024 03:59:03 +0000</pubDate>
      <link>https://dev.to/justinmacorin/pdlc-prompt-development-life-cycle-16e6</link>
      <guid>https://dev.to/justinmacorin/pdlc-prompt-development-life-cycle-16e6</guid>
      <description>&lt;p&gt;Prompt engineering, like software engineering, has a development life cycle. As we build, measure, and integrate these prompts into an application, they can improve over time and be fine-tuned for increased performance.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  1. Initial Build
&lt;/h2&gt;

&lt;p&gt;In the initial build phase, we build an initial prompt. This prompt does not need to be perfect.&lt;br&gt;
It can incorporate techniques such as zero-shot, few-shot, chain-of-thought, choice-shuffle, etc.&lt;/p&gt;

&lt;p&gt;The goal of the initial prompt is to build a prompt so that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;it works 80% of the time&lt;/li&gt;
&lt;li&gt;it can be integrated into the product&lt;/li&gt;
&lt;li&gt;we can start collecting data for review&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  2. Measure and Track
&lt;/h2&gt;

&lt;p&gt;In the measuring and tracking phase, we aim to collect as much product and prompt usage information as possible.&lt;br&gt;
We store generated prompt output and corresponding variables in a database or logging environment.&lt;br&gt;
Measuring and tracking output will allow us to optimize and fine-tune future models and ensure they work.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Optimize
&lt;/h2&gt;

&lt;p&gt;Optimization aims to review historical prompt data and understand areas of opportunity, edge cases, exceptions, and overall performance.&lt;br&gt;
We modify the prompt to increase the accuracy as much as possible.&lt;/p&gt;

&lt;p&gt;Optimization will:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;help us save time in the dataset review process&lt;/li&gt;
&lt;li&gt;increase prompt performance&lt;/li&gt;
&lt;li&gt;identify areas where a prompt break-down is required&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  4. Create Training Dataset
&lt;/h2&gt;

&lt;p&gt;To create a training dataset, we review a large number of samples.&lt;br&gt;
Some samples need to be corrected, and others require additional review, input, and feedback before being accepted as part of a training dataset.&lt;br&gt;
Creating a training dataset is often time-consuming, but it is a required component of AI-related development work.&lt;/p&gt;

&lt;p&gt;The size of the dataset will depend on:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;complexity of output&lt;/li&gt;
&lt;li&gt;LLM models selected to fine-tune&lt;/li&gt;
&lt;li&gt;quality considerations&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  5. Fine-tune
&lt;/h2&gt;

&lt;p&gt;The last and final step of the prompt development life cycle (PDLC) is to fine-tune an LLM or another type of model based on the training dataset.&lt;br&gt;
If a sufficiently large training dataset is created, we can fine-tune or train a smaller model with similar or better performance.&lt;br&gt;
Once a model is fine-tuned, we should continue to log, track, and review data to optimize the model further in the future if required.&lt;/p&gt;




&lt;p&gt;You can view the original article &lt;a href="https://promptdesk.ai/articles/pdlc-prompt-development-lifecycle?ref=devto"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>llm</category>
      <category>promptengineering</category>
      <category>machinelearning</category>
      <category>engineering</category>
    </item>
    <item>
      <title>Top 4 open source LLM prompt management platforms.</title>
      <dc:creator>Justin Macorin</dc:creator>
      <pubDate>Thu, 14 Dec 2023 16:13:13 +0000</pubDate>
      <link>https://dev.to/justinmacorin/top-4-open-source-llm-prompt-management-platforms-4j4h</link>
      <guid>https://dev.to/justinmacorin/top-4-open-source-llm-prompt-management-platforms-4j4h</guid>
      <description>&lt;h3&gt;
  
  
  PromptDesk
&lt;/h3&gt;

&lt;p&gt;The easiest and fastest way to build prompt-based applications.&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%2F0hwgh67pn9j4a8fan7jm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0hwgh67pn9j4a8fan7jm.png" alt="PromptDesk screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Top 4 features:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Collaborative GUI Prompt Builder: Featuring a user-friendly and sophisticated interface, this builder streamlines the creation of complex prompts, enabling users to craft intricate prompt structures with ease.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;100% LLM Support: PromptDesk offers seamless integration with all large language models without restriction, limit or wait.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fine-Tuning and Data Management: Users have access to detailed logs and histories, facilitating the fine-tuning of datasets and prompts for optimized performance and tailored application responses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Python SDK: Accelerate prompt-to-code which allows for effortless integration of prompts created in the GUI with Python source code.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://github.com/promptdesk/promptdesk" rel="noopener noreferrer"&gt;&lt;br&gt;
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdabuttonfactory.com%2Fbutton.png%3Ft%3DGive%2Ba%2BStar%2Bon%2BGitHub%21%26f%3DOpen%2BSans-Bold%26ts%3D18%26tc%3Dfff%26hp%3D45%26vp%3D20%26c%3D11%26bgt%3Dunicolored%26bgc%3D0000EE" alt="Give us a Star"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  LiteLLM
&lt;/h3&gt;

&lt;p&gt;Call 100+ LLM models using the OpenAI format.&lt;/p&gt;

&lt;h4&gt;
  
  
  Top 4 features:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Unified API Format: It allows calling various LLM APIs using the OpenAI format, simplifying integration with multiple providers like Azure, Cohere, Anthropic, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consistent Output and Exception Mapping: Guarantees consistent output format and maps common exceptions across different providers to OpenAI exception types.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Load Balancing and Proxy Management: Supports load balancing across multiple deployments and manages calling 100+ LLMs in OpenAI format.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Logging and Observability: Provides predefined callbacks for integration with various logging and monitoring tools.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://github.com/BerriAI/litellm" rel="noopener noreferrer"&gt;&lt;br&gt;
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdabuttonfactory.com%2Fbutton.png%3Ft%3DGive%2Ba%2BStar%2Bon%2BGitHub%21%26f%3DOpen%2BSans-Bold%26ts%3D18%26tc%3Dfff%26hp%3D45%26vp%3D20%26c%3D11%26bgt%3Dunicolored%26bgc%3D0000EE" alt="Give us a Star"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  LLMClient
&lt;/h3&gt;

&lt;p&gt;A caching and debugging proxy server for LLM users.&lt;/p&gt;

&lt;h4&gt;
  
  
  Top 4 features:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Multi-LLM Support: It supports various language models, including OpenAI's GPT models, Anthropic's Claude, Azure's AI models, Google's AI Text models, and more.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Function (API) Calling with Reasoning (CoT): Enables language models to reason through tasks and interact with external data via API calls. This includes built-in functions like a code interpreter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Detailed Debug Logs and Troubleshooting Support: Provides tools for debugging, including comprehensive logs and a Web UI for tracing and metrics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Long Term Memory and Vector DB Support (Built-in RAG): Supports long-term memory for maintaining context in conversations and retrieval-augmented generation (RAG) with vector database support for enhanced query responses.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://github.com/dosco/llm-client" rel="noopener noreferrer"&gt;&lt;br&gt;
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdabuttonfactory.com%2Fbutton.png%3Ft%3DGive%2Ba%2BStar%2Bon%2BGitHub%21%26f%3DOpen%2BSans-Bold%26ts%3D18%26tc%3Dfff%26hp%3D45%26vp%3D20%26c%3D11%26bgt%3Dunicolored%26bgc%3D0000EE" alt="Give us a Star"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  GPTCache
&lt;/h3&gt;

&lt;p&gt;A semantic cache for LLMs that fully integrates with LangChain and llama_index.&lt;/p&gt;

&lt;h4&gt;
  
  
  Top 4 features:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Semantic Caching: Utilizes semantic analysis to cache similar queries, enhancing efficiency and reducing redundant API calls to language models.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Modular Design: Offers flexibility in integrating various components like LLM adapters, multimodal adapters, and embedding generators for customized caching solutions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Support for Multiple LLMs and Multimodal Models: Compatible with a range of large language models and multimodal models, facilitating broad application scenarios.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Diverse Storage and Vector Store Options: Supports a variety of cache storage systems and vector stores, allowing for scalable and adaptable cache management.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://github.com/zilliztech/GPTCache" rel="noopener noreferrer"&gt;&lt;br&gt;
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdabuttonfactory.com%2Fbutton.png%3Ft%3DGive%2Ba%2BStar%2Bon%2BGitHub%21%26f%3DOpen%2BSans-Bold%26ts%3D18%26tc%3Dfff%26hp%3D45%26vp%3D20%26c%3D11%26bgt%3Dunicolored%26bgc%3D0000EE" alt="Give us a Star"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
