DEV Community

viky
viky

Posted on

Elevate Your Developer Experience with LLMText: A Seamless Library for Language Models

In the fast-evolving world of artificial intelligence, the way we interface with technology is becoming increasingly sophisticated. Language models (LLMs) like GPT-3 and its successors are revolutionizing how we communicate with machines. However, tapping into this power can often come with complexities that can be daunting for developers. Enter LLMText, a streamlined library designed to make interacting with language models not just easy, but enjoyable.

What is LLMText?

LLMText is a comprehensive codebase offering a suite of tools that simplifies asynchronous interactions with language models. It marries functionality with an intuitive design, making it easier for developers to generate text, extract structured data, and create more complex workflows—without the usual headaches.

Key Features

Here’s why LLMText is a game-changer for developers:

  • User-Friendly Asynchronous Text Generation: Generate responses quickly and concurrently with minimal code. Simply craft your message and let LLMText handle the rest.

  • Seamless Streaming Text Generation: Enjoy real-time responses, allowing for smoother user interactions and more dynamic applications.

  • Structured Extraction: Extract structured data from free-text inputs effortlessly, even from LLMs that don’t support function calls. This built-in capability aids in retrieving relevant information without additional overhead.

  • Type Safety with Pydantic: Enjoy peace of mind knowing that your data models are type-checked, thanks to Pydantic. Build reliable applications with fewer runtime errors, improving the overall developer experience.

  • Flexible Workflows: Create complex interactions that involve multiple tools and messages with ease, enabling automation and expanded application capabilities without unnecessary complexity.

Getting Started: Easy Installation & Usage

Getting started with LLMText is a breeze. Install the library with a single command:

pip install llmtext
Enter fullscreen mode Exit fullscreen mode

And be sure to set up your environment variables by creating a simple .env file in your project root directory.

Quick Example: Asynchronous Text Generation

Here’s how effortlessly you can get started with LLMText for asynchronous text generation:

from llmtext.messages_fns import agenerate
from llmtext.data_types import Message

async def main():
    text = await agenerate(
        messages=[Message(role="user", content="what's the weather today?")]
    )
    print(text)

import asyncio
asyncio.run(main())
Enter fullscreen mode Exit fullscreen mode

With just a few lines of code, you can generate a response from a language model in seconds!

Agentic Workflow Made Simple

The workflow capabilities of LLMText empower you to build dynamic interactions without complicating your code. Check out this example that showcases the agentic workflow functionality:

from llmtext.data_types import Message
from llmtext.workflows_fns import astream_agentic_workflow
from llmtext.data_types import RunnableTool
from typing import Annotated
from pydantic import Field

class SearchInternetTool(RunnableTool):
    """A simple tool to illustrate internet search functionality."""

    query: Annotated[str, Field(description="search query")]

    async def arun(self) -> str:
        return f"there's no result for: {self.query}"

async def main():
    stream = astream_agentic_workflow(
        messages=[
            Message(role="user", content="what's the weather today?"),
            Message(role="assistant", content="there's no result for: what's the weather today?"),
        ],
        tools=[SearchInternetTool],
    )
    async for chunk in stream:
        print(chunk)

import asyncio
asyncio.run(main())
Enter fullscreen mode Exit fullscreen mode

This example highlights the ease with which you can integrate tools into workflows, making your applications more powerful and interactive without additional complexity.

Confidence in Code Quality

LLMText comes with an extensive suite of tests to ensure everything works as intended. You can run the tests using:

pytest
Enter fullscreen mode Exit fullscreen mode

With dedicated test files for various functionalities, maintaining code integrity has never been easier.

Join the LLMText Community

LLMText is open for contributions, and we welcome developers of all backgrounds to join us! Whether you have a bug to report, a feature to suggest, or cool enhancements to add, your input can make a difference. Follow our straightforward Git workflow to contribute:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Commit your changes.
  4. Push your branch to your fork.
  5. Submit a pull request.

License and Contact

LLMText is licensed under the MIT License, giving you the freedom to use, modify, and distribute the software as you see fit. For any questions or feedback, don’t hesitate to open an issue on GitHub!

Conclusion

As developers, we thrive on tools that make our lives easier and our applications better. LLMText stands out as a solution that not only simplifies interactions with language models but also enhances the overall developer experience. Its asynchronous capabilities, structured data extraction, type safety through Pydantic, and user-friendly interface come together to create a remarkable toolkit for building intelligent applications. Dive in, explore, and unlock the potential of LLMs with LLMText!

Top comments (1)

Collapse
 
piyushtechsavy profile image
piyush tiwari

Hi Viky. Is this library written on top of Langchain or it as an alternate to Langchain.