![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Framework for human and AI (LLM) collaboration in system design using LLM-optimized templates.
LinguStruct is a structured system design framework optimized for usability and AI (LLM)-readability. It bridges the gap between requirement definitions and skeleton code, enabling seamless collaboration between humans and AI. LinguStruct offers pre-defined templates for system documentation, streamlining system development, documentation, and management processes with templates optimized for Large Language Models (LLMs).
Ensure you have Python 3.6 or higher installed.
pip install lingustruct
git clone https://github.com/lilseedabe/lingustruct.git
cd lingustruct
pip install -e .
For paid users, you need to set your API key. You can do this by creating a .env
file in your project's root directory or by setting environment variables directly in your application.
# .env file example for paid users
LINGUSTRUCT_LICENSE_KEY=your-paid-api-key
LinguStruct supports both free and paid users. Below is how you can interact with the system for different scenarios.
Free users can access templates and generate content without an API key, but are limited to 5 requests per hour.
curl -X 'GET' \
'https://lingustruct.onrender.com/lingu_struct/templates/m1' \
-H 'accept: application/json'
Free users can access any available template but are subject to rate limits. If the limit is exceeded, the system will return a 429 Too Many Requests
response.
Paid users can bypass rate limits using their API key, gaining unlimited access to templates and system features.
To obtain an API key, please contact the development team at osusume-co@lilseed.jp
. Once you have your API key, set it in your environment as shown below.
Include the LINGUSTRUCT_LICENSE_KEY
in the request headers to authenticate.
Example: Fetching Templates with an API Key
curl -X 'GET' \
'https://lingustruct.onrender.com/lingu_struct/templates/m1' \
-H 'accept: application/json' \
-H 'LINGUSTRUCT_LICENSE_KEY: your-paid-api-key'
Paid users can utilize the Auto Mapping feature to automatically map their data to the most suitable template, streamlining the documentation process.
Endpoint: /lingu_struct/auto_map
Method: POST
Headers:
Content-Type: application/json
LINGUSTRUCT_LICENSE_KEY: your-paid-api-key
Body:
{
"data": {
"Template Version": "1.0",
"Project Name": "Sample Project",
"Project Version": "1.0.1",
"Description": "A sample project description.",
"Scale": "m"
}
}
Example: Auto Mapping Request
curl -X 'POST' \
'https://lingustruct.onrender.com/lingu_struct/auto_map' \
-H 'accept: application/json' \
-H 'LINGUSTRUCT_LICENSE_KEY: your-paid-api-key' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"Template Version": "1.0",
"Project Name": "Sample Project",
"Project Version": "1.0.1",
"Description": "A sample project description.",
"Scale": "m"
}
}'
Response:
{
"template": "m1",
"mapped_data": {
"t_v": "1.0",
"p_n": "Sample Project",
"p_v": "1.0.1",
"desc": "A sample project description.",
"scale": "m"
}
}
Notes:
403 Forbidden
response.LinguStruct provides a variety of templates for structuring system documentation. These templates include:
master_template
overview_template
m1
, m2
, ..., m10
(and their _s
variations for smaller versions)Below is an example of fetching and using a template in Python.
import os
import requests
from dotenv import load_dotenv
# Load environment variables (such as the API key)
load_dotenv()
LINGUSTRUCT_LICENSE_KEY = os.getenv("LINGUSTRUCT_LICENSE_KEY")
# Fetch the template with API key (for paid users)
headers = {"LINGUSTRUCT_LICENSE_KEY": LINGUSTRUCT_LICENSE_KEY}
response = requests.get(
'https://lingustruct.onrender.com/lingu_struct/templates/master_template',
headers=headers
)
if response.status_code == 200:
template = response.json()
# Modify the template as needed
template['p_n'] = 'Updated Project Name'
print(template)
else:
print(f"Error fetching template: {response.json()}")
Endpoint: /lingu_struct/generate_master
Method: POST
Headers:
Content-Type: application/json
LINGUSTRUCT_LICENSE_KEY: your-api-key
(Paid Users Only)Body:
{
"project_id": "test_project",
"version": "1.0"
}
Response:
{
"message": "master.json generated successfully."
}
Endpoint: /lingu_struct/generate_overview
Method: POST
Headers:
Content-Type: application/json
LINGUSTRUCT_LICENSE_KEY: your-api-key
(Paid Users Only)Body:
{
"meta_description": "Meta description",
"arch_description": "Architecture description",
"dep_res_description": "Dependency resolution description",
"err_handling_description": "Error handling description",
"prio_description": "Priority description",
"abbr_description": "Abbreviation description",
"map_description": "Mappings description",
"p_order_description": "Property order description",
"version_description": "Version description",
"tech_description": "Technology description"
}
Response:
{
"message": "overview.json generated successfully."
}
Endpoint: /lingu_struct/modules/{module_id}
Method: GET
Headers:
Content-Type: application/json
LINGUSTRUCT_LICENSE_KEY: your-api-key
(Paid Users Only)Response:
{
"module_id": 1,
"data": {
"module_data": "..."
}
}
Endpoint: /lingu_struct/convert
Method: POST
Headers:
Content-Type: application/json
LINGUSTRUCT_LICENSE_KEY: your-api-key
(Paid Users Only)Body:
{
"module_id": 1,
"source_format": "lingu_struct",
"target_format": "human_readable",
"data": null
}
Response:
{
"human_readable": "Converted data..."
}
Endpoint: /lingu_struct/convert_to_pdf
Method: POST
Headers:
Content-Type: application/json
LINGUSTRUCT_LICENSE_KEY: your-api-key
(Paid Users Only)Body:
{
"module_id": 1
}
Response:
Endpoint: /lingu_struct/templates/{template_name}
Method: GET
Headers:
Content-Type: application/json
LINGUSTRUCT_LICENSE_KEY: your-api-key
(Paid Users Only)Response:
{
"name": "Sample Template",
"description": "This is a test template."
}
Endpoint: /lingu_struct/auto_map
Method: POST
Headers:
Content-Type: application/json
LINGUSTRUCT_LICENSE_KEY: your-paid-api-key
(Paid Users Only)Body:
{
"data": {
"Template Version": "1.0",
"Project Name": "Sample Project",
"Project Version": "1.0.1",
"Description": "A sample project description.",
"Scale": "m"
}
}
Response:
{
"template": "m1",
"mapped_data": {
"t_v": "1.0",
"p_n": "Sample Project",
"p_v": "1.0.1",
"desc": "A sample project description.",
"scale": "m"
}
}
Error Responses:
403 Forbidden: If a free user attempts to access the Auto Mapping feature.
{
"detail": "This feature is available to paid users only."
}
400 Bad Request: If the provided data does not match any available templates.
{
"detail": "No suitable template found."
}
500 Internal Server Error: For unexpected errors during the auto-mapping process.
{
"detail": "Unexpected error during auto mapping: error details"
}
To ensure fair usage and prevent abuse, LinguStruct implements rate limiting as follows:
LINGUSTRUCT_LICENSE_KEY
in request headers.Note: Exceeding the rate limit will result in a 429 Too Many Requests
response.
{
"detail": "Rate limit exceeded. Try again later."
}
Below are the abbreviations used in templates for concise documentation:
Abbreviation | Meaning | Description |
---|---|---|
t_v | Template Version | Version of the template used |
p_n | Project Name | Name of the project |
p_v | Project Version | Version of the project |
desc | Description | Brief description of the project |
scale | Scale | Scale of the project (e.g., small, medium) |
st | Style | Design style |
c_n | Component Name | Name of the component |
c_t | Component Type | Type of the component |
c_p | Component Path | Path of the component |
c_dep | Component Dependencies | Dependencies of the component |
dep_res | Dependency Resolution | How dependencies are resolved |
err_handling | Error Handling | Approach to error handling |
prio | Priority | Priority level |
map | Mappings | Key-value mappings |
p_order | Property Order | Order of properties |
v | Version | Version information |
l | Languages | Programming languages used |
f | Frameworks | Frameworks used |
t | Tools | Tools used |
a | Authentication | Authentication details |
az | Authorization | Authorization details |
m | Microservices | Microservices architecture |
p | Performance | Performance considerations |
ar | Architecture | System architecture overview |
svc | Service | Services or modules provided |
sec | Security | Security measures |
This package is provided for personal and academic use only. For commercial use, a license agreement is required.
Terms of Use:
osusume-co@lilseed.jp
for inquiries.For inquiries, support, or licensing questions, contact the development team at osusume-co@lilseed.jp
. You can also report issues on the GitHub Issues page.
Developed by Yasunori Abe. For inquiries, contact osusume-co@lilseed.jp
.
Free users can access LinguStruct without an API key but are limited to 5 requests per hour.
Example: Fetching a Template as a Free User
curl -X 'GET' \
'https://lingustruct.onrender.com/lingu_struct/templates/m1' \
-H 'accept: application/json'
Paid users can access LinguStruct with an API key, granting unlimited access.
Step 1: Obtain an API Key
To obtain an API key, please contact the development team at osusume-co@lilseed.jp
.
Step 2: Use the API Key in Requests
Include the LINGUSTRUCT_LICENSE_KEY
header in your requests.
Example: Generating a Master Template as a Paid User
curl -X 'POST' \
'https://lingustruct.onrender.com/lingu_struct/generate_master' \
-H 'accept: application/json' \
-H 'LINGUSTRUCT_LICENSE_KEY: your-paid-api-key' \
-H 'Content-Type: application/json' \
-d '{
"project_id": "test_project",
"version": "1.0"
}'
Example: Using Auto Mapping as a Paid User
curl -X 'POST' \
'https://lingustruct.onrender.com/lingu_struct/auto_map' \
-H 'accept: application/json' \
-H 'LINGUSTRUCT_LICENSE_KEY: your-paid-api-key' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"Template Version": "1.0",
"Project Name": "Sample Project",
"Project Version": "1.0.1",
"Description": "A sample project description.",
"Scale": "m"
}
}'
Response:
{
"template": "m1",
"mapped_data": {
"t_v": "1.0",
"p_n": "Sample Project",
"p_v": "1.0.1",
"desc": "A sample project description.",
"scale": "m"
}
}
To run the LinguStruct server locally (for development purposes), ensure that all dependencies are installed and environment variables are set appropriately.
Start the Server Using Uvicorn
uvicorn api.main:app --reload
Note: The --reload
flag is useful for development purposes. For production, consider using a more robust server configuration.
LinguStruct includes a suite of tests to ensure functionality.
Ensure you have pytest
installed:
pip install pytest
Run the tests using the following command:
pytest
LINGUSTRUCT_LICENSE_KEY
) are kept confidential. Do not expose them in client-side code or public repositories.The authors are not responsible for any misuse or unintended consequences of using this framework. Users must adhere to applicable laws and regulations.
For inquiries, support, or licensing questions, contact the development team at osusume-co@lilseed.jp
.
FAQs
Framework for human and AI (LLM) collaboration in system design using LLM-optimized templates.
We found that lingustruct demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.