trustgraph-flow 2.7.3__tar.gz → 2.7.4__tar.gz

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.
Files changed (405) hide show
  1. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/PKG-INFO +1 -1
  2. trustgraph_flow-2.7.4/trustgraph/flow_version.py +1 -0
  3. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/azure/llm.py +31 -5
  4. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/azure_openai/llm.py +21 -2
  5. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/claude/llm.py +39 -5
  6. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/cohere/llm.py +8 -2
  7. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/llamafile/llm.py +34 -6
  8. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/lmstudio/llm.py +34 -6
  9. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/mistral/llm.py +36 -6
  10. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/ollama/llm.py +21 -4
  11. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/openai/llm.py +46 -2
  12. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/openai/variants.py +14 -0
  13. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/tgi/llm.py +19 -3
  14. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/vllm/llm.py +29 -3
  15. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/prompt/template/service.py +13 -3
  16. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/template/prompt_manager.py +15 -1
  17. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph_flow.egg-info/PKG-INFO +1 -1
  18. trustgraph_flow-2.7.3/trustgraph/flow_version.py +0 -1
  19. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/README.md +0 -0
  20. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/pyproject.toml +0 -0
  21. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/setup.cfg +0 -0
  22. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/__init__.py +0 -0
  23. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/__init__.py +0 -0
  24. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/mcp_tool/__init__.py +0 -0
  25. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/mcp_tool/__main__.py +0 -0
  26. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/mcp_tool/service.py +0 -0
  27. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/orchestrator/__init__.py +0 -0
  28. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/orchestrator/__main__.py +0 -0
  29. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/orchestrator/aggregator.py +0 -0
  30. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/orchestrator/meta_router.py +0 -0
  31. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/orchestrator/pattern_base.py +0 -0
  32. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/orchestrator/plan_pattern.py +0 -0
  33. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/orchestrator/react_pattern.py +0 -0
  34. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/orchestrator/service.py +0 -0
  35. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/orchestrator/supervisor_pattern.py +0 -0
  36. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/react/__init__.py +0 -0
  37. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/react/__main__.py +0 -0
  38. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/react/agent_manager.py +0 -0
  39. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/react/service.py +0 -0
  40. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/react/streaming_parser.py +0 -0
  41. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/react/tools.py +0 -0
  42. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/react/types.py +0 -0
  43. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/agent/tool_filter.py +0 -0
  44. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/bootstrap/__init__.py +0 -0
  45. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/bootstrap/base.py +0 -0
  46. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/bootstrap/bootstrapper/__init__.py +0 -0
  47. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/bootstrap/bootstrapper/__main__.py +0 -0
  48. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/bootstrap/bootstrapper/service.py +0 -0
  49. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/bootstrap/initialisers/__init__.py +0 -0
  50. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/bootstrap/initialisers/default_flow_start.py +0 -0
  51. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/bootstrap/initialisers/pulsar_topology.py +0 -0
  52. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/bootstrap/initialisers/template_seed.py +0 -0
  53. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/bootstrap/initialisers/workspace_init.py +0 -0
  54. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/chunking/__init__.py +0 -0
  55. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/chunking/recursive/__init__.py +0 -0
  56. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/chunking/recursive/__main__.py +0 -0
  57. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/chunking/recursive/chunker.py +0 -0
  58. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/chunking/token/__init__.py +0 -0
  59. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/chunking/token/__main__.py +0 -0
  60. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/chunking/token/chunker.py +0 -0
  61. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/config/service/__init__.py +0 -0
  62. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/config/service/__main__.py +0 -0
  63. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/config/service/config.py +0 -0
  64. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/config/service/service.py +0 -0
  65. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/cores/__init__.py +0 -0
  66. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/cores/__main__.py +0 -0
  67. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/cores/knowledge.py +0 -0
  68. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/cores/service.py +0 -0
  69. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/decoding/__init__.py +0 -0
  70. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/decoding/mistral_ocr/__init__.py +0 -0
  71. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/decoding/mistral_ocr/__main__.py +0 -0
  72. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/decoding/mistral_ocr/processor.py +0 -0
  73. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/decoding/pdf/__init__.py +0 -0
  74. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/decoding/pdf/__main__.py +0 -0
  75. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/decoding/pdf/pdf_decoder.py +0 -0
  76. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/direct/__init__.py +0 -0
  77. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/direct/cassandra_kg.py +0 -0
  78. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/direct/milvus_doc_embeddings.py +0 -0
  79. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/direct/milvus_graph_embeddings.py +0 -0
  80. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/__init__.py +0 -0
  81. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/document_embeddings/__init__.py +0 -0
  82. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/document_embeddings/__main__.py +0 -0
  83. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/document_embeddings/embeddings.py +0 -0
  84. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/fastembed/__init__.py +0 -0
  85. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/fastembed/__main__.py +0 -0
  86. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/fastembed/processor.py +0 -0
  87. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/graph_embeddings/__init__.py +0 -0
  88. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/graph_embeddings/__main__.py +0 -0
  89. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/graph_embeddings/embeddings.py +0 -0
  90. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/ollama/__init__.py +0 -0
  91. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/ollama/__main__.py +0 -0
  92. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/ollama/processor.py +0 -0
  93. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/row_embeddings/__init__.py +0 -0
  94. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/row_embeddings/__main__.py +0 -0
  95. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/embeddings/row_embeddings/embeddings.py +0 -0
  96. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/external/__init__.py +0 -0
  97. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/external/wikipedia/__init__.py +0 -0
  98. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/external/wikipedia/__main__.py +0 -0
  99. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/external/wikipedia/service.py +0 -0
  100. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/__init__.py +0 -0
  101. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/__init__.py +0 -0
  102. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/agent/__init__.py +0 -0
  103. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/agent/__main__.py +0 -0
  104. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/agent/extract.py +0 -0
  105. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/definitions/__init__.py +0 -0
  106. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/definitions/__main__.py +0 -0
  107. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/definitions/extract.py +0 -0
  108. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/ontology/__init__.py +0 -0
  109. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/ontology/entity_normalizer.py +0 -0
  110. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/ontology/extract.py +0 -0
  111. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/ontology/ontology_embedder.py +0 -0
  112. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/ontology/ontology_loader.py +0 -0
  113. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/ontology/ontology_selector.py +0 -0
  114. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/ontology/run.py +0 -0
  115. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/ontology/simplified_parser.py +0 -0
  116. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/ontology/text_processor.py +0 -0
  117. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/ontology/triple_converter.py +0 -0
  118. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/ontology/vector_store.py +0 -0
  119. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/relationships/__init__.py +0 -0
  120. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/relationships/__main__.py +0 -0
  121. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/relationships/extract.py +0 -0
  122. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/rows/__init__.py +0 -0
  123. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/rows/__main__.py +0 -0
  124. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/rows/processor.py +0 -0
  125. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/topics/__init__.py +0 -0
  126. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/topics/__main__.py +0 -0
  127. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/extract/kg/topics/extract.py +0 -0
  128. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/flow/__init__.py +0 -0
  129. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/flow/service/__init__.py +0 -0
  130. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/flow/service/__main__.py +0 -0
  131. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/flow/service/flow.py +0 -0
  132. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/flow/service/service.py +0 -0
  133. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/__init__.py +0 -0
  134. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/__main__.py +0 -0
  135. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/audit.py +0 -0
  136. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/auth.py +0 -0
  137. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/capabilities.py +0 -0
  138. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/config/receiver.py +0 -0
  139. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/agent.py +0 -0
  140. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/collection_management.py +0 -0
  141. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/config.py +0 -0
  142. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/core_export.py +0 -0
  143. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/core_import.py +0 -0
  144. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/document_embeddings_export.py +0 -0
  145. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/document_embeddings_import.py +0 -0
  146. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/document_embeddings_query.py +0 -0
  147. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/document_load.py +0 -0
  148. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/document_rag.py +0 -0
  149. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/document_stream.py +0 -0
  150. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/embeddings.py +0 -0
  151. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/entity_contexts_export.py +0 -0
  152. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/entity_contexts_import.py +0 -0
  153. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/flow.py +0 -0
  154. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/graph_embeddings_export.py +0 -0
  155. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/graph_embeddings_import.py +0 -0
  156. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/graph_embeddings_query.py +0 -0
  157. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/graph_rag.py +0 -0
  158. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/iam.py +0 -0
  159. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/knowledge.py +0 -0
  160. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/librarian.py +0 -0
  161. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/manager.py +0 -0
  162. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/mcp_tool.py +0 -0
  163. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/mux.py +0 -0
  164. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/nlp_query.py +0 -0
  165. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/prompt.py +0 -0
  166. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/requestor.py +0 -0
  167. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/reranker.py +0 -0
  168. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/row_embeddings_query.py +0 -0
  169. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/rows_import.py +0 -0
  170. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/rows_query.py +0 -0
  171. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/sender.py +0 -0
  172. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/serialize.py +0 -0
  173. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/sparql_query.py +0 -0
  174. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/streamer.py +0 -0
  175. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/structured_diag.py +0 -0
  176. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/structured_query.py +0 -0
  177. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/text_completion.py +0 -0
  178. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/text_load.py +0 -0
  179. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/triples_export.py +0 -0
  180. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/triples_import.py +0 -0
  181. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/dispatch/triples_query.py +0 -0
  182. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/endpoint/auth_endpoints.py +0 -0
  183. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/endpoint/constant_endpoint.py +0 -0
  184. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/endpoint/i18n.py +0 -0
  185. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/endpoint/iam_endpoint.py +0 -0
  186. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/endpoint/manager.py +0 -0
  187. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/endpoint/metrics.py +0 -0
  188. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/endpoint/registry_endpoint.py +0 -0
  189. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/endpoint/socket.py +0 -0
  190. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/endpoint/stream_endpoint.py +0 -0
  191. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/endpoint/variable_endpoint.py +0 -0
  192. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/registry.py +0 -0
  193. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/running.py +0 -0
  194. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/service.py +0 -0
  195. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/unused/dbpedia.py +0 -0
  196. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/unused/encyclopedia.py +0 -0
  197. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/gateway/unused/internet_search.py +0 -0
  198. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/iam/__init__.py +0 -0
  199. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/iam/noauth/__init__.py +0 -0
  200. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/iam/noauth/__main__.py +0 -0
  201. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/iam/noauth/handler.py +0 -0
  202. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/iam/noauth/service.py +0 -0
  203. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/iam/service/__init__.py +0 -0
  204. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/iam/service/__main__.py +0 -0
  205. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/iam/service/iam.py +0 -0
  206. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/iam/service/service.py +0 -0
  207. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/librarian/__init__.py +0 -0
  208. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/librarian/__main__.py +0 -0
  209. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/librarian/blob_store.py +0 -0
  210. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/librarian/collection_manager.py +0 -0
  211. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/librarian/librarian.py +0 -0
  212. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/librarian/service.py +0 -0
  213. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/metering/__init__.py +0 -0
  214. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/metering/__main__.py +0 -0
  215. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/metering/counter.py +0 -0
  216. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/__init__.py +0 -0
  217. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/__init__.py +0 -0
  218. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/azure/__init__.py +0 -0
  219. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/azure/__main__.py +0 -0
  220. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/azure_openai/__init__.py +0 -0
  221. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/azure_openai/__main__.py +0 -0
  222. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/claude/__init__.py +0 -0
  223. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/claude/__main__.py +0 -0
  224. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/cohere/__init__.py +0 -0
  225. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/cohere/__main__.py +0 -0
  226. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/llamafile/__init__.py +0 -0
  227. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/llamafile/__main__.py +0 -0
  228. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/lmstudio/__init__.py +0 -0
  229. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/lmstudio/__main__.py +0 -0
  230. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/mistral/__init__.py +0 -0
  231. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/mistral/__main__.py +0 -0
  232. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/ollama/__init__.py +0 -0
  233. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/ollama/__main__.py +0 -0
  234. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/openai/__init__.py +0 -0
  235. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/openai/__main__.py +0 -0
  236. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/tgi/__init__.py +0 -0
  237. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/tgi/__main__.py +0 -0
  238. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/vllm/__init__.py +0 -0
  239. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/model/text_completion/vllm/__main__.py +0 -0
  240. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/processing/__init__.py +0 -0
  241. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/processing/__main__.py +0 -0
  242. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/processing/processing.py +0 -0
  243. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/prompt/__init__.py +0 -0
  244. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/prompt/template/__init__.py +0 -0
  245. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/prompt/template/__main__.py +0 -0
  246. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/__init__.py +0 -0
  247. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/doc_embeddings/__init__.py +0 -0
  248. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/doc_embeddings/milvus/__init__.py +0 -0
  249. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/doc_embeddings/milvus/__main__.py +0 -0
  250. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/doc_embeddings/milvus/service.py +0 -0
  251. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/doc_embeddings/pinecone/__init__.py +0 -0
  252. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/doc_embeddings/pinecone/__main__.py +0 -0
  253. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/doc_embeddings/pinecone/service.py +0 -0
  254. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/doc_embeddings/qdrant/__init__.py +0 -0
  255. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/doc_embeddings/qdrant/__main__.py +0 -0
  256. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/doc_embeddings/qdrant/service.py +0 -0
  257. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graph_embeddings/__init__.py +0 -0
  258. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graph_embeddings/milvus/__init__.py +0 -0
  259. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graph_embeddings/milvus/__main__.py +0 -0
  260. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graph_embeddings/milvus/service.py +0 -0
  261. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graph_embeddings/pinecone/__init__.py +0 -0
  262. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graph_embeddings/pinecone/__main__.py +0 -0
  263. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graph_embeddings/pinecone/service.py +0 -0
  264. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graph_embeddings/qdrant/__init__.py +0 -0
  265. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graph_embeddings/qdrant/__main__.py +0 -0
  266. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graph_embeddings/qdrant/service.py +0 -0
  267. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graphql/__init__.py +0 -0
  268. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graphql/filters.py +0 -0
  269. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graphql/schema.py +0 -0
  270. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/graphql/types.py +0 -0
  271. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/__init__.py +0 -0
  272. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/answer_generator.py +0 -0
  273. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/backend_router.py +0 -0
  274. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/cache.py +0 -0
  275. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/cypher_executor.py +0 -0
  276. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/cypher_generator.py +0 -0
  277. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/error_handling.py +0 -0
  278. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/monitoring.py +0 -0
  279. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/multi_language.py +0 -0
  280. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/ontology_matcher.py +0 -0
  281. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/query_explanation.py +0 -0
  282. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/query_optimizer.py +0 -0
  283. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/query_service.py +0 -0
  284. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/question_analyzer.py +0 -0
  285. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/sparql_cassandra.py +0 -0
  286. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/ontology/sparql_generator.py +0 -0
  287. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/row_embeddings/__init__.py +0 -0
  288. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/row_embeddings/qdrant/__init__.py +0 -0
  289. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/row_embeddings/qdrant/__main__.py +0 -0
  290. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/row_embeddings/qdrant/service.py +0 -0
  291. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/rows/__init__.py +0 -0
  292. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/rows/cassandra/__init__.py +0 -0
  293. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/rows/cassandra/__main__.py +0 -0
  294. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/rows/cassandra/service.py +0 -0
  295. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/sparql/__init__.py +0 -0
  296. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/sparql/__main__.py +0 -0
  297. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/sparql/algebra.py +0 -0
  298. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/sparql/expressions.py +0 -0
  299. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/sparql/parser.py +0 -0
  300. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/sparql/service.py +0 -0
  301. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/sparql/solutions.py +0 -0
  302. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/triples/__init__.py +0 -0
  303. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/triples/cassandra/__init__.py +0 -0
  304. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/triples/cassandra/__main__.py +0 -0
  305. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/triples/cassandra/service.py +0 -0
  306. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/triples/falkordb/__init__.py +0 -0
  307. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/triples/falkordb/__main__.py +0 -0
  308. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/triples/falkordb/service.py +0 -0
  309. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/triples/memgraph/__init__.py +0 -0
  310. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/triples/memgraph/__main__.py +0 -0
  311. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/triples/memgraph/service.py +0 -0
  312. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/triples/neo4j/__init__.py +0 -0
  313. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/triples/neo4j/__main__.py +0 -0
  314. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/query/triples/neo4j/service.py +0 -0
  315. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/reranker/__init__.py +0 -0
  316. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/reranker/flashrank/__init__.py +0 -0
  317. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/reranker/flashrank/__main__.py +0 -0
  318. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/reranker/flashrank/processor.py +0 -0
  319. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/__init__.py +0 -0
  320. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/document_rag/__init__.py +0 -0
  321. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/document_rag/__main__.py +0 -0
  322. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/document_rag/document_rag.py +0 -0
  323. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/document_rag/rag.py +0 -0
  324. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/document_rag/rerank.py +0 -0
  325. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/graph_rag/__init__.py +0 -0
  326. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/graph_rag/__main__.py +0 -0
  327. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/graph_rag/graph_rag.py +0 -0
  328. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/graph_rag/rag.py +0 -0
  329. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/nlp_query/__init__.py +0 -0
  330. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/nlp_query/__main__.py +0 -0
  331. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/nlp_query/service.py +0 -0
  332. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/structured_diag/__init__.py +0 -0
  333. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/structured_diag/service.py +0 -0
  334. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/structured_diag/type_detector.py +0 -0
  335. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/structured_query/__init__.py +0 -0
  336. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/structured_query/__main__.py +0 -0
  337. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/retrieval/structured_query/service.py +0 -0
  338. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/rev_gateway/__init__.py +0 -0
  339. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/rev_gateway/__main__.py +0 -0
  340. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/rev_gateway/dispatcher.py +0 -0
  341. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/rev_gateway/service.py +0 -0
  342. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/__init__.py +0 -0
  343. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/doc_embeddings/__init__.py +0 -0
  344. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/doc_embeddings/milvus/__init__.py +0 -0
  345. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/doc_embeddings/milvus/__main__.py +0 -0
  346. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/doc_embeddings/milvus/write.py +0 -0
  347. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/doc_embeddings/pinecone/__init__.py +0 -0
  348. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/doc_embeddings/pinecone/__main__.py +0 -0
  349. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/doc_embeddings/pinecone/write.py +0 -0
  350. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/doc_embeddings/qdrant/__init__.py +0 -0
  351. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/doc_embeddings/qdrant/__main__.py +0 -0
  352. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/doc_embeddings/qdrant/write.py +0 -0
  353. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/graph_embeddings/__init__.py +0 -0
  354. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/graph_embeddings/milvus/__init__.py +0 -0
  355. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/graph_embeddings/milvus/__main__.py +0 -0
  356. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/graph_embeddings/milvus/write.py +0 -0
  357. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/graph_embeddings/pinecone/__init__.py +0 -0
  358. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/graph_embeddings/pinecone/__main__.py +0 -0
  359. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/graph_embeddings/pinecone/write.py +0 -0
  360. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/graph_embeddings/qdrant/__init__.py +0 -0
  361. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/graph_embeddings/qdrant/__main__.py +0 -0
  362. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/graph_embeddings/qdrant/write.py +0 -0
  363. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/knowledge/__init__.py +0 -0
  364. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/knowledge/__main__.py +0 -0
  365. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/knowledge/store.py +0 -0
  366. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/kw_index/__init__.py +0 -0
  367. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/kw_index/fts5/__init__.py +0 -0
  368. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/kw_index/fts5/__main__.py +0 -0
  369. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/kw_index/fts5/service.py +0 -0
  370. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/row_embeddings/__init__.py +0 -0
  371. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/row_embeddings/qdrant/__init__.py +0 -0
  372. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/row_embeddings/qdrant/__main__.py +0 -0
  373. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/row_embeddings/qdrant/write.py +0 -0
  374. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/rows/__init__.py +0 -0
  375. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/rows/cassandra/__init__.py +0 -0
  376. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/rows/cassandra/__main__.py +0 -0
  377. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/rows/cassandra/write.py +0 -0
  378. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/triples/__init__.py +0 -0
  379. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/triples/cassandra/__init__.py +0 -0
  380. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/triples/cassandra/__main__.py +0 -0
  381. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/triples/cassandra/write.py +0 -0
  382. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/triples/falkordb/__init__.py +0 -0
  383. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/triples/falkordb/__main__.py +0 -0
  384. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/triples/falkordb/write.py +0 -0
  385. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/triples/memgraph/__init__.py +0 -0
  386. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/triples/memgraph/__main__.py +0 -0
  387. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/triples/memgraph/write.py +0 -0
  388. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/triples/neo4j/__init__.py +0 -0
  389. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/triples/neo4j/__main__.py +0 -0
  390. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/storage/triples/neo4j/write.py +0 -0
  391. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/tables/__init__.py +0 -0
  392. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/tables/cassandra_async.py +0 -0
  393. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/tables/config.py +0 -0
  394. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/tables/iam.py +0 -0
  395. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/tables/knowledge.py +0 -0
  396. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/tables/library.py +0 -0
  397. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/template/__init__.py +0 -0
  398. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/tool_service/__init__.py +0 -0
  399. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/tool_service/joke/__init__.py +0 -0
  400. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph/tool_service/joke/service.py +0 -0
  401. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph_flow.egg-info/SOURCES.txt +0 -0
  402. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph_flow.egg-info/dependency_links.txt +0 -0
  403. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph_flow.egg-info/entry_points.txt +0 -0
  404. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph_flow.egg-info/requires.txt +0 -0
  405. {trustgraph_flow-2.7.3 → trustgraph_flow-2.7.4}/trustgraph_flow.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trustgraph-flow
3
- Version: 2.7.3
3
+ Version: 2.7.4
4
4
  Summary: TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline.
5
5
  Author-email: "trustgraph.ai" <security@trustgraph.ai>
6
6
  Project-URL: Homepage, https://github.com/trustgraph-ai/trustgraph
@@ -0,0 +1 @@
1
+ __version__ = "2.7.4"
@@ -55,7 +55,10 @@ class Processor(LlmService):
55
55
  self.max_output = max_output
56
56
  self.default_model = model
57
57
 
58
- def build_prompt(self, system, content, temperature=None, stream=False, model=None):
58
+ def build_prompt(
59
+ self, system, content, temperature=None, stream=False,
60
+ model=None, response_format=None, schema=None,
61
+ ):
59
62
  # Use provided temperature or fall back to default
60
63
  effective_temperature = temperature if temperature is not None else self.temperature
61
64
  model_name = model or self.default_model
@@ -79,6 +82,17 @@ class Processor(LlmService):
79
82
  data["stream"] = True
80
83
  data["stream_options"] = {"include_usage": True}
81
84
 
85
+ if response_format == "json" and schema is not None:
86
+ data["response_format"] = {
87
+ "type": "json_schema",
88
+ "json_schema": {
89
+ "name": "response",
90
+ "schema": schema,
91
+ "strict": True,
92
+ },
93
+ }
94
+ logger.debug("Structured output enabled")
95
+
82
96
  body = json.dumps(data)
83
97
 
84
98
  return body
@@ -109,7 +123,10 @@ class Processor(LlmService):
109
123
 
110
124
  return result
111
125
 
112
- async def generate_content(self, system, prompt, model=None, temperature=None):
126
+ async def generate_content(
127
+ self, system, prompt, model=None, temperature=None,
128
+ response_format=None, schema=None,
129
+ ):
113
130
 
114
131
  # Use provided model or fall back to default
115
132
  model_name = model or self.default_model
@@ -125,7 +142,9 @@ class Processor(LlmService):
125
142
  system,
126
143
  prompt,
127
144
  effective_temperature,
128
- model=model_name
145
+ model=model_name,
146
+ response_format=response_format,
147
+ schema=schema,
129
148
  )
130
149
 
131
150
  response = self.call_llm(prompt)
@@ -169,7 +188,10 @@ class Processor(LlmService):
169
188
  """Azure serverless endpoints support streaming"""
170
189
  return True
171
190
 
172
- async def generate_content_stream(self, system, prompt, model=None, temperature=None):
191
+ async def generate_content_stream(
192
+ self, system, prompt, model=None, temperature=None,
193
+ response_format=None, schema=None,
194
+ ):
173
195
  """Stream content generation from Azure serverless endpoint"""
174
196
  model_name = model or self.default_model
175
197
  effective_temperature = temperature if temperature is not None else self.temperature
@@ -178,7 +200,11 @@ class Processor(LlmService):
178
200
  logger.debug(f"Using temperature: {effective_temperature}")
179
201
 
180
202
  try:
181
- body = self.build_prompt(system, prompt, effective_temperature, stream=True, model=model_name)
203
+ body = self.build_prompt(
204
+ system, prompt, effective_temperature, stream=True,
205
+ model=model_name, response_format=response_format,
206
+ schema=schema,
207
+ )
182
208
 
183
209
  url = self.endpoint
184
210
  api_key = self.token
@@ -62,7 +62,10 @@ class Processor(LlmService):
62
62
  azure_endpoint = endpoint,
63
63
  )
64
64
 
65
- async def generate_content(self, system, prompt, model=None, temperature=None):
65
+ async def generate_content(
66
+ self, system, prompt, model=None, temperature=None,
67
+ response_format=None, schema=None,
68
+ ):
66
69
 
67
70
  # Use provided model or fall back to default
68
71
  model_name = model or self.default_model
@@ -76,6 +79,18 @@ class Processor(LlmService):
76
79
 
77
80
  try:
78
81
 
82
+ kwargs = {}
83
+ if response_format == "json" and schema is not None:
84
+ kwargs["response_format"] = {
85
+ "type": "json_schema",
86
+ "json_schema": {
87
+ "name": "response",
88
+ "schema": schema,
89
+ "strict": True,
90
+ },
91
+ }
92
+ logger.debug("Structured output enabled")
93
+
79
94
  resp = self.openai.chat.completions.create(
80
95
  model=model_name,
81
96
  messages=[
@@ -92,6 +107,7 @@ class Processor(LlmService):
92
107
  temperature=effective_temperature,
93
108
  max_completion_tokens=self.max_output,
94
109
  top_p=1,
110
+ **kwargs,
95
111
  )
96
112
 
97
113
  inputtokens = resp.usage.prompt_tokens
@@ -129,7 +145,10 @@ class Processor(LlmService):
129
145
  """Azure OpenAI supports streaming"""
130
146
  return True
131
147
 
132
- async def generate_content_stream(self, system, prompt, model=None, temperature=None):
148
+ async def generate_content_stream(
149
+ self, system, prompt, model=None, temperature=None,
150
+ response_format=None, schema=None,
151
+ ):
133
152
  """
134
153
  Stream content generation from Azure OpenAI.
135
154
  Yields LlmChunk objects with is_final=True on the last chunk.
@@ -48,7 +48,10 @@ class Processor(LlmService):
48
48
 
49
49
  logger.info("Claude LLM service initialized")
50
50
 
51
- async def generate_content(self, system, prompt, model=None, temperature=None):
51
+ async def generate_content(
52
+ self, system, prompt, model=None, temperature=None,
53
+ response_format=None, schema=None,
54
+ ):
52
55
 
53
56
  # Use provided model or fall back to default
54
57
  model_name = model or self.default_model
@@ -60,11 +63,27 @@ class Processor(LlmService):
60
63
 
61
64
  try:
62
65
 
66
+ kwargs = {}
67
+ use_tool_extract = False
68
+
69
+ if response_format == "json" and schema is not None:
70
+ kwargs["tools"] = [{
71
+ "name": "structured_response",
72
+ "description": "Return the structured response",
73
+ "input_schema": schema,
74
+ }]
75
+ kwargs["tool_choice"] = {
76
+ "type": "tool",
77
+ "name": "structured_response",
78
+ }
79
+ use_tool_extract = True
80
+ logger.debug("Structured output enabled (tool-use)")
81
+
63
82
  response = message = self.claude.messages.create(
64
83
  model=model_name,
65
84
  max_tokens=self.max_output,
66
85
  temperature=effective_temperature,
67
- system = system,
86
+ system=system,
68
87
  messages=[
69
88
  {
70
89
  "role": "user",
@@ -75,10 +94,22 @@ class Processor(LlmService):
75
94
  }
76
95
  ]
77
96
  }
78
- ]
97
+ ],
98
+ **kwargs,
79
99
  )
80
100
 
81
- resp = response.content[0].text
101
+ if use_tool_extract:
102
+ import json
103
+ tool_block = next(
104
+ (b for b in response.content if b.type == "tool_use"),
105
+ None,
106
+ )
107
+ if tool_block:
108
+ resp = json.dumps(tool_block.input)
109
+ else:
110
+ resp = response.content[0].text
111
+ else:
112
+ resp = response.content[0].text
82
113
  inputtokens = response.usage.input_tokens
83
114
  outputtokens = response.usage.output_tokens
84
115
  logger.debug(f"LLM response: {resp}")
@@ -110,7 +141,10 @@ class Processor(LlmService):
110
141
  """Claude/Anthropic supports streaming"""
111
142
  return True
112
143
 
113
- async def generate_content_stream(self, system, prompt, model=None, temperature=None):
144
+ async def generate_content_stream(
145
+ self, system, prompt, model=None, temperature=None,
146
+ response_format=None, schema=None,
147
+ ):
114
148
  """Stream content generation from Claude"""
115
149
  model_name = model or self.default_model
116
150
  effective_temperature = temperature if temperature is not None else self.temperature
@@ -46,7 +46,10 @@ class Processor(LlmService):
46
46
 
47
47
  logger.info("Cohere LLM service initialized")
48
48
 
49
- async def generate_content(self, system, prompt, model=None, temperature=None):
49
+ async def generate_content(
50
+ self, system, prompt, model=None, temperature=None,
51
+ response_format=None, schema=None,
52
+ ):
50
53
 
51
54
  # Use provided model or fall back to default
52
55
  model_name = model or self.default_model
@@ -104,7 +107,10 @@ class Processor(LlmService):
104
107
  """Cohere supports streaming"""
105
108
  return True
106
109
 
107
- async def generate_content_stream(self, system, prompt, model=None, temperature=None):
110
+ async def generate_content_stream(
111
+ self, system, prompt, model=None, temperature=None,
112
+ response_format=None, schema=None,
113
+ ):
108
114
  """Stream content generation from Cohere"""
109
115
  model_name = model or self.default_model
110
116
  effective_temperature = temperature if temperature is not None else self.temperature
@@ -50,7 +50,10 @@ class Processor(LlmService):
50
50
 
51
51
  logger.info("Llamafile LLM service initialized")
52
52
 
53
- async def generate_content(self, system, prompt, model=None, temperature=None):
53
+ async def generate_content(
54
+ self, system, prompt, model=None, temperature=None,
55
+ response_format=None, schema=None,
56
+ ):
54
57
 
55
58
  # Use provided model or fall back to default
56
59
  model_name = model or self.default_model
@@ -64,6 +67,18 @@ class Processor(LlmService):
64
67
 
65
68
  try:
66
69
 
70
+ if response_format == "json" and schema is not None:
71
+ fmt = {
72
+ "type": "json_schema",
73
+ "json_schema": {
74
+ "name": "response",
75
+ "schema": schema,
76
+ },
77
+ }
78
+ logger.debug("Structured output enabled")
79
+ else:
80
+ fmt = {"type": "text"}
81
+
67
82
  resp = self.openai.chat.completions.create(
68
83
  model=model_name,
69
84
  messages=[
@@ -74,9 +89,7 @@ class Processor(LlmService):
74
89
  top_p=1,
75
90
  frequency_penalty=0,
76
91
  presence_penalty=0,
77
- response_format={
78
- "type": "text"
79
- }
92
+ response_format=fmt,
80
93
  )
81
94
 
82
95
  inputtokens = resp.usage.prompt_tokens
@@ -106,7 +119,10 @@ class Processor(LlmService):
106
119
  """LlamaFile supports streaming"""
107
120
  return True
108
121
 
109
- async def generate_content_stream(self, system, prompt, model=None, temperature=None):
122
+ async def generate_content_stream(
123
+ self, system, prompt, model=None, temperature=None,
124
+ response_format=None, schema=None,
125
+ ):
110
126
  """Stream content generation from LlamaFile"""
111
127
  model_name = model or self.default_model
112
128
  effective_temperature = temperature if temperature is not None else self.temperature
@@ -117,6 +133,18 @@ class Processor(LlmService):
117
133
  prompt = system + "\n\n" + prompt
118
134
 
119
135
  try:
136
+ if response_format == "json" and schema is not None:
137
+ fmt = {
138
+ "type": "json_schema",
139
+ "json_schema": {
140
+ "name": "response",
141
+ "schema": schema,
142
+ },
143
+ }
144
+ logger.debug("Structured output enabled (streaming)")
145
+ else:
146
+ fmt = {"type": "text"}
147
+
120
148
  response = self.openai.chat.completions.create(
121
149
  model=model_name,
122
150
  messages=[{"role": "user", "content": prompt}],
@@ -125,7 +153,7 @@ class Processor(LlmService):
125
153
  top_p=1,
126
154
  frequency_penalty=0,
127
155
  presence_penalty=0,
128
- response_format={"type": "text"},
156
+ response_format=fmt,
129
157
  stream=True,
130
158
  stream_options={"include_usage": True}
131
159
  )
@@ -50,7 +50,10 @@ class Processor(LlmService):
50
50
 
51
51
  logger.info("LMStudio LLM service initialized")
52
52
 
53
- async def generate_content(self, system, prompt, model=None, temperature=None):
53
+ async def generate_content(
54
+ self, system, prompt, model=None, temperature=None,
55
+ response_format=None, schema=None,
56
+ ):
54
57
 
55
58
  # Use provided model or fall back to default
56
59
  model_name = model or self.default_model
@@ -66,6 +69,18 @@ class Processor(LlmService):
66
69
 
67
70
  logger.debug(f"Prompt: {prompt}")
68
71
 
72
+ if response_format == "json" and schema is not None:
73
+ fmt = {
74
+ "type": "json_schema",
75
+ "json_schema": {
76
+ "name": "response",
77
+ "schema": schema,
78
+ },
79
+ }
80
+ logger.debug("Structured output enabled")
81
+ else:
82
+ fmt = {"type": "text"}
83
+
69
84
  resp = self.openai.chat.completions.create(
70
85
  model=model_name,
71
86
  messages=[
@@ -76,9 +91,7 @@ class Processor(LlmService):
76
91
  top_p=1,
77
92
  frequency_penalty=0,
78
93
  presence_penalty=0,
79
- response_format={
80
- "type": "text"
81
- }
94
+ response_format=fmt,
82
95
  )
83
96
 
84
97
  logger.debug(f"Full response: {resp}")
@@ -110,7 +123,10 @@ class Processor(LlmService):
110
123
  """LM Studio supports streaming"""
111
124
  return True
112
125
 
113
- async def generate_content_stream(self, system, prompt, model=None, temperature=None):
126
+ async def generate_content_stream(
127
+ self, system, prompt, model=None, temperature=None,
128
+ response_format=None, schema=None,
129
+ ):
114
130
  """Stream content generation from LM Studio"""
115
131
  model_name = model or self.default_model
116
132
  effective_temperature = temperature if temperature is not None else self.temperature
@@ -121,6 +137,18 @@ class Processor(LlmService):
121
137
  prompt = system + "\n\n" + prompt
122
138
 
123
139
  try:
140
+ if response_format == "json" and schema is not None:
141
+ fmt = {
142
+ "type": "json_schema",
143
+ "json_schema": {
144
+ "name": "response",
145
+ "schema": schema,
146
+ },
147
+ }
148
+ logger.debug("Structured output enabled (streaming)")
149
+ else:
150
+ fmt = {"type": "text"}
151
+
124
152
  response = self.openai.chat.completions.create(
125
153
  model=model_name,
126
154
  messages=[{"role": "user", "content": prompt}],
@@ -129,7 +157,7 @@ class Processor(LlmService):
129
157
  top_p=1,
130
158
  frequency_penalty=0,
131
159
  presence_penalty=0,
132
- response_format={"type": "text"},
160
+ response_format=fmt,
133
161
  stream=True,
134
162
  stream_options={"include_usage": True}
135
163
  )
@@ -48,7 +48,10 @@ class Processor(LlmService):
48
48
 
49
49
  logger.info("Mistral LLM service initialized")
50
50
 
51
- async def generate_content(self, system, prompt, model=None, temperature=None):
51
+ async def generate_content(
52
+ self, system, prompt, model=None, temperature=None,
53
+ response_format=None, schema=None,
54
+ ):
52
55
 
53
56
  # Use provided model or fall back to default
54
57
  model_name = model or self.default_model
@@ -62,6 +65,19 @@ class Processor(LlmService):
62
65
 
63
66
  try:
64
67
 
68
+ if response_format == "json" and schema is not None:
69
+ fmt = {
70
+ "type": "json_schema",
71
+ "json_schema": {
72
+ "name": "response",
73
+ "schema": schema,
74
+ "strict": True,
75
+ },
76
+ }
77
+ logger.debug("Structured output enabled")
78
+ else:
79
+ fmt = {"type": "text"}
80
+
65
81
  resp = self.mistral.chat.complete(
66
82
  model=model_name,
67
83
  messages=[
@@ -80,9 +96,7 @@ class Processor(LlmService):
80
96
  top_p=1,
81
97
  frequency_penalty=0,
82
98
  presence_penalty=0,
83
- response_format={
84
- "type": "text"
85
- }
99
+ response_format=fmt,
86
100
  )
87
101
 
88
102
  inputtokens = resp.usage.prompt_tokens
@@ -120,7 +134,10 @@ class Processor(LlmService):
120
134
  """Mistral supports streaming"""
121
135
  return True
122
136
 
123
- async def generate_content_stream(self, system, prompt, model=None, temperature=None):
137
+ async def generate_content_stream(
138
+ self, system, prompt, model=None, temperature=None,
139
+ response_format=None, schema=None,
140
+ ):
124
141
  """Stream content generation from Mistral"""
125
142
  model_name = model or self.default_model
126
143
  effective_temperature = temperature if temperature is not None else self.temperature
@@ -131,6 +148,19 @@ class Processor(LlmService):
131
148
  prompt = system + "\n\n" + prompt
132
149
 
133
150
  try:
151
+ if response_format == "json" and schema is not None:
152
+ fmt = {
153
+ "type": "json_schema",
154
+ "json_schema": {
155
+ "name": "response",
156
+ "schema": schema,
157
+ "strict": True,
158
+ },
159
+ }
160
+ logger.debug("Structured output enabled (streaming)")
161
+ else:
162
+ fmt = {"type": "text"}
163
+
134
164
  stream = self.mistral.chat.stream(
135
165
  model=model_name,
136
166
  messages=[
@@ -149,7 +179,7 @@ class Processor(LlmService):
149
179
  top_p=1,
150
180
  frequency_penalty=0,
151
181
  presence_penalty=0,
152
- response_format={"type": "text"}
182
+ response_format=fmt,
153
183
  )
154
184
 
155
185
  total_input_tokens = 0
@@ -62,7 +62,10 @@ class Processor(LlmService):
62
62
  else:
63
63
  logger.warning(f"Failed to check Ollama model '{model_name}': {e}")
64
64
 
65
- async def generate_content(self, system, prompt, model=None, temperature=None):
65
+ async def generate_content(
66
+ self, system, prompt, model=None, temperature=None,
67
+ response_format=None, schema=None,
68
+ ):
66
69
 
67
70
  # Use provided model or fall back to default
68
71
  model_name = model or self.default_model
@@ -79,7 +82,12 @@ class Processor(LlmService):
79
82
 
80
83
  try:
81
84
 
82
- response = await self.llm.generate(model_name, prompt, options={'temperature': effective_temperature})
85
+ kwargs = {}
86
+ if response_format == "json" and schema is not None:
87
+ kwargs["format"] = schema
88
+ logger.debug("Structured output enabled")
89
+
90
+ response = await self.llm.generate(model_name, prompt, options={'temperature': effective_temperature}, **kwargs)
83
91
 
84
92
  response_text = response['response']
85
93
  logger.debug("Sending response...")
@@ -108,7 +116,10 @@ class Processor(LlmService):
108
116
  """Ollama supports streaming"""
109
117
  return True
110
118
 
111
- async def generate_content_stream(self, system, prompt, model=None, temperature=None):
119
+ async def generate_content_stream(
120
+ self, system, prompt, model=None, temperature=None,
121
+ response_format=None, schema=None,
122
+ ):
112
123
  """Stream content generation from Ollama"""
113
124
  model_name = model or self.default_model
114
125
 
@@ -123,11 +134,17 @@ class Processor(LlmService):
123
134
  prompt = system + "\n\n" + prompt
124
135
 
125
136
  try:
137
+ kwargs = {}
138
+ if response_format == "json" and schema is not None:
139
+ kwargs["format"] = schema
140
+ logger.debug("Structured output enabled (streaming)")
141
+
126
142
  stream = await self.llm.generate(
127
143
  model_name,
128
144
  prompt,
129
145
  options={'temperature': effective_temperature},
130
- stream=True
146
+ stream=True,
147
+ **kwargs,
131
148
  )
132
149
 
133
150
  total_input_tokens = 0
@@ -82,7 +82,10 @@ class Processor(LlmService):
82
82
  return self.variant.extract_content(message)
83
83
  return message.content
84
84
 
85
- async def generate_content(self, system, prompt, model=None, temperature=None):
85
+ async def generate_content(
86
+ self, system, prompt, model=None, temperature=None,
87
+ response_format=None, schema=None,
88
+ ):
86
89
 
87
90
  model_name = model or self.default_model
88
91
  effective_temperature = temperature if temperature is not None else self.temperature
@@ -96,6 +99,25 @@ class Processor(LlmService):
96
99
 
97
100
  api_kwargs = self._build_kwargs(model_name, effective_temperature)
98
101
 
102
+ if response_format == "json" and schema is not None:
103
+ is_top_level_array = schema.get("type") == "array"
104
+ if is_top_level_array and not self.variant.supports_top_level_array():
105
+ logger.debug(
106
+ "Variant %s does not support top-level array "
107
+ "schemas, falling back to free-text",
108
+ self.variant.name,
109
+ )
110
+ else:
111
+ api_kwargs["response_format"] = {
112
+ "type": "json_schema",
113
+ "json_schema": {
114
+ "name": "response",
115
+ "schema": schema,
116
+ "strict": True,
117
+ },
118
+ }
119
+ logger.debug("Structured output enabled")
120
+
99
121
  messages = [
100
122
  {
101
123
  "role": "user",
@@ -160,7 +182,10 @@ class Processor(LlmService):
160
182
  """OpenAI supports streaming"""
161
183
  return True
162
184
 
163
- async def generate_content_stream(self, system, prompt, model=None, temperature=None):
185
+ async def generate_content_stream(
186
+ self, system, prompt, model=None, temperature=None,
187
+ response_format=None, schema=None,
188
+ ):
164
189
  """
165
190
  Stream content generation from OpenAI.
166
191
  Yields LlmChunk objects with is_final=True on the last chunk.
@@ -176,6 +201,25 @@ class Processor(LlmService):
176
201
  try:
177
202
  api_kwargs = self._build_kwargs(model_name, effective_temperature)
178
203
 
204
+ if response_format == "json" and schema is not None:
205
+ is_top_level_array = schema.get("type") == "array"
206
+ if is_top_level_array and not self.variant.supports_top_level_array():
207
+ logger.debug(
208
+ "Variant %s does not support top-level array "
209
+ "schemas, falling back to free-text (streaming)",
210
+ self.variant.name,
211
+ )
212
+ else:
213
+ api_kwargs["response_format"] = {
214
+ "type": "json_schema",
215
+ "json_schema": {
216
+ "name": "response",
217
+ "schema": schema,
218
+ "strict": True,
219
+ },
220
+ }
221
+ logger.debug("Structured output enabled (streaming)")
222
+
179
223
  messages = [
180
224
  {
181
225
  "role": "user",
@@ -62,6 +62,10 @@ class Variant:
62
62
  """Extract thinking content from a streaming delta."""
63
63
  return getattr(delta, "reasoning_content", None)
64
64
 
65
+ def supports_top_level_array(self):
66
+ """Whether this provider accepts a top-level array JSON schema."""
67
+ return True
68
+
65
69
  def create_completion(self, client, model, messages, **kwargs):
66
70
  """Call the completions API. Override for non-standard SDKs."""
67
71
  return client.chat.completions.create(
@@ -84,6 +88,9 @@ class OpenAIVariant(Variant):
84
88
  token_param = "max_completion_tokens"
85
89
  temperature_with_thinking = False
86
90
 
91
+ def supports_top_level_array(self):
92
+ return False
93
+
87
94
  def thinking_kwargs(self, effort):
88
95
  return {"reasoning_effort": effort}
89
96
 
@@ -195,6 +202,12 @@ class LlamaVariant(Variant):
195
202
  return re.sub(r"<think>.*?</think>", "", content, flags=re.DOTALL).strip()
196
203
 
197
204
 
205
+ class VllmVariant(LlamaVariant):
206
+ """vLLM via OpenAI-compatible API. Supports full structured output."""
207
+
208
+ name = "vllm"
209
+
210
+
198
211
  VARIANTS = {
199
212
  "openai": OpenAIVariant,
200
213
  "deepseek": DeepSeekVariant,
@@ -203,6 +216,7 @@ VARIANTS = {
203
216
  "dashscope": DashScopeVariant,
204
217
  "glm": GlmVariant,
205
218
  "llama": LlamaVariant,
219
+ "vllm": VllmVariant,
206
220
  }
207
221
 
208
222
  DEFAULT_VARIANT = "openai"