Skip to main content

A package for generating, validating, and utilizing Draft-7 JSON schemas with LangChain

Project description

Lang2Logic Python Package

Introduction

Lang2Logic: Generating python objects with natural language.

Overview

Lang2Logic is an innovative Python package designed for developers who need to translate natural language prompts into structured Python outputs. Utilizing advanced language processing algorithms, Lang2Logic simplifies generating Python code from verbal or written descriptions.

Key Features

  • Natural Language to Python Conversion: Converts natural language instructions into Python code, facilitating easier programming and automation.
  • Dynamic Schema Generation: Automatically generates schema from natural language inputs, providing structured outputs like lists, dictionaries, etc.
  • Flexible API Integration: User-friendly API for seamless integration with existing Python projects.

Installation and Usage

import os
from Lang2Logic.generator import Generator

# Initialize with API key
self.test_gen = Generator(os.environ.get("YOUR_API_KEY"))

# Generate schema from natural language
schema = self.test_gen.generate_schema("return a list of strings")

# The 'schema' here is an instance of the ResponseSchema class

Using the ResponseSchema Class

The ResponseSchema class is designed to handle and manipulate JSON schemas. It can accept a JSON string, a dictionary, or another instance of itself to create or modify a schema.

Creating an Instance

from Lang2Logic.response_schema import ResponseSchema

# Create a ResponseSchema instance from a dictionary
schema_dict = {"type": "object", "properties": {"name": {"type": "string"}}}
schema = ResponseSchema(schema_dict)

# Or from another ResponseSchema instance
another_schema = ResponseSchema(schema)

Getting Dictionary or JSON Representation

# Get the schema as a dictionary
schema_dict = schema.to_dict()

# Convert the schema to a JSON string
schema_json = schema.to_json()

Saving Schema to a File

# Save the schema to a JSON file
schema.save_to_json(key="mySchema", filepath="path/to/file.json")

Automatic Schema Generation

self.test_gen.generate("return a list of strings with 5 colors")
# The output is an instance of ResponseSchema
# Output: ["color1", "color2", "color3", "color4", "color5"]

Example Usage

Classifying Decisions and Preferences

schema = self.test_gen.generate_schema("return a dictionary with keys 'rational' and 'decision' (boolean)")

potential_buyers = []
for user in users_data_json["bios"]:
    decision = self.test_gen.generate(f"return true if this user might be interested in products related to rock climbing.\nUser Bio:\n{user['bio']}", schema)
    if decision["decision"]:
        potential_buyers.append(user)

Roadmap

  • Function Generation
  • Optimized Logic for Increased Accuracy
  • Code Parsing and LLM integration tools
  • Python Agents

Bug Reporting and Contributions

Found a bug or have a suggestion? Please contact dylanpwilson2005@gmail.com.

License

Lang2Logic is available under a Creative Commons license and may not be used for commercial purposes without explicit consent from the author.

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

Lang2Logic-0.1.3.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

Lang2Logic-0.1.3-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file Lang2Logic-0.1.3.tar.gz.

File metadata

  • Download URL: Lang2Logic-0.1.3.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for Lang2Logic-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ed1680e9d8e6b8eaf096c6a03e66517a714a45c967a20ac77a9dca8e1c216eea
MD5 bff7d49a6c165befb9e8362cce62b640
BLAKE2b-256 33c3336e6f3363e5c7798873bab18726f8f01d0a494b0c487a3c75378998ca9b

See more details on using hashes here.

File details

Details for the file Lang2Logic-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: Lang2Logic-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for Lang2Logic-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7d38fe175b0caf1fd67b81d667508d38532b631b7a74096e8ee4281400d14d8c
MD5 2e192bbd67f4bf44a2e0e19efcd40258
BLAKE2b-256 e760486550beee25bc04476f558353e2c4e4d9f42be6a9a327eb9efd9d02947e

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