qtype 0.1.12__py3-none-any.whl → 0.1.13__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- qtype/` +0 -0
- qtype/application/__init__.py +0 -2
- qtype/application/converters/tools_from_api.py +28 -22
- qtype/application/converters/tools_from_module.py +66 -32
- qtype/commands/generate.py +90 -7
- qtype/commands/run.py +116 -44
- qtype/docs/.pages +8 -0
- {docs → qtype/docs}/Concepts/mental-model-and-philosophy.md +1 -1
- qtype/docs/Contributing/.pages +4 -0
- {docs → qtype/docs}/Contributing/index.md +8 -1
- {docs → qtype/docs}/Gallery/dataflow_pipelines.md +3 -2
- {docs → qtype/docs}/Gallery/research_assistant.md +3 -4
- {docs → qtype/docs}/Gallery/simple_chatbot.md +3 -1
- {docs → qtype/docs}/How To/Authentication/configure_aws_authentication.md +2 -2
- {docs → qtype/docs}/How To/Authentication/use_api_key_authentication.md +2 -2
- {docs → qtype/docs}/How To/Command Line Usage/load_multiple_inputs_from_files.md +24 -9
- {docs → qtype/docs}/How To/Command Line Usage/pass_inputs_on_the_cli.md +3 -3
- {docs → qtype/docs}/How To/Command Line Usage/serve_with_auto_reload.md +3 -2
- {docs → qtype/docs}/How To/Data Processing/adjust_concurrency.md +3 -4
- {docs → qtype/docs}/How To/Data Processing/cache_step_results.md +2 -2
- {docs → qtype/docs}/How To/Data Processing/decode_json_xml.md +1 -1
- {docs → qtype/docs}/How To/Data Processing/explode_collections.md +2 -2
- {docs → qtype/docs}/How To/Data Processing/gather_results.md +4 -4
- qtype/docs/How To/Data Processing/invoke_other_flows.md +71 -0
- qtype/docs/How To/Data Processing/load_data_from_athena.md +49 -0
- qtype/docs/How To/Data Processing/read_data_from_files.md +61 -0
- {docs → qtype/docs}/How To/Data Processing/read_sql_databases.md +2 -3
- {docs → qtype/docs}/How To/Data Processing/write_data_to_file.md +1 -2
- {docs → qtype/docs}/How To/Invoke Models/call_large_language_models.md +1 -1
- {docs → qtype/docs}/How To/Invoke Models/create_embeddings.md +1 -1
- {docs → qtype/docs}/How To/Invoke Models/reuse_prompts_with_templates.md +2 -3
- {docs → qtype/docs}/How To/Language Features/include_raw_text_from_other_files.md +2 -1
- {docs → qtype/docs}/How To/Language Features/reference_entities_by_id.md +2 -2
- qtype/docs/How To/Language Features/use_agent_skills.md +29 -0
- {docs → qtype/docs}/How To/Language Features/use_environment_variables.md +2 -1
- qtype/docs/How To/Language Features/use_optional_variables.md +42 -0
- {docs → qtype/docs}/How To/Language Features/use_qtype_mcp.md +4 -4
- {docs → qtype/docs}/How To/Observability & Debugging/trace_calls_with_open_telemetry.md +1 -1
- {docs → qtype/docs}/How To/Observability & Debugging/validate_qtype_yaml.md +3 -2
- {docs → qtype/docs}/How To/Observability & Debugging/visualize_application_architecture.md +1 -1
- {docs → qtype/docs}/How To/Qtype Server/serve_flows_as_apis.md +3 -3
- {docs → qtype/docs}/How To/Qtype Server/serve_flows_as_ui.md +2 -3
- {docs → qtype/docs}/How To/Qtype Server/use_conversational_interfaces.md +1 -4
- {docs → qtype/docs}/How To/Qtype Server/use_variables_with_ui_hints.md +3 -2
- {docs → qtype/docs}/How To/Tools & Integration/bind_tool_inputs_and_outputs.md +1 -2
- {docs → qtype/docs}/How To/Tools & Integration/create_tools_from_openapi_specifications.md +10 -14
- {docs → qtype/docs}/How To/Tools & Integration/create_tools_from_python_modules.md +5 -8
- {docs → qtype/docs}/Reference/cli.md +13 -15
- {docs → qtype/docs}/Reference/plugins.md +4 -0
- {docs → qtype/docs}/Reference/semantic-validation-rules.md +6 -1
- qtype/docs/Tutorials/.pages +1 -0
- {docs → qtype/docs}/Tutorials/01-first-qtype-application.md +3 -2
- {docs → qtype/docs}/Tutorials/02-conversational-chatbot.md +3 -3
- {docs → qtype/docs}/Tutorials/03-structured-data.md +9 -10
- {docs → qtype/docs}/Tutorials/04-tools-and-function-calling.md +12 -19
- {docs → qtype/docs}/components/APITool.md +1 -1
- qtype/docs/components/Aggregate.md +7 -0
- qtype/docs/components/Collect.md +6 -0
- qtype/docs/components/Construct.md +6 -0
- {docs → qtype/docs}/components/DocumentEmbedder.md +0 -1
- {docs → qtype/docs}/components/DocumentSplitter.md +0 -1
- qtype/docs/components/Explode.md +5 -0
- {docs → qtype/docs}/components/FieldExtractor.md +2 -1
- qtype/docs/components/InvokeFlow.md +8 -0
- qtype/docs/components/InvokeTool.md +8 -0
- {docs → qtype/docs}/components/PrimitiveTypeEnum.md +0 -1
- {docs → qtype/docs}/components/Source.md +0 -1
- {docs → qtype/docs}/components/Step.md +0 -1
- {docs → qtype/docs}/components/Tool.md +2 -2
- {docs → qtype/docs}/components/Variable.md +2 -0
- qtype/docs/legacy_how_tos/.pages +6 -0
- qtype/docs/skills/architect/SKILL.md +188 -0
- qtype/docs/skills/architect/references/cheatsheet.md +198 -0
- qtype/docs/skills/architect/references/patterns.md +29 -0
- qtype/docs/stylesheets/extra.css +27 -0
- qtype/dsl/linker.py +8 -0
- qtype/dsl/model.py +177 -84
- qtype/examples/data_processing/athena_query.qtype.yaml +56 -0
- qtype/examples/data_processing/batch_inputs.csv +5 -0
- qtype/examples/data_processing/create_sample_db.py +129 -0
- qtype/examples/data_processing/invoke_other_flows.qtype.yaml +98 -0
- qtype/examples/data_processing/reviews.db +0 -0
- qtype/examples/data_processing/sample_article.txt +1 -0
- qtype/examples/data_processing/sample_documents.jsonl +5 -0
- qtype/examples/language_features/optional_variables.qtype.yaml +32 -0
- qtype/examples/language_features/story_prompt.txt +6 -0
- qtype/examples/legacy/data/customers.csv +6 -0
- qtype/examples/legacy/echo/readme.md +29 -0
- qtype/examples/legacy/qtype_plugin_example.py +51 -0
- qtype/examples/legacy/sample_data.txt +43 -0
- qtype/examples/legacy/vertex/README.md +11 -0
- qtype/examples/research_assistant/tavily.qtype.yaml +216 -0
- {examples → qtype/examples}/tutorials/03_structured_data.qtype.yaml +2 -2
- {examples → qtype/examples}/tutorials/04_tools_and_function_calling.qtype.yaml +5 -5
- qtype/interpreter/base/stream_emitter.py +19 -13
- qtype/interpreter/converters.py +142 -26
- qtype/interpreter/executors/agent_executor.py +2 -3
- qtype/interpreter/executors/aggregate_executor.py +3 -4
- qtype/interpreter/executors/construct_executor.py +15 -15
- qtype/interpreter/executors/doc_to_text_executor.py +1 -3
- qtype/interpreter/executors/field_extractor_executor.py +13 -12
- qtype/interpreter/executors/file_source_executor.py +18 -31
- qtype/interpreter/executors/invoke_embedding_executor.py +1 -4
- qtype/interpreter/executors/invoke_flow_executor.py +2 -2
- qtype/interpreter/executors/invoke_tool_executor.py +19 -18
- qtype/interpreter/executors/llm_inference_executor.py +16 -18
- qtype/interpreter/executors/prompt_template_executor.py +1 -3
- qtype/interpreter/tools/function_tool_helper.py +11 -10
- qtype/interpreter/types.py +89 -4
- qtype/interpreter/typing.py +31 -32
- qtype/mcp/server.py +312 -57
- {schema → qtype/schema}/qtype.schema.json +77 -79
- qtype/semantic/checker.py +19 -0
- qtype/semantic/generate.py +3 -6
- qtype/semantic/model.py +26 -33
- qtype/semantic/resolver.py +7 -0
- qtype/semantic/visualize.py +8 -3
- {qtype-0.1.12.dist-info → qtype-0.1.13.dist-info}/METADATA +47 -46
- qtype-0.1.13.dist-info/RECORD +352 -0
- {qtype-0.1.12.dist-info → qtype-0.1.13.dist-info}/WHEEL +1 -2
- docs/How To/Data Processing/read_data_from_files.md +0 -35
- docs/components/Aggregate.md +0 -8
- docs/components/InvokeFlow.md +0 -8
- docs/components/InvokeTool.md +0 -8
- docs/components/ToolParameter.md +0 -6
- examples/research_assistant/tavily.qtype.yaml +0 -289
- qtype/application/facade.py +0 -177
- qtype-0.1.12.dist-info/RECORD +0 -325
- qtype-0.1.12.dist-info/top_level.txt +0 -1
- {docs → qtype/docs}/Contributing/roadmap.md +0 -0
- {docs → qtype/docs}/Decisions/ADR-001-Chat-vs-Completion-Endpoint-Features.md +0 -0
- {docs → qtype/docs}/Gallery/dataflow_pipelines.mermaid +0 -0
- {docs → qtype/docs}/Gallery/research_assistant.mermaid +0 -0
- {docs → qtype/docs}/Gallery/simple_chatbot.mermaid +0 -0
- {docs → qtype/docs}/How To/Language Features/include_qtype_yaml.md +0 -0
- {docs → qtype/docs}/How To/Observability & Debugging/visualize_example.mermaid +0 -0
- {docs → qtype/docs}/How To/Qtype Server/flow_as_ui.png +0 -0
- {docs → qtype/docs}/Tutorials/example_chat.png +0 -0
- {docs → qtype/docs}/Tutorials/index.md +0 -0
- {docs → qtype/docs}/components/APIKeyAuthProvider.md +0 -0
- {docs → qtype/docs}/components/AWSAuthProvider.md +0 -0
- {docs → qtype/docs}/components/AWSSecretManager.md +0 -0
- {docs → qtype/docs}/components/Agent.md +0 -0
- {docs → qtype/docs}/components/AggregateStats.md +0 -0
- {docs → qtype/docs}/components/Application.md +0 -0
- {docs → qtype/docs}/components/AuthorizationProvider.md +0 -0
- {docs → qtype/docs}/components/AuthorizationProviderList.md +0 -0
- {docs → qtype/docs}/components/BearerTokenAuthProvider.md +0 -0
- {docs → qtype/docs}/components/BedrockReranker.md +0 -0
- {docs → qtype/docs}/components/ChatContent.md +0 -0
- {docs → qtype/docs}/components/ChatMessage.md +0 -0
- {docs → qtype/docs}/components/ConstantPath.md +0 -0
- {docs → qtype/docs}/components/CustomType.md +0 -0
- {docs → qtype/docs}/components/Decoder.md +0 -0
- {docs → qtype/docs}/components/DecoderFormat.md +0 -0
- {docs → qtype/docs}/components/DocToTextConverter.md +0 -0
- {docs → qtype/docs}/components/Document.md +0 -0
- {docs → qtype/docs}/components/DocumentIndex.md +0 -0
- {docs → qtype/docs}/components/DocumentSearch.md +0 -0
- {docs → qtype/docs}/components/DocumentSource.md +0 -0
- {docs → qtype/docs}/components/Echo.md +0 -0
- {docs → qtype/docs}/components/Embedding.md +0 -0
- {docs → qtype/docs}/components/EmbeddingModel.md +0 -0
- {docs → qtype/docs}/components/FileSource.md +0 -0
- {docs → qtype/docs}/components/FileWriter.md +0 -0
- {docs → qtype/docs}/components/Flow.md +0 -0
- {docs → qtype/docs}/components/FlowInterface.md +0 -0
- {docs → qtype/docs}/components/Index.md +0 -0
- {docs → qtype/docs}/components/IndexUpsert.md +0 -0
- {docs → qtype/docs}/components/InvokeEmbedding.md +0 -0
- {docs → qtype/docs}/components/LLMInference.md +0 -0
- {docs → qtype/docs}/components/ListType.md +0 -0
- {docs → qtype/docs}/components/Memory.md +0 -0
- {docs → qtype/docs}/components/MessageRole.md +0 -0
- {docs → qtype/docs}/components/Model.md +0 -0
- {docs → qtype/docs}/components/ModelList.md +0 -0
- {docs → qtype/docs}/components/OAuth2AuthProvider.md +0 -0
- {docs → qtype/docs}/components/PromptTemplate.md +0 -0
- {docs → qtype/docs}/components/PythonFunctionTool.md +0 -0
- {docs → qtype/docs}/components/RAGChunk.md +0 -0
- {docs → qtype/docs}/components/RAGDocument.md +0 -0
- {docs → qtype/docs}/components/RAGSearchResult.md +0 -0
- {docs → qtype/docs}/components/Reranker.md +0 -0
- {docs → qtype/docs}/components/SQLSource.md +0 -0
- {docs → qtype/docs}/components/Search.md +0 -0
- {docs → qtype/docs}/components/SearchResult.md +0 -0
- {docs → qtype/docs}/components/SecretManager.md +0 -0
- {docs → qtype/docs}/components/SecretReference.md +0 -0
- {docs → qtype/docs}/components/TelemetrySink.md +0 -0
- {docs → qtype/docs}/components/ToolList.md +0 -0
- {docs → qtype/docs}/components/TypeList.md +0 -0
- {docs → qtype/docs}/components/VariableList.md +0 -0
- {docs → qtype/docs}/components/VectorIndex.md +0 -0
- {docs → qtype/docs}/components/VectorSearch.md +0 -0
- {docs → qtype/docs}/components/VertexAuthProvider.md +0 -0
- {docs → qtype/docs}/components/Writer.md +0 -0
- {docs → qtype/docs}/example_ui.png +0 -0
- {docs → qtype/docs}/index.md +0 -0
- {docs → qtype/docs}/legacy_how_tos/Configuration/modular-yaml.md +0 -0
- {docs → qtype/docs}/legacy_how_tos/Configuration/phoenix_projects.png +0 -0
- {docs → qtype/docs}/legacy_how_tos/Configuration/phoenix_traces.png +0 -0
- {docs → qtype/docs}/legacy_how_tos/Configuration/reference-by-id.md +0 -0
- {docs → qtype/docs}/legacy_how_tos/Configuration/telemetry-setup.md +0 -0
- {docs → qtype/docs}/legacy_how_tos/Data Types/custom-types.md +0 -0
- {docs → qtype/docs}/legacy_how_tos/Data Types/domain-types.md +0 -0
- {docs → qtype/docs}/legacy_how_tos/Debugging/visualize-apps.md +0 -0
- {docs → qtype/docs}/legacy_how_tos/Tools/api-tools.md +0 -0
- {docs → qtype/docs}/legacy_how_tos/Tools/python-tools.md +0 -0
- {examples → qtype/examples}/authentication/aws_authentication.qtype.yaml +0 -0
- {examples → qtype/examples}/conversational_ai/hello_world_chat.qtype.yaml +0 -0
- {examples → qtype/examples}/conversational_ai/simple_chatbot.qtype.yaml +0 -0
- {examples → qtype/examples}/data_processing/batch_processing.qtype.yaml +0 -0
- {examples → qtype/examples}/data_processing/cache_step_results.qtype.yaml +0 -0
- {examples → qtype/examples}/data_processing/collect_results.qtype.yaml +0 -0
- {examples → qtype/examples}/data_processing/dataflow_pipelines.qtype.yaml +0 -0
- {examples → qtype/examples}/data_processing/decode_json.qtype.yaml +0 -0
- {examples → qtype/examples}/data_processing/explode_items.qtype.yaml +0 -0
- {examples → qtype/examples}/data_processing/read_file.qtype.yaml +0 -0
- {examples → qtype/examples}/invoke_models/create_embeddings.qtype.yaml +0 -0
- {examples → qtype/examples}/invoke_models/simple_llm_call.qtype.yaml +0 -0
- {examples → qtype/examples}/language_features/include_raw.qtype.yaml +0 -0
- {examples → qtype/examples}/language_features/ui_hints.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/bedrock/data_analysis_with_telemetry.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/bedrock/hello_world.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/bedrock/hello_world_chat.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/bedrock/hello_world_chat_with_telemetry.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/bedrock/hello_world_chat_with_thinking.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/bedrock/hello_world_completion.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/bedrock/hello_world_completion_with_auth.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/bedrock/simple_agent_chat.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/chat_with_langfuse.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/data_processor.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/echo/debug_example.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/echo/prompt.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/echo/test.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/echo/video.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/field_extractor_example.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/multi_flow_example.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/openai/hello_world_chat.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/openai/hello_world_chat_with_telemetry.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/rag.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/time_utilities.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/vertex/hello_world_chat.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/vertex/hello_world_completion.qtype.yaml +0 -0
- {examples → qtype/examples}/legacy/vertex/hello_world_completion_with_auth.qtype.yaml +0 -0
- {examples → qtype/examples}/observability_debugging/trace_with_opentelemetry.qtype.yaml +0 -0
- {examples → qtype/examples}/research_assistant/research_assistant.qtype.yaml +0 -0
- {examples → qtype/examples}/research_assistant/tavily.oas.yaml +0 -0
- {examples → qtype/examples}/tutorials/01_hello_world.qtype.yaml +0 -0
- {examples → qtype/examples}/tutorials/02_conversational_chat.qtype.yaml +0 -0
- {qtype-0.1.12.dist-info → qtype-0.1.13.dist-info}/entry_points.txt +0 -0
- {qtype-0.1.12.dist-info → qtype-0.1.13.dist-info}/licenses/LICENSE +0 -0
|
@@ -34,6 +34,5 @@ steps:
|
|
|
34
34
|
## See Also
|
|
35
35
|
|
|
36
36
|
- [PromptTemplate Reference](../../components/PromptTemplate.md)
|
|
37
|
-
- [
|
|
38
|
-
- [
|
|
39
|
-
- [Tutorial: Your First QType Application](../../Tutorials/your_first_qtype_application.md)
|
|
37
|
+
- [Include Raw Text from Other Files](../Language%20Features/include_raw_text_from_other_files.md)
|
|
38
|
+
- [Call Large Language Models](call_large_language_models.md)
|
|
@@ -44,4 +44,5 @@ qtype run include_raw.qtype.yaml -i '{"theme":"a robot learning to paint","tone"
|
|
|
44
44
|
## See Also
|
|
45
45
|
|
|
46
46
|
- [PromptTemplate Reference](../../components/PromptTemplate.md)
|
|
47
|
-
- [
|
|
47
|
+
- [Include QType YAML](include_qtype_yaml.md)
|
|
48
|
+
- [Reuse Prompts with Templates](../Invoke%20Models/reuse_prompts_with_templates.md)
|
|
@@ -46,6 +46,6 @@ flows:
|
|
|
46
46
|
|
|
47
47
|
## See Also
|
|
48
48
|
|
|
49
|
+
- [Include QType YAML](include_qtype_yaml.md)
|
|
49
50
|
- [Tutorial: Your First QType Application](../../Tutorials/01-first-qtype-application.md)
|
|
50
|
-
- [
|
|
51
|
-
- [APIKeyAuthProvider Reference](../../components/APIKeyAuthProvider.md)
|
|
51
|
+
- [Application Reference](../../components/Application.md)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Use QType Agent Skills
|
|
2
|
+
|
|
3
|
+
Enhance GitHub Copilot or Claude Code with domain-specific QType expertise by loading pre-built agent skills that help you architect your vision faster.
|
|
4
|
+
|
|
5
|
+
**Requires:** Active `qtype-mcp` MCP server
|
|
6
|
+
|
|
7
|
+
### Generate Skills
|
|
8
|
+
|
|
9
|
+
Simply:
|
|
10
|
+
```
|
|
11
|
+
qtype generate skills
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
and the skills will be written `.claude` for you.
|
|
15
|
+
|
|
16
|
+
## Available QType Skills
|
|
17
|
+
|
|
18
|
+
### QType Architect
|
|
19
|
+
|
|
20
|
+
Expert assistant for designing and building AI applications using QType's declarative YAML language.
|
|
21
|
+
|
|
22
|
+
**Capabilities:**
|
|
23
|
+
- Designs flows from requirements to implementation
|
|
24
|
+
- Generates architecture visualizations in VSCode
|
|
25
|
+
|
|
26
|
+
## See Also
|
|
27
|
+
|
|
28
|
+
- [Use QType MCP](use_qtype_mcp.md)
|
|
29
|
+
- [Invoke Other Flows](../Data%20Processing/invoke_other_flows.md)
|
|
@@ -43,5 +43,6 @@ qtype run app.qtype.yaml
|
|
|
43
43
|
|
|
44
44
|
## See Also
|
|
45
45
|
|
|
46
|
+
- [Use API Key Authentication](../Authentication/use_api_key_authentication.md)
|
|
47
|
+
- [Configure AWS Authentication](../Authentication/configure_aws_authentication.md)
|
|
46
48
|
- [Tutorial: Your First QType Application](../../Tutorials/01-first-qtype-application.md)
|
|
47
|
-
- [APIKeyAuthProvider Reference](../../components/APIKeyAuthProvider.md)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Use Optional Variables
|
|
2
|
+
|
|
3
|
+
Mark variables as optional to handle cases where data may be missing or unset, allowing your flow to continue gracefully instead of failing.
|
|
4
|
+
|
|
5
|
+
### QType YAML
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
variables:
|
|
9
|
+
- id: email
|
|
10
|
+
type: text? # Optional text variable
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Explanation
|
|
14
|
+
|
|
15
|
+
- **`?` suffix**: Shorthand syntax to mark a variable as optional
|
|
16
|
+
- **Optional variables**: Can be `None` or set to a value
|
|
17
|
+
- **FieldExtractor**: Returns `None` for optional output variables when JSONPath finds no matches, instead of raising an error. If you make the variable non-optional, it will raise an error.
|
|
18
|
+
|
|
19
|
+
## Complete Example
|
|
20
|
+
|
|
21
|
+
```yaml
|
|
22
|
+
--8<-- "../examples/language_features/optional_variables.qtype.yaml"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Run it:**
|
|
26
|
+
```bash
|
|
27
|
+
# When email field exists
|
|
28
|
+
qtype run examples/language_features/optional_variables.qtype.yaml -i '{"user_profile": {"email":"hello@domain.com"}}'
|
|
29
|
+
# Results:
|
|
30
|
+
# email: hello@domain.com
|
|
31
|
+
|
|
32
|
+
# When email field is missing
|
|
33
|
+
qtype run examples/language_features/optional_variables.qtype.yaml -i '{"user_profile": "just text"}'
|
|
34
|
+
# Results:
|
|
35
|
+
# email: None
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## See Also
|
|
39
|
+
|
|
40
|
+
- [Variable Reference](../../components/Variable.md)
|
|
41
|
+
- [FieldExtractor Reference](../../components/FieldExtractor.md)
|
|
42
|
+
- [Tutorial: Structured Data](../../Tutorials/03-structured-data.md)
|
|
@@ -41,7 +41,7 @@ Add the QType MCP server to your workspace's `.vscode/mcp.json`:
|
|
|
41
41
|
```json
|
|
42
42
|
{
|
|
43
43
|
"servers": {
|
|
44
|
-
"qtype": {
|
|
44
|
+
"qtype-mcp": {
|
|
45
45
|
"type": "stdio",
|
|
46
46
|
"command": "qtype",
|
|
47
47
|
"cwd": "${workspaceFolder}",
|
|
@@ -54,6 +54,6 @@ Add the QType MCP server to your workspace's `.vscode/mcp.json`:
|
|
|
54
54
|
|
|
55
55
|
## See Also
|
|
56
56
|
|
|
57
|
-
- [
|
|
58
|
-
- [
|
|
59
|
-
- [
|
|
57
|
+
- [Use QType Agent Skills](use_agent_skills.md)
|
|
58
|
+
- [Validate QType YAML](../Observability%20%26%20Debugging/validate_qtype_yaml.md)
|
|
59
|
+
- [Visualize Application Architecture](../Observability%20%26%20Debugging/visualize_application_architecture.md)
|
|
@@ -46,4 +46,4 @@ Then open `http://localhost:6006` in your browser to see the traced execution.
|
|
|
46
46
|
|
|
47
47
|
- [Application Reference](../../components/Application.md)
|
|
48
48
|
- [Validate QType YAML](validate_qtype_yaml.md)
|
|
49
|
-
- [
|
|
49
|
+
- [CLI Reference](../../Reference/cli.md)
|
|
@@ -31,5 +31,6 @@ qtype validate path/to/app.qtype.yaml --print
|
|
|
31
31
|
|
|
32
32
|
## See Also
|
|
33
33
|
|
|
34
|
-
- [
|
|
35
|
-
- [Semantic Validation Rules](../../
|
|
34
|
+
- [CLI Reference](../../Reference/cli.md)
|
|
35
|
+
- [Semantic Validation Rules](../../Reference/semantic-validation-rules.md)
|
|
36
|
+
- [Visualize Application Architecture](visualize_application_architecture.md)
|
|
@@ -35,6 +35,6 @@ Each flow endpoint accepts JSON input matching the flow's input schema and retur
|
|
|
35
35
|
|
|
36
36
|
## See Also
|
|
37
37
|
|
|
38
|
-
- [
|
|
39
|
-
- [
|
|
40
|
-
- [
|
|
38
|
+
- [Serve Flows as UI](serve_flows_as_ui.md)
|
|
39
|
+
- [CLI Reference](../../Reference/cli.md)
|
|
40
|
+
- [Serve with Auto-Reload](../Command%20Line%20Usage/serve_with_auto_reload.md)
|
|
@@ -37,6 +37,5 @@ The UI automatically generates:
|
|
|
37
37
|
## See Also
|
|
38
38
|
|
|
39
39
|
- [Serve Flows as APIs](serve_flows_as_apis.md)
|
|
40
|
-
- [
|
|
41
|
-
- [
|
|
42
|
-
- [Tutorial: Build a Conversational Chatbot](../../Tutorials/02-conversational-chatbot.md)
|
|
40
|
+
- [Use Conversational Interfaces](use_conversational_interfaces.md)
|
|
41
|
+
- [Tutorial: Conversational Chatbot](../../Tutorials/02-conversational-chatbot.md)
|
|
@@ -52,8 +52,5 @@ Visit [http://localhost:8000/ui](http://localhost:8000/ui) to interact with the
|
|
|
52
52
|
## See Also
|
|
53
53
|
|
|
54
54
|
- [Serve Flows as UI](serve_flows_as_ui.md)
|
|
55
|
-
- [Tutorial:
|
|
56
|
-
- [Flow Reference](../../components/Flow.md)
|
|
57
|
-
- [FlowInterface Reference](../../components/FlowInterface.md)
|
|
55
|
+
- [Tutorial: Conversational Chatbot](../../Tutorials/02-conversational-chatbot.md)
|
|
58
56
|
- [ChatMessage Reference](../../components/ChatMessage.md)
|
|
59
|
-
- [Memory Concept](../../Concepts/Core/memory.md)
|
|
@@ -43,5 +43,6 @@ flows:
|
|
|
43
43
|
|
|
44
44
|
## See Also
|
|
45
45
|
|
|
46
|
-
- [Serve Flows as UI](
|
|
47
|
-
- [
|
|
46
|
+
- [Serve Flows as UI](serve_flows_as_ui.md)
|
|
47
|
+
- [Variable Reference](../../components/Variable.md)
|
|
48
|
+
- [Use Optional Variables](../Language%20Features/use_optional_variables.md)
|
|
@@ -42,7 +42,6 @@ steps:
|
|
|
42
42
|
|
|
43
43
|
## See Also
|
|
44
44
|
|
|
45
|
-
- [Tutorial:
|
|
45
|
+
- [Tutorial: Tools and Function Calling](../../Tutorials/04-tools-and-function-calling.md)
|
|
46
46
|
- [InvokeTool Reference](../../components/InvokeTool.md)
|
|
47
47
|
- [Create Tools from Python Modules](create_tools_from_python_modules.md)
|
|
48
|
-
- [Create Tools from OpenAPI Specifications](create_tools_from_openapi_specifications.md)
|
|
@@ -31,20 +31,17 @@ tools:
|
|
|
31
31
|
method: GET
|
|
32
32
|
endpoint: /api/v3/pet/{petId}
|
|
33
33
|
auth: swagger-petstore---openapi-30_api_key_api_key
|
|
34
|
-
|
|
35
|
-
petId
|
|
34
|
+
inputs:
|
|
35
|
+
- id: petId
|
|
36
36
|
type: int
|
|
37
|
-
optional: false
|
|
38
37
|
outputs:
|
|
39
|
-
id:
|
|
40
|
-
type: int
|
|
41
|
-
|
|
42
|
-
name:
|
|
43
|
-
type: text
|
|
44
|
-
optional: false
|
|
45
|
-
status:
|
|
38
|
+
- id: id
|
|
39
|
+
type: int?
|
|
40
|
+
- id: name
|
|
46
41
|
type: text
|
|
47
|
-
|
|
42
|
+
- id: status
|
|
43
|
+
type: text?
|
|
44
|
+
parameters: []
|
|
48
45
|
```
|
|
49
46
|
|
|
50
47
|
### Explanation
|
|
@@ -83,7 +80,6 @@ See [Tutorial: Adding Tools to Your Application](../../Tutorials/04-tools-and-fu
|
|
|
83
80
|
|
|
84
81
|
## See Also
|
|
85
82
|
|
|
86
|
-
- [Tutorial:
|
|
87
|
-
- [
|
|
88
|
-
- [InvokeTool Reference](../../components/InvokeTool.md)
|
|
83
|
+
- [Tutorial: Tools and Function Calling](../../Tutorials/04-tools-and-function-calling.md)
|
|
84
|
+
- [Create Tools from Python Modules](create_tools_from_python_modules.md)
|
|
89
85
|
- [APITool Reference](../../components/APITool.md)
|
|
@@ -42,16 +42,13 @@ tools:
|
|
|
42
42
|
module_path: myapp.utils
|
|
43
43
|
name: calculate_age
|
|
44
44
|
inputs:
|
|
45
|
-
birth_date
|
|
45
|
+
- id: birth_date
|
|
46
46
|
type: datetime
|
|
47
|
-
|
|
48
|
-
reference_date:
|
|
47
|
+
- id: reference_date
|
|
49
48
|
type: datetime
|
|
50
|
-
optional: false
|
|
51
49
|
outputs:
|
|
52
|
-
|
|
50
|
+
- id: calculate_age_result
|
|
53
51
|
type: int
|
|
54
|
-
optional: false
|
|
55
52
|
```
|
|
56
53
|
|
|
57
54
|
### Explanation
|
|
@@ -85,6 +82,6 @@ flows:
|
|
|
85
82
|
|
|
86
83
|
## See Also
|
|
87
84
|
|
|
88
|
-
- [Tutorial:
|
|
89
|
-
- [
|
|
85
|
+
- [Tutorial: Tools and Function Calling](../../Tutorials/04-tools-and-function-calling.md)
|
|
86
|
+
- [Create Tools from OpenAPI Specifications](create_tools_from_openapi_specifications.md)
|
|
90
87
|
- [PythonFunctionTool Reference](../../components/PythonFunctionTool.md)
|
|
@@ -63,8 +63,8 @@ qtype run app.qtype.yaml --input-file inputs.csv --output results.parquet
|
|
|
63
63
|
|
|
64
64
|
#### See Also
|
|
65
65
|
|
|
66
|
-
- [
|
|
67
|
-
- [
|
|
66
|
+
- [Pass Inputs On The CLI](../How%20To/Command%20Line%20Usage/pass_inputs_on_the_cli.md)
|
|
67
|
+
- [Load Multiple Inputs from Files](../How%20To/Command%20Line%20Usage/load_multiple_inputs_from_files.md)
|
|
68
68
|
- [Tutorial: Your First QType Application](../Tutorials/01-first-qtype-application.md)
|
|
69
69
|
|
|
70
70
|
---
|
|
@@ -99,8 +99,8 @@ qtype validate app.qtype.yaml --print
|
|
|
99
99
|
|
|
100
100
|
#### See Also
|
|
101
101
|
|
|
102
|
-
- [
|
|
103
|
-
- [
|
|
102
|
+
- [Validate QType YAML](../How%20To/Observability%20%26%20Debugging/validate_qtype_yaml.md)
|
|
103
|
+
- [Semantic Validation Rules](semantic-validation-rules.md)
|
|
104
104
|
|
|
105
105
|
---
|
|
106
106
|
|
|
@@ -141,11 +141,9 @@ qtype serve app.qtype.yaml --reload
|
|
|
141
141
|
|
|
142
142
|
#### See Also
|
|
143
143
|
|
|
144
|
-
- [
|
|
145
|
-
- [
|
|
146
|
-
- [
|
|
147
|
-
- [How To: Serve Applications with Auto-Reload](../How%20To/Qtype%20Server/serve_applications_with_auto_reload.md)
|
|
148
|
-
- [Tutorial: Building a Stateful Chatbot](../Tutorials/02-conversational-chatbot.md)
|
|
144
|
+
- [Serve Flows as APIs](../How%20To/Qtype%20Server/serve_flows_as_apis.md)
|
|
145
|
+
- [Serve Flows as UI](../How%20To/Qtype%20Server/serve_flows_as_ui.md)
|
|
146
|
+
- [Tutorial: Conversational Chatbot](../Tutorials/02-conversational-chatbot.md)
|
|
149
147
|
|
|
150
148
|
---
|
|
151
149
|
|
|
@@ -230,7 +228,7 @@ qtype visualize app.qtype.yaml --output architecture.mmd
|
|
|
230
228
|
|
|
231
229
|
#### See Also
|
|
232
230
|
|
|
233
|
-
- [
|
|
231
|
+
- [Visualize Application Architecture](../How%20To/Observability%20%26%20Debugging/visualize_application_architecture.md)
|
|
234
232
|
|
|
235
233
|
---
|
|
236
234
|
|
|
@@ -274,8 +272,8 @@ qtype convert module myapp.utils
|
|
|
274
272
|
|
|
275
273
|
**See Also:**
|
|
276
274
|
|
|
277
|
-
- [
|
|
278
|
-
- [Tutorial:
|
|
275
|
+
- [Create Tools from Python Modules](../How%20To/Tools%20%26%20Integration/create_tools_from_python_modules.md)
|
|
276
|
+
- [Tutorial: Tools and Function Calling](../Tutorials/04-tools-and-function-calling.md)
|
|
279
277
|
|
|
280
278
|
##### convert api
|
|
281
279
|
|
|
@@ -307,8 +305,8 @@ qtype convert api https://petstore3.swagger.io/api/v3/openapi.json --output pets
|
|
|
307
305
|
|
|
308
306
|
**See Also:**
|
|
309
307
|
|
|
310
|
-
- [
|
|
311
|
-
- [Tutorial:
|
|
308
|
+
- [Create Tools from OpenAPI Specifications](../How%20To/Tools%20%26%20Integration/create_tools_from_openapi_specifications.md)
|
|
309
|
+
- [Tutorial: Tools and Function Calling](../Tutorials/04-tools-and-function-calling.md)
|
|
312
310
|
|
|
313
311
|
---
|
|
314
312
|
|
|
@@ -327,7 +325,7 @@ This command is primarily used for QType development and maintenance.
|
|
|
327
325
|
- **`commons`** - Generates the commons library tools from `tools.py`
|
|
328
326
|
- **`schema`** - Generates the JSON schema for the QType DSL from `model.py`
|
|
329
327
|
- **`dsl-docs`** - Generates markdown documentation for the QType DSL classes from `model.py`
|
|
330
|
-
- **`semantic-model`** - Generates the semantic model from QType DSL (See [Contributing](../Contributing/))
|
|
328
|
+
- **`semantic-model`** - Generates the semantic model from QType DSL (See [Contributing](../Contributing/index.md))
|
|
331
329
|
|
|
332
330
|
---
|
|
333
331
|
|
|
@@ -176,4 +176,9 @@ This document lists all semantic validation rules enforced by QType. These rules
|
|
|
176
176
|
## VectorSearch
|
|
177
177
|
|
|
178
178
|
- Must have exactly 1 input of type `text`
|
|
179
|
-
- Must have exactly 1 output of type `list[RAGSearchResult]`
|
|
179
|
+
- Must have exactly 1 output of type `list[RAGSearchResult]`
|
|
180
|
+
|
|
181
|
+
## See Also
|
|
182
|
+
|
|
183
|
+
- [Validate QType YAML](../How%20To/Observability%20%26%20Debugging/validate_qtype_yaml.md)
|
|
184
|
+
- [CLI Reference](cli.md)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
title: Tutorials
|
|
@@ -231,8 +231,9 @@ Congratulations! You've learned:
|
|
|
231
231
|
|
|
232
232
|
**Learn more:**
|
|
233
233
|
|
|
234
|
-
- [
|
|
235
|
-
- [
|
|
234
|
+
- [Tutorial: Conversational Chatbot](02-conversational-chatbot.md)
|
|
235
|
+
- [Tutorial: Structured Data](03-structured-data.md)
|
|
236
|
+
- [Call Large Language Models](../How%20To/Invoke%20Models/call_large_language_models.md)
|
|
236
237
|
|
|
237
238
|
---
|
|
238
239
|
|
|
@@ -303,9 +303,9 @@ Congratulations! You've mastered:
|
|
|
303
303
|
|
|
304
304
|
**Learn more:**
|
|
305
305
|
|
|
306
|
-
- [
|
|
307
|
-
- [ChatMessage Reference](../
|
|
308
|
-
- [
|
|
306
|
+
- [Tutorial: Structured Data](03-structured-data.md)
|
|
307
|
+
- [ChatMessage Reference](../components/ChatMessage.md)
|
|
308
|
+
- [Use Conversational Interfaces](../How%20To/Qtype%20Server/use_conversational_interfaces.md)
|
|
309
309
|
|
|
310
310
|
---
|
|
311
311
|
|
|
@@ -264,7 +264,7 @@ Final step - convert individual fields into your custom type:
|
|
|
264
264
|
- id: build_result
|
|
265
265
|
type: Construct
|
|
266
266
|
output_type: ReviewSentiment
|
|
267
|
-
|
|
267
|
+
field_bindings:
|
|
268
268
|
sentiment: sentiment
|
|
269
269
|
confidence: confidence
|
|
270
270
|
key_points: key_points
|
|
@@ -282,15 +282,15 @@ Final step - convert individual fields into your custom type:
|
|
|
282
282
|
|
|
283
283
|
**`output_type: ReviewSentiment`** - Specifies which custom type to build
|
|
284
284
|
|
|
285
|
-
**`
|
|
285
|
+
**`field_bindings:`** - Maps type field names to input variables:
|
|
286
286
|
```yaml
|
|
287
|
-
|
|
287
|
+
field_bindings:
|
|
288
288
|
<property_name>: <variable_name>
|
|
289
289
|
```
|
|
290
290
|
|
|
291
291
|
In this case, names match (`sentiment: sentiment`), but you could use different names:
|
|
292
292
|
```yaml
|
|
293
|
-
|
|
293
|
+
field_bindings:
|
|
294
294
|
sentiment: analyzed_sentiment # Maps analyzed_sentiment variable to sentiment property
|
|
295
295
|
```
|
|
296
296
|
|
|
@@ -432,7 +432,7 @@ Congratulations! You've mastered:
|
|
|
432
432
|
✅ **List types** - Working with `list[text]` and other collections
|
|
433
433
|
✅ **Decoder step** - Parsing JSON into individual typed fields
|
|
434
434
|
✅ **Construct step** - Building validated custom type instances
|
|
435
|
-
✅ **Field
|
|
435
|
+
✅ **Field Bindings** - Connecting variables to type properties
|
|
436
436
|
✅ **Type safety** - Catching errors early with validation
|
|
437
437
|
|
|
438
438
|
---
|
|
@@ -445,10 +445,9 @@ Congratulations! You've mastered:
|
|
|
445
445
|
|
|
446
446
|
**Learn more:**
|
|
447
447
|
|
|
448
|
-
- [
|
|
449
|
-
- [
|
|
450
|
-
- [
|
|
451
|
-
- [Type System](../Concepts/Core/types.md) - Primitives, domain types, and custom types
|
|
448
|
+
- [Tutorial: Tools and Function Calling](04-tools-and-function-calling.md)
|
|
449
|
+
- [CustomType Reference](../components/CustomType.md)
|
|
450
|
+
- [Decoder Reference](../components/Decoder.md)
|
|
452
451
|
|
|
453
452
|
---
|
|
454
453
|
|
|
@@ -478,4 +477,4 @@ A: Not directly. Decoder maps JSON fields to individual outputs. If you need the
|
|
|
478
477
|
A: Use **Decoder** when you have a JSON/XML string to parse. Use **FieldExtractor** when you already have structured data and need to extract specific fields using JSONPath (covered in advanced tutorials).
|
|
479
478
|
|
|
480
479
|
**Q: Can I make properties optional?**
|
|
481
|
-
A:
|
|
480
|
+
A: Yes! Mark variables as optional using the `?` suffix (e.g., `type: text?`). Optional variables can be unset, `None`, or have a value. This is useful when extracting fields that may not always be present. See [Use Optional Variables](../How%20To/Language%20Features/use_optional_variables.md).
|
|
@@ -74,7 +74,7 @@ Add a `references:` section before `flows:`:
|
|
|
74
74
|
```yaml
|
|
75
75
|
# Import pre-built tools from the commons library
|
|
76
76
|
references:
|
|
77
|
-
- !include
|
|
77
|
+
- !include ../../common/tools.qtype.yaml
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
**What this means:**
|
|
@@ -258,13 +258,12 @@ In this case:
|
|
|
258
258
|
The `timedelta` tool definition (from commons library) looks like:
|
|
259
259
|
```yaml
|
|
260
260
|
inputs:
|
|
261
|
-
timestamp
|
|
261
|
+
- id: timestamp
|
|
262
262
|
type: datetime
|
|
263
|
-
days
|
|
264
|
-
type: int
|
|
265
|
-
hours
|
|
266
|
-
type: int
|
|
267
|
-
optional: true
|
|
263
|
+
- id: days
|
|
264
|
+
type: int?
|
|
265
|
+
- id: hours
|
|
266
|
+
type: int?
|
|
268
267
|
# ... more optional parameters
|
|
269
268
|
```
|
|
270
269
|
|
|
@@ -445,20 +444,14 @@ Congratulations! You've mastered:
|
|
|
445
444
|
|
|
446
445
|
**Reference the complete example:**
|
|
447
446
|
|
|
448
|
-
- [`04_tools_and_function_calling.qtype.yaml`](https://github.com/bazaarvoice/qtype/blob/main/examples/tutorials/04_tools_and_function_calling.qtype.yaml)
|
|
449
|
-
- [Commons Library](https://github.com/bazaarvoice/qtype/blob/main/common/tools.qtype.yaml)
|
|
450
|
-
- [Commons Library Source](https://github.com/bazaarvoice/qtype/blob/v0.1.11/qtype/application/commons/tools.py) - Browse the source of tools.
|
|
451
|
-
<!--
|
|
452
|
-
**Learn more:**
|
|
453
|
-
|
|
454
|
-
- [PythonFunctionTool Reference](../components/PythonFunctionTool.md) - Complete specification
|
|
455
|
-
- [APITool Reference](../components/APITool.md) - External service integration
|
|
456
|
-
- [InvokeTool Step](../components/InvokeTool.md) - Advanced binding patterns
|
|
457
|
-
- [Generate Tools](../How-To%20Guides/Tools/generate-tools.md) - Create your own tools -->
|
|
447
|
+
- [`04_tools_and_function_calling.qtype.yaml`](https://github.com/bazaarvoice/qtype/blob/main/examples/tutorials/04_tools_and_function_calling.qtype.yaml)
|
|
448
|
+
- [Commons Library Tools](https://github.com/bazaarvoice/qtype/blob/main/common/tools.qtype.yaml)
|
|
458
449
|
|
|
459
|
-
|
|
450
|
+
**Learn more:**
|
|
460
451
|
|
|
461
|
-
-
|
|
452
|
+
- [Create Tools from Python Modules](../How%20To/Tools%20%26%20Integration/create_tools_from_python_modules.md)
|
|
453
|
+
- [Create Tools from OpenAPI Specifications](../How%20To/Tools%20%26%20Integration/create_tools_from_openapi_specifications.md)
|
|
454
|
+
- [Bind Tool Inputs and Outputs](../How%20To/Tools%20%26%20Integration/bind_tool_inputs_and_outputs.md)
|
|
462
455
|
|
|
463
456
|
---
|
|
464
457
|
|
|
@@ -7,4 +7,4 @@ Tool that invokes an API endpoint.
|
|
|
7
7
|
- **method** (`str`): HTTP method to use (GET, POST, PUT, DELETE, etc.).
|
|
8
8
|
- **auth** (`Reference[AuthProviderType] | str | None`): Optional AuthorizationProvider for API authentication.
|
|
9
9
|
- **headers** (`dict[str, str]`): Optional HTTP headers to include in the request.
|
|
10
|
-
- **parameters** (`
|
|
10
|
+
- **parameters** (`list[Variable]`): Path and query parameters for the API call.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
### Collect
|
|
2
|
+
|
|
3
|
+
A step that collects all inputs and creates a single list to return.
|
|
4
|
+
|
|
5
|
+
- **type** (`Literal`): (No documentation available.)
|
|
6
|
+
- **batch_config** (`BatchConfig`): Configuration for processing the input stream in batches. If omitted, the step processes items one by one.
|
|
@@ -3,5 +3,4 @@
|
|
|
3
3
|
Embeds document chunks using a specified embedding model.
|
|
4
4
|
|
|
5
5
|
- **type** (`Literal`): (No documentation available.)
|
|
6
|
-
- **cardinality** (`Literal`): Consumes one chunk and emits one embedded chunk.
|
|
7
6
|
- **model** (`Reference[EmbeddingModel] | str`): Embedding model to use for vectorization.
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
Configuration for chunking/splitting documents into embeddable nodes/chunks.
|
|
4
4
|
|
|
5
5
|
- **type** (`Literal`): (No documentation available.)
|
|
6
|
-
- **cardinality** (`Literal`): Consumes one document and emits 0...N nodes/chunks.
|
|
7
6
|
- **splitter_name** (`str`): Name of the LlamaIndex TextSplitter class.
|
|
8
7
|
- **chunk_size** (`int`): Size of each chunk.
|
|
9
8
|
- **chunk_overlap** (`int`): Overlap between consecutive chunks.
|
|
@@ -10,6 +10,8 @@ messages (1-to-many cardinality). If it matches a single value, it yields
|
|
|
10
10
|
one output message. If it matches nothing, it raises an error.
|
|
11
11
|
The extracted data is used to construct the output variable by passing it
|
|
12
12
|
as keyword arguments to the output type's constructor.
|
|
13
|
+
If there is no match and the output variable is optional, it is set to None.
|
|
14
|
+
If there is no match and the output variable is required, an error is raised.
|
|
13
15
|
Example JSONPath expressions:
|
|
14
16
|
- `$.field_name` - Extract a single field
|
|
15
17
|
- `$.items[*]` - Extract all items from a list
|
|
@@ -17,4 +19,3 @@ Example JSONPath expressions:
|
|
|
17
19
|
|
|
18
20
|
- **type** (`Literal`): (No documentation available.)
|
|
19
21
|
- **json_path** (`str`): JSONPath expression to extract data from the input. Uses jsonpath-ng syntax.
|
|
20
|
-
- **fail_on_missing** (`bool`): Whether to raise an error if the JSONPath matches no data. If False, returns None.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
### InvokeFlow
|
|
2
|
+
|
|
3
|
+
Invokes a flow with input and output bindings.
|
|
4
|
+
|
|
5
|
+
- **type** (`Literal`): (No documentation available.)
|
|
6
|
+
- **flow** (`Reference[Flow] | str`): Flow to invoke.
|
|
7
|
+
- **input_bindings** (`dict[str, Reference[Variable] | str]`): Mapping from flow input variable IDs to step variable names.
|
|
8
|
+
- **output_bindings** (`dict[str, Reference[Variable] | str]`): Mapping from flow output variable IDs to step variable names.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
### InvokeTool
|
|
2
|
+
|
|
3
|
+
Invokes a tool with input and output bindings.
|
|
4
|
+
|
|
5
|
+
- **type** (`Literal`): (No documentation available.)
|
|
6
|
+
- **tool** (`Reference[ToolType] | str`): Tool to invoke.
|
|
7
|
+
- **input_bindings** (`dict[str, Reference[Variable] | str]`): Mapping from tool parameter names to flow variable names.
|
|
8
|
+
- **output_bindings** (`dict[str, Reference[Variable] | str]`): Mapping from tool output names to flow variable names.
|
|
@@ -15,7 +15,6 @@ Represents the type of data a user or system input can accept within the DSL.
|
|
|
15
15
|
- **int**: Represents the type of data a user or system input can accept within the DSL.
|
|
16
16
|
- **name**: The name of the Enum member.
|
|
17
17
|
- **text**: Represents the type of data a user or system input can accept within the DSL.
|
|
18
|
-
- **thinking**: Represents the type of data a user or system input can accept within the DSL.
|
|
19
18
|
- **time**: Represents the type of data a user or system input can accept within the DSL.
|
|
20
19
|
- **value**: The value of the Enum member.
|
|
21
20
|
- **video**: Represents the type of data a user or system input can accept within the DSL.
|
|
@@ -4,6 +4,5 @@ Base class for components that take inputs and produce outputs.
|
|
|
4
4
|
|
|
5
5
|
- **id** (`str`): Unique ID of this component.
|
|
6
6
|
- **type** (`str`): Type of the step component.
|
|
7
|
-
- **cardinality** (`StepCardinality`): Does this step emit 1 (one) or 0...N (many) instances of the outputs?
|
|
8
7
|
- **inputs** (`list[Reference[Variable] | str]`): References to the variables required by this step.
|
|
9
8
|
- **outputs** (`list[Reference[Variable] | str]`): References to the variables where output is stored.
|