A new package designed to streamline and automate the correction of imperfect OpenAPI specifications by analyzing user-provided textual descriptions and extracting structured insights. It processes te
Project description
Open Spec Correct
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_KEYenvironment 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_KEYfrom 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file open_spec_correct-2025.12.21155728.tar.gz.
File metadata
- Download URL: open_spec_correct-2025.12.21155728.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbef5e016d21a2e481b93be2a8548709f20e853cf02e7926eeee7c860b5b69a4
|
|
| MD5 |
ebb5a14844f543f6208910ee4b211325
|
|
| BLAKE2b-256 |
c39ac21a9461a22cdca5bf21f55b3fa6dd93d77718cd52935015fd5a051fce41
|
File details
Details for the file open_spec_correct-2025.12.21155728-py3-none-any.whl.
File metadata
- Download URL: open_spec_correct-2025.12.21155728-py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ddc323349f5f4dda4ffd89ce7413bf69608daa62d9de79e41dc3ed6e47664f3
|
|
| MD5 |
e7d2ab2e7d420cdae2b79bbf8e6e878d
|
|
| BLAKE2b-256 |
866ef24bcecbbda05f5d2afe2faf7f7032771f2fb7def666825dc25f332f081c
|