A new package that transforms unstructured text queries into highly structured, search-optimized outputs. The package takes a user's text input, such as a search query or a description of information
Project description
structquery
structquery is a lightweight Python package that converts unstructured text queries into highly structured, search‑optimized outputs. By leveraging the llmatch‑messages utility and a default LLM7 model, the package extracts key elements from user input (e.g., location, difficulty, length) and returns them in a format that is ready for downstream search engines or information‑retrieval pipelines.
✨ Features
- One‑line transformation from free‑form text to a list of structured fields.
- Built‑in LLM7 support (
ChatLLM7fromlangchain_llm7) with automatic API‑key handling. - Pluggable LLMs – you can swap in any LangChain‑compatible chat model (OpenAI, Anthropic, Google, etc.).
- Regex‑driven output validation via
llmatchto guarantee format correctness. - Zero‑config defaults – works out‑of‑the‑box for common use‑cases.
📦 Installation
pip install structquery
🚀 Quick Start
from structquery import structquery
# Simple call – uses the default ChatLLM7 model
response = structquery(
user_input="best hiking trails in Colorado"
)
print(response) # → List of extracted structured strings
Parameters
| Name | Type | Description |
|---|---|---|
user_input |
str |
The raw user query or description you want to structure. |
llm |
Optional[BaseChatModel] |
Your own LangChain chat model. If omitted, the package creates a ChatLLM7 instance automatically. |
api_key |
Optional[str] |
LLM7 API key. If omitted, the package reads LLM7_API_KEY from the environment; otherwise it falls back to the placeholder "None" (which triggers an error from the LLM service). |
🔧 Using a Custom LLM
You can provide any LangChain‑compatible chat model that inherits from BaseChatModel. Below are examples for the most popular providers.
OpenAI
from langchain_openai import ChatOpenAI
from structquery import structquery
llm = ChatOpenAI(model="gpt-4o-mini")
response = structquery(
user_input="latest smartphones under $500",
llm=llm
)
Anthropic
from langchain_anthropic import ChatAnthropic
from structquery import structquery
llm = ChatAnthropic(model_name="claude-3-haiku-20240307")
response = structquery(
user_input="affordable vegan meal plan",
llm=llm
)
Google Generative AI
from langchain_google_genai import ChatGoogleGenerativeAI
from structquery import structquery
llm = ChatGoogleGenerativeAI(model="gemini-1.5-flash")
response = structquery(
user_input="top-rated bike touring routes in Europe",
llm=llm
)
🔑 LLM7 API Key
- The free tier of LLM7 supplies generous rate limits that satisfy most experimentation and production needs.
- To obtain a free API key, register at https://token.llm7.io/.
- You can provide the key in three ways:
- Environment variable:
export LLM7_API_KEY=your_key - Direct argument:
structquery(user_input, api_key="your_key") - Pass a pre‑configured
ChatLLM7instance via thellmargument.
- Environment variable:
🐞 Issues & Contributions
- Bug reports / feature requests: https://github.com/chigwell/structquery/issues
- Contributions are welcome! Fork the repository, make your changes, and submit a pull request.
📝 License
Distributed under the MIT License. See the LICENSE file for details.
📧 Contact
Eugene Evstafev – hi@euegne.plus
GitHub: https://github.com/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 structquery-2025.12.21164456.tar.gz.
File metadata
- Download URL: structquery-2025.12.21164456.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9242017715f27813c7cd393bed3738ac1aea2dc36965d5b2e90a944db00103e
|
|
| MD5 |
ac261021d56d373436e83de639a4d41c
|
|
| BLAKE2b-256 |
ea051000a3d151802b712ac8d110bc60b80cd112b25389e7ebd376c561b6af10
|
File details
Details for the file structquery-2025.12.21164456-py3-none-any.whl.
File metadata
- Download URL: structquery-2025.12.21164456-py3-none-any.whl
- Upload date:
- Size: 5.2 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 |
6264d0db5fb0e310757d4950f97f3a2c3c9e96290271a4f7f3def5be35f493e3
|
|
| MD5 |
8eedeeac921f498084bd857a6d76409b
|
|
| BLAKE2b-256 |
31a9d41e6942297f0c49c9593f1a3ac21c7090bde372e6f52e08dc692eb26e3e
|