Skip to main content

Open Spec Correct

PyPI version License: MIT Downloads LinkedIn

Automate and streamline the correction of imperfect OpenAPI specifications by extracting structured insights from textual descriptions.


📌 Overview

Open Spec Correct is a Python package designed to analyze user-provided textual descriptions of APIs and generate structured corrections for OpenAPI specifications. It leverages pattern matching and AI-driven insights to identify inconsistencies, errors, or missing details in API documentation, helping developers create more accurate and maintainable OpenAPI specs faster.


🚀 Features

  • Text-to-Spec Correction: Extracts structured insights from unstructured textual descriptions.
  • Pattern Matching: Uses regex-based validation to ensure output correctness.
  • LLM Flexibility: Works with LLM7 by default (free tier included) or supports custom LLMs (OpenAI, Anthropic, Google, etc.).
  • Retry Mechanisms: Ensures reliable extraction and correction.
  • Environment-Aware: Respects LLM7_API_KEY environment variable for seamless integration.

📦 Installation

pip install open_spec_correct

🔧 Usage

Basic Usage (Default LLM7)

from open_spec_correct import open_spec_correct

user_input = """
API endpoint for fetching user data.
Path: /users/{id}
Method: GET
Query params: ?name=string, ?age=int
Response: 200 OK with JSON body { "id": int, "name": string }
"""

response = open_spec_correct(user_input)
print(response)

Custom LLM Integration

You can replace the default ChatLLM7 with any LangChain-compatible LLM (e.g., OpenAI, Anthropic, Google Generative AI).

Example: Using OpenAI

from langchain_openai import ChatOpenAI
from open_spec_correct import open_spec_correct

llm = ChatOpenAI(model_name="gpt-4")  # Replace with your preferred model
response = open_spec_correct(user_input, llm=llm)
print(response)

Example: Using Anthropic

from langchain_anthropic import ChatAnthropic
from open_spec_correct import open_spec_correct

llm = ChatAnthropic(model="claude-2")
response = open_spec_correct(user_input, llm=llm)
print(response)

Example: Using Google Generative AI

from langchain_google_genai import ChatGoogleGenerativeAI
from open_spec_correct import open_spec_correct

llm = ChatGoogleGenerativeAI(model="gemini-pro")
response = open_spec_correct(user_input, llm=llm)
print(response)

🔑 API Key Configuration

  • Default: Uses LLM7_API_KEY from environment variables.
  • Manual Override: Pass the API key directly:
    response = open_spec_correct(user_input, api_key="your_llm7_api_key")
    
  • Free API Key: Register at LLM7 Token to get started.

⚠️ Rate Limits

  • LLM7 Free Tier: Sufficient for most use cases.
  • Custom Rate Limits: Upgrade via LLM7 dashboard or use a different LLM.

📝 Input Parameters

Parameter Type Description
user_input str Textual description of the API to correct.
api_key Optional[str] LLM7 API key (optional if LLM7_API_KEY is set in environment).
llm Optional[BaseChatModel] Custom LangChain LLM (e.g., ChatOpenAI, ChatAnthropic). Defaults to ChatLLM7.

🔄 Output

Returns a list of structured corrections (e.g., OpenAPI-compatible snippets) extracted from the input text.


📜 License

MIT License (see LICENSE).


🐛 Issues & Support

Report bugs or request features at: 🔗 GitHub Issues


👤 Author

Eugene Evstafev 📧 hi@euegne.plus 🌐 GitHub: chigwell


Metadata

Release files for open-spec-correct 2025.12.21155728

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for open-spec-correct 2025.12.21155728
File Size Uploaded
open_spec_correct-2025.12.21155728.tar.gz 4.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for open-spec-correct 2025.12.21155728
File Interpreter ABI Platform
open_spec_correct-2025.12.21155728-py3-none-any.whl Python 3 none any Details

Total release size: 10.1 kB

Release files / open_spec_correct-2025.12.21155728.tar.gz

Download URL open_spec_correct-2025.12.21155728.tar.gz
Size 4.7 kB
Tags Source
SHA-256 checksum
How to use checksums
dbef5e016d21a2e481b93be2a8548709f20e853cf02e7926eeee7c860b5b69a4
BLAKE2b-256 checksum
How to use checksums
c39ac21a9461a22cdca5bf21f55b3fa6dd93d77718cd52935015fd5a051fce41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.1

Release files / open_spec_correct-2025.12.21155728-py3-none-any.whl

Download URL open_spec_correct-2025.12.21155728-py3-none-any.whl
Size 5.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ddc323349f5f4dda4ffd89ce7413bf69608daa62d9de79e41dc3ed6e47664f3
BLAKE2b-256 checksum
How to use checksums
866ef24bcecbbda05f5d2afe2faf7f7032771f2fb7def666825dc25f332f081c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.1

Release history Release notifications | RSS feed

This release

2025.12.21155728 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page