Skip to main content

A simple llm library.

Project description

llmtext

llmtext is a simple yet powerful library designed to interact with large language models (LLMs) as straightforward functions. It provides easy-to-use interfaces for both input-output text transformations and input-to-Pydantic class conversions, leveraging the power of open-source LLMs and OpenAI's schema.

Features

  • Input Text, Output Text: Seamlessly generate text outputs from text inputs using large language models.
  • Input Text, Output Pydantic Class: Convert text inputs directly into structured Pydantic classes for better data validation and manipulation.
  • OpenAI Schema Support: Utilize OpenAI's schema for consistent and robust text processing.
  • OpenSource LLMs through TogetherAI: Access a variety of open-source LLMs via TogetherAI for flexible and cost-effective solutions.
  • Async by default: Asynchronous by default
  • Robusts: configured with retry and self healing loop for structured extraction

Installation

You can install llmtext via pip:

pip install llmtext

Usage

Text to Text Transformation

To generate text outputs from text inputs:

from llmtext.llms.openai import OpenaiLLM

llm = OpenaiLLM()
res = await llm.arun(text="What is the capital of France?")

Text to Pydantic Class Transformation

To convert text inputs into a Pydantic class:

from llmtext.llms.openai import OpenaiLLM

llm = OpenaiLLM()

class ExtractedData(BaseModel):
    name: Annotated[str, Field(description="Name of the city")]
    description: Annotated[str, Field(description="Description of the city")]

res = await llm.astructured_extraction(text="The city of France is Paris. It's a beautiful city.", output_class=ExtractedData)
assert isinstance(res, ExtractedData)

Access open source models through togetherAI

from llmtext.llms.togetherai import TogetherAILLM

llm = TogetherAILLM()

class ExtractedData(BaseModel):
    name: Annotated[str, Field(description="Name of the city")]
    description: Annotated[str, Field(description="Description of the city")]

res = await llm.astructured_extraction(text="The city of France is Paris. It's a beautiful city.", output_class=ExtractedData)

assert isinstance(res, ExtractedData)

Configuration

To configure llmtext for using OpenAI's schema or TogetherAI's open-source LLMs, you can set the necessary API keys in your environment variables or configuration file.

Example Configuration

TOGETHERAI_API_KEY=
TOGETHER_API_BASE_URL=https://api.together.xyz/v1
OPENAI_API_KEY=

Contributing

We welcome contributions to llmtext. Please fork the repository and submit pull requests. For major changes, please open an issue first to discuss what you would like to change.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments

Special thanks to OpenAI for providing robust schema support and TogetherAI for enabling access to open-source LLMs.


For more information, please refer to the documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llmtext-0.1.5.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

llmtext-0.1.5-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file llmtext-0.1.5.tar.gz.

File metadata

  • Download URL: llmtext-0.1.5.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.3 Linux/6.8.0-35-generic

File hashes

Hashes for llmtext-0.1.5.tar.gz
Algorithm Hash digest
SHA256 726c1442bf0470a51d8c13cd678ca1dbf5a8752cf0d235571dfa527801dd3581
MD5 c86396102f6edffae6435b76d28fa12b
BLAKE2b-256 635e1da54ebafd29fa6639860fbcb5b46257eb3ef08946ecf4322c6b3d5cd5c0

See more details on using hashes here.

File details

Details for the file llmtext-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: llmtext-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.3 Linux/6.8.0-35-generic

File hashes

Hashes for llmtext-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a52a145a853546de6fc170789862b3d37e81d9ef9071a950c4fdc15c2e5d45e0
MD5 d7a3af8f7e92e7d61ca0ad5e48d52696
BLAKE2b-256 da42c9d47f50af1b95031705434522e7f0bcd463b8ea65d3389d3c012082d06e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page