Skip to main content

Add your description here

Project description

LangPrompt

LangPrompt is a Python library for creating chat prompts with template support.

Some code come from https://github.com/cfahlgren1/observershttps://github.com/Mirascope/mirascope

Installation

pip install langprompt

Usage

from pydantic import BaseModel
from langprompt import TextOutputParser, Prompt
from langprompt.llms.openai import OpenAI
from langprompt.cache import SQLiteCache
from langprompt.store import DuckDBStore


class Input(BaseModel):
    text: str
    language: str = "Chinese"

prompt = Prompt[Input]("""
<|system|>
You are a professional translator. Please accurately translate the text while maintaining its original meaning and style.
<|end|>

<|user|>
Translate the following text into {{language}}: {{text}}
<|end|>
""")

if __name__ == "__main__":

    parser = TextOutputParser()
    provider = OpenAI(model="gpt-4o-mini", cache=SQLiteCache(), store=DuckDBStore(), query_per_second=0.2)
    inputs = [
        Input(text="Hello, how are you?", language="Chinese"),
        Input(text="Hello, how are you?", language="English"),
        Input(text="Hello, how are you?", language="Chinese"),
    ]

    messages = [prompt.parse(input) for input in inputs]
    responses = provider.batch(messages, batch_size=2, enable_retry=True)

    # 处理结果
    for i, response in enumerate(responses):
        print(f"\n--- Result {i+1} ---")
        print(f"Original: {inputs[i].text}")
        result = parser.parse(response)
        print(f"Translated: {result}")

执行结果:

--- Result 1 ---
Original: Hello, how are you?
Translated: 你好,你好吗?
Cache Key: None

--- Result 2 ---
Original: Hello, how are you?
Translated: Hello, how are you?
Cache Key: None

--- Result 3 ---
Original: Hello, how are you?
Translated: 你好,你好吗?
Cache Key: 5693a0a16dff61866ca18feef969719cc78979a5f44cd412fef1add7bdcaaa42

Todo

  1. OpenAI Tools 完全支持
  2. OpenAI JSON Mode 支持
  3. support data viewer
  4. add to langeval/ragas/distilabel distilabel support qianfan、llm cache

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

langprompt-0.1.1.tar.gz (123.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

langprompt-0.1.1-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

File details

Details for the file langprompt-0.1.1.tar.gz.

File metadata

  • Download URL: langprompt-0.1.1.tar.gz
  • Upload date:
  • Size: 123.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for langprompt-0.1.1.tar.gz
Algorithm Hash digest
SHA256 048ec92c3feaca2a7dc7f04f8fc7172deb433470e4ff7aa91532510bc95fdfce
MD5 638c28a3cc68f58d24283548d97565db
BLAKE2b-256 f3be637a00f8d7ae84f2a7a2fd3b80973385cae483f27d920bd4f1832a50c914

See more details on using hashes here.

Provenance

The following attestation bundles were made for langprompt-0.1.1.tar.gz:

Publisher: publish.yml on ninehills/langprompt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file langprompt-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: langprompt-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 26.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for langprompt-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dddeb906cfece436eeff200c12d5a63adc76d290b2cf13bc0db226e2009ed921
MD5 a8021ad6ecd7cf0795284a9f63b359f2
BLAKE2b-256 243f7b68c69a389fecd607b2948399d283fe56e0364be3e7e3a500f4482942aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for langprompt-0.1.1-py3-none-any.whl:

Publisher: publish.yml on ninehills/langprompt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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