# LLM-Assisted Generation Use a language model to produce a richer schema from an open-ended story, useful for complex or unusual domains where the rule-based parser falls short. ```bash pip install "misata[llm]" ``` ## Supported providers | Provider | Env var | Notes | |:--|:--|:--| | `groq` | `GROQ_API_KEY` | Fast, free tier available | | `openai` | `OPENAI_API_KEY` | GPT-4o / GPT-4-turbo | | `anthropic` | `ANTHROPIC_API_KEY` | Claude Sonnet / Opus | | `gemini` | `GOOGLE_API_KEY` | Gemini Pro via OpenAI-compat endpoint | | `ollama` |: | Fully local, no API key | ## Usage ```python from misata import LLMSchemaGenerator gen = LLMSchemaGenerator(provider="groq") # gen = LLMSchemaGenerator(provider="anthropic") # gen = LLMSchemaGenerator(provider="ollama", model="llama3") schema = gen.generate_from_story( "A fraud detection dataset — 2% positive rate, FICO scores, " "transaction velocity features, device fingerprints" ) import misata tables = misata.generate_from_schema(schema) ``` ## When to use it - Your domain is niche and the story parser returns a generic schema - You need column-level semantics that require world knowledge (e.g. realistic medical codes) - You want to iterate on schema design in natural language before committing to YAML !!! tip "LLM → YAML → version control" Generate once with the LLM, save the schema to YAML, then commit it so future runs are deterministic and free. ```python schema = gen.generate_from_story("A logistics company …") misata.save_yaml_schema(schema, "logistics.yaml") ```