{"id":30766885,"url":"https://github.com/bazaarvoice/qtype","last_synced_at":"2026-02-04T23:01:55.963Z","repository":{"id":306973231,"uuid":"1016762003","full_name":"bazaarvoice/qtype","owner":"bazaarvoice","description":"From AI Idea to Prototype, Instantly","archived":false,"fork":false,"pushed_at":"2025-10-18T00:20:08.000Z","size":4940,"stargazers_count":0,"open_issues_count":6,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-18T14:45:15.665Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bazaarvoice.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-09T13:39:04.000Z","updated_at":"2025-10-18T00:20:12.000Z","dependencies_parsed_at":"2025-08-14T15:15:43.300Z","dependency_job_id":"262219df-c3b3-4a81-829b-aa70df92f4da","html_url":"https://github.com/bazaarvoice/qtype","commit_stats":null,"previous_names":["bazaarvoice/qtype"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/bazaarvoice/qtype","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazaarvoice%2Fqtype","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazaarvoice%2Fqtype/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazaarvoice%2Fqtype/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazaarvoice%2Fqtype/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bazaarvoice","download_url":"https://codeload.github.com/bazaarvoice/qtype/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazaarvoice%2Fqtype/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280012795,"owners_count":26258528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-20T02:00:06.978Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-04T19:57:04.567Z","updated_at":"2026-02-04T23:01:55.958Z","avatar_url":"https://github.com/bazaarvoice.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QType\n\n**QType is a domain-specific language (DSL) for rapid prototyping of AI applications.**  \nIt is designed to help developers define modular, composable AI systems using a structured YAML-based specification. QType supports models, prompts, tools, retrievers, and flow orchestration, and is extensible for code generation or live interpretation.\n\n---\n\n## 🚀 Quick Start\n\nInstall QType:\n\n```bash\npip install qtype[interpreter]\n```\n\nCreate a file `hello_world.qtype.yaml` that answers a question:\n```yaml\nid: hello_world\nflows:\n  - id: chat_example\n    description: A simple chat flow with OpenAI\n    mode: Chat\n    steps:\n      - id: llm_inference_step\n        model: \n          id: gpt-4\n          provider: openai\n          auth: \n            id: openai_auth\n            type: api_key\n            api_key: ${OPENAI_KEY}\n        system_message: |\n          You are a helpful assistant.\n        inputs:\n          - id: user_message\n            type: ChatMessage\n        outputs:\n          - id: response\n            type: ChatMessage\n```\n\nPut your openai api key into your `.env` file:\n```\necho \"OPENAI_KEY=sk....\" \u003e\u003e .env\n```\n\nValidate it's semantic correctness:\n\n```bash\nqtype validate hello_world.qtype.yaml \n```\n\nYou should see:\n\n```\nINFO: ✅ Schema validation successful.\nINFO: ✅ Model validation successful.\nINFO: ✅ Language validation successful\nINFO: ✅ Semantic validation successful\n```\n\nLaunch the interpreter:\n\n```bash\nqtype serve hello_world.qtype.yaml`\n```\n\n\nAnd go to [http://localhost:8000/ui](http://localhost:8000/ui) to see the user interface for your application:\n\n![Example UI](docs/example_ui.png)\n\n\n---\n\nSee the [full docs](https://bazaarvoice.github.io/qtype/) for more examples and guides.\n\n## ✨ Developing with AI?\n\nUse the QType MCP server to speed yourself up! Just set your assistant to run `qtype mcp`.\nFor VSCode, just add the following to `.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"qtype\": {\n      \"type\": \"stdio\",\n      \"command\": \"qtype\",\n      \"cwd\": \"${workspaceFolder}\",\n      \"args\": [\"mcp\", \"--transport\", \"stdio\"]\n    }\n  }\n}\n```\n\n\n## 🤝 Contributing\n\nContributions welcome! Please follow the instructions in the [contribution guide](https://bazaarvoice.github.io/qtype/contributing/).\n\n## 📄 License\n\nThis project is licensed under the **MIT License**.  \nSee the [LICENSE](./LICENSE) file for details.\n\n---\n\n## 🧠 Philosophy\n\nQType is built around modularity, traceability, and rapid iteration. It aims to empower developers to quickly scaffold ideas into usable AI applications without sacrificing maintainability or control.\n\nStay tuned for upcoming features like:\n- Integrated OpenTelemetry tracing\n- Validation via LLM-as-a-judge\n- UI hinting via input display types\n- Flow state switching and conditional routing\n\n---\n\nHappy hacking with QType! 🛠️\n\n\n[![Generate JSON Schema](https://github.com/bazaarvoice/qtype/actions/workflows/github_workflows_generate-schema.yml/badge.svg)](https://github.com/bazaarvoice/qtype/actions/workflows/github_workflows_generate-schema.yml) [![Publish to PyPI](https://github.com/bazaarvoice/qtype/actions/workflows/publish-pypi.yml/badge.svg)](https://github.com/bazaarvoice/qtype/actions/workflows/publish-pypi.yml)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbazaarvoice%2Fqtype","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbazaarvoice%2Fqtype","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbazaarvoice%2Fqtype/lists"}