qtype 0.1.12__py3-none-any.whl → 0.1.14__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/base/__init__.py +8 -2
- qtype/base/logging.py +0 -17
- qtype/base/resources.py +193 -0
- qtype/cli.py +5 -9
- qtype/commands/generate.py +95 -7
- qtype/commands/run.py +153 -54
- 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 +18 -4
- qtype/docs/Gallery/recipe_chatbot.md +103 -0
- qtype/docs/Gallery/recipe_chatbot.mermaid +62 -0
- qtype/docs/Gallery/recipe_chatbot.png +0 -0
- {docs → qtype/docs}/Gallery/research_assistant.md +4 -5
- {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 +7 -4
- {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/load_documents.md +74 -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 +4 -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 +16 -17
- qtype/docs/Tutorials/.pages +1 -0
- {docs → qtype/docs}/Tutorials/01-first-qtype-application.md +4 -3
- {docs → qtype/docs}/Tutorials/02-conversational-chatbot.md +3 -3
- {docs → qtype/docs}/Tutorials/03-structured-data.md +10 -11
- {docs → qtype/docs}/Tutorials/04-tools-and-function-calling.md +13 -20
- {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/conversational_ai/simple_chatbot_with_auth.qtype.yaml +48 -0
- 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/load_documents.qtype.yaml +31 -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/invoke_models/invoke_embedding_aws.qtype.yaml +45 -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/rag/recipe_chatbot.qtype.yaml +216 -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/auth/aws.py +94 -17
- qtype/interpreter/auth/generic.py +11 -12
- qtype/interpreter/base/secrets.py +4 -2
- qtype/interpreter/base/stream_emitter.py +19 -13
- qtype/interpreter/conversions.py +15 -14
- 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/bedrock_reranker_executor.py +17 -28
- qtype/interpreter/executors/construct_executor.py +15 -15
- qtype/interpreter/executors/doc_to_text_executor.py +1 -3
- qtype/interpreter/executors/document_embedder_executor.py +1 -12
- 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 +24 -37
- 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 +18 -18
- qtype/interpreter/executors/prompt_template_executor.py +1 -3
- qtype/interpreter/executors/sql_source_executor.py +6 -2
- qtype/interpreter/flow.py +11 -1
- 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 +194 -86
- {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 +18 -6
- {qtype-0.1.12.dist-info → qtype-0.1.14.dist-info}/METADATA +47 -46
- qtype-0.1.14.dist-info/RECORD +361 -0
- {qtype-0.1.12.dist-info → qtype-0.1.14.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}/Reference/plugins.md +0 -0
- {docs → qtype/docs}/Reference/semantic-validation-rules.md +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.14.dist-info}/entry_points.txt +0 -0
- {qtype-0.1.12.dist-info → qtype-0.1.14.dist-info}/licenses/LICENSE +0 -0
|
@@ -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)
|
|
@@ -34,14 +34,15 @@ qtype run [options] spec
|
|
|
34
34
|
#### Options
|
|
35
35
|
|
|
36
36
|
- **`-f FLOW, --flow FLOW`** - The name of the flow to run. If not specified, runs the first flow found
|
|
37
|
-
- **`-i INPUT, --input INPUT`** - JSON blob of input values for the flow (
|
|
37
|
+
- **`-i INPUT, --input INPUT`** - JSON blob of input values for the flow (optional - omit for flows with source steps that generate their own data)
|
|
38
38
|
- **`-I INPUT_FILE, --input-file INPUT_FILE`** - Path to a file (e.g., CSV, JSON, Parquet) with input data for batch processing
|
|
39
39
|
- **`-o OUTPUT, --output OUTPUT`** - Path to save output data. If input is a DataFrame, output will be saved as parquet. If single result, saved as JSON
|
|
40
40
|
- **`--progress`** - Show progress bars during flow execution
|
|
41
|
+
- **`--show-output`** - Display full output data in console (default: summary only)
|
|
41
42
|
|
|
42
43
|
#### Examples
|
|
43
44
|
|
|
44
|
-
Run a simple application:
|
|
45
|
+
Run a simple application with no inputs (e.g., flows with source steps):
|
|
45
46
|
```bash
|
|
46
47
|
qtype run app.qtype.yaml
|
|
47
48
|
```
|
|
@@ -63,8 +64,8 @@ qtype run app.qtype.yaml --input-file inputs.csv --output results.parquet
|
|
|
63
64
|
|
|
64
65
|
#### See Also
|
|
65
66
|
|
|
66
|
-
- [
|
|
67
|
-
- [
|
|
67
|
+
- [Pass Inputs On The CLI](../How%20To/Command%20Line%20Usage/pass_inputs_on_the_cli.md)
|
|
68
|
+
- [Load Multiple Inputs from Files](../How%20To/Command%20Line%20Usage/load_multiple_inputs_from_files.md)
|
|
68
69
|
- [Tutorial: Your First QType Application](../Tutorials/01-first-qtype-application.md)
|
|
69
70
|
|
|
70
71
|
---
|
|
@@ -99,8 +100,8 @@ qtype validate app.qtype.yaml --print
|
|
|
99
100
|
|
|
100
101
|
#### See Also
|
|
101
102
|
|
|
102
|
-
- [
|
|
103
|
-
- [
|
|
103
|
+
- [Validate QType YAML](../How%20To/Observability%20%26%20Debugging/validate_qtype_yaml.md)
|
|
104
|
+
- [Semantic Validation Rules](semantic-validation-rules.md)
|
|
104
105
|
|
|
105
106
|
---
|
|
106
107
|
|
|
@@ -141,11 +142,9 @@ qtype serve app.qtype.yaml --reload
|
|
|
141
142
|
|
|
142
143
|
#### See Also
|
|
143
144
|
|
|
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)
|
|
145
|
+
- [Serve Flows as APIs](../How%20To/Qtype%20Server/serve_flows_as_apis.md)
|
|
146
|
+
- [Serve Flows as UI](../How%20To/Qtype%20Server/serve_flows_as_ui.md)
|
|
147
|
+
- [Tutorial: Conversational Chatbot](../Tutorials/02-conversational-chatbot.md)
|
|
149
148
|
|
|
150
149
|
---
|
|
151
150
|
|
|
@@ -230,7 +229,7 @@ qtype visualize app.qtype.yaml --output architecture.mmd
|
|
|
230
229
|
|
|
231
230
|
#### See Also
|
|
232
231
|
|
|
233
|
-
- [
|
|
232
|
+
- [Visualize Application Architecture](../How%20To/Observability%20%26%20Debugging/visualize_application_architecture.md)
|
|
234
233
|
|
|
235
234
|
---
|
|
236
235
|
|
|
@@ -274,8 +273,8 @@ qtype convert module myapp.utils
|
|
|
274
273
|
|
|
275
274
|
**See Also:**
|
|
276
275
|
|
|
277
|
-
- [
|
|
278
|
-
- [Tutorial:
|
|
276
|
+
- [Create Tools from Python Modules](../How%20To/Tools%20%26%20Integration/create_tools_from_python_modules.md)
|
|
277
|
+
- [Tutorial: Tools and Function Calling](../Tutorials/04-tools-and-function-calling.md)
|
|
279
278
|
|
|
280
279
|
##### convert api
|
|
281
280
|
|
|
@@ -307,8 +306,8 @@ qtype convert api https://petstore3.swagger.io/api/v3/openapi.json --output pets
|
|
|
307
306
|
|
|
308
307
|
**See Also:**
|
|
309
308
|
|
|
310
|
-
- [
|
|
311
|
-
- [Tutorial:
|
|
309
|
+
- [Create Tools from OpenAPI Specifications](../How%20To/Tools%20%26%20Integration/create_tools_from_openapi_specifications.md)
|
|
310
|
+
- [Tutorial: Tools and Function Calling](../Tutorials/04-tools-and-function-calling.md)
|
|
312
311
|
|
|
313
312
|
---
|
|
314
313
|
|
|
@@ -327,7 +326,7 @@ This command is primarily used for QType development and maintenance.
|
|
|
327
326
|
- **`commons`** - Generates the commons library tools from `tools.py`
|
|
328
327
|
- **`schema`** - Generates the JSON schema for the QType DSL from `model.py`
|
|
329
328
|
- **`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/))
|
|
329
|
+
- **`semantic-model`** - Generates the semantic model from QType DSL (See [Contributing](../Contributing/index.md))
|
|
331
330
|
|
|
332
331
|
---
|
|
333
332
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
title: Tutorials
|
|
@@ -180,7 +180,7 @@ Replace `sk-your-key-here` with your actual OpenAI API key.
|
|
|
180
180
|
Run your application:
|
|
181
181
|
|
|
182
182
|
```bash
|
|
183
|
-
qtype run -i '{"question":"What is 2+2?"}' 01_hello_world.qtype.yaml
|
|
183
|
+
qtype run -i '{"question":"What is 2+2?"}' --show-output 01_hello_world.qtype.yaml
|
|
184
184
|
```
|
|
185
185
|
|
|
186
186
|
**What you should see:**
|
|
@@ -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
|
|
|
@@ -316,7 +316,7 @@ Should pass ✅
|
|
|
316
316
|
### Run It!
|
|
317
317
|
|
|
318
318
|
```bash
|
|
319
|
-
qtype run -i '{"review_text":"These headphones are amazing! Great sound quality and super comfortable. Battery lasts all day."}' 03_structured_data.qtype.yaml
|
|
319
|
+
qtype run -i '{"review_text":"These headphones are amazing! Great sound quality and super comfortable. Battery lasts all day."}' --show-output 03_structured_data.qtype.yaml
|
|
320
320
|
```
|
|
321
321
|
|
|
322
322
|
**Expected output:**
|
|
@@ -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
|
|
|
@@ -306,7 +305,7 @@ Should pass ✅
|
|
|
306
305
|
### Run the Application
|
|
307
306
|
|
|
308
307
|
```bash
|
|
309
|
-
qtype run -i '{"days_until_due": 3}' 04_tools_and_function_calling.qtype.yaml
|
|
308
|
+
qtype run -i '{"days_until_due": 3}' --show-output 04_tools_and_function_calling.qtype.yaml
|
|
310
309
|
```
|
|
311
310
|
|
|
312
311
|
**Expected output:**
|
|
@@ -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.
|
|
@@ -5,5 +5,5 @@ Base class for callable functions or external operations available to the model
|
|
|
5
5
|
- **id** (`str`): Unique ID of this component.
|
|
6
6
|
- **name** (`str`): Name of the tool function.
|
|
7
7
|
- **description** (`str`): Description of what the tool does.
|
|
8
|
-
- **inputs** (`
|
|
9
|
-
- **outputs** (`
|
|
8
|
+
- **inputs** (`list[Variable]`): Input parameters required by this tool.
|
|
9
|
+
- **outputs** (`list[Variable]`): Output parameters produced by this tool.
|
|
@@ -4,3 +4,5 @@ Schema for a variable that can serve as input, output, or parameter within the D
|
|
|
4
4
|
|
|
5
5
|
- **id** (`str`): Unique ID of the variable. Referenced in prompts or steps.
|
|
6
6
|
- **type** (`VariableType | str`): Type of data expected or produced. Either a CustomType or domain specific type.
|
|
7
|
+
- **optional** (`bool`): Whether this variable can be unset or None. Use '?' suffix in type string as shorthand (e.g., 'text?').
|
|
8
|
+
- **ui** (`TextInputUI | FileUploadUI | None`): Hints for the UI if needed.
|