trustgraph-flow 0.21.3__tar.gz → 0.21.5__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 (283) hide show
  1. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/PKG-INFO +2 -2
  2. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/document_rag.py +12 -7
  3. trustgraph-flow-0.21.5/trustgraph/flow_version.py +1 -0
  4. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/document_rag.py +1 -0
  5. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/graph_rag.py +4 -0
  6. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/librarian.py +4 -1
  7. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/serialize.py +28 -5
  8. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/graph_rag.py +73 -50
  9. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/librarian/librarian.py +18 -4
  10. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/librarian/service.py +22 -7
  11. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/librarian/table_store.py +86 -7
  12. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/retrieval/document_rag/rag.py +17 -1
  13. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/retrieval/graph_rag/rag.py +48 -13
  14. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph_flow.egg-info/PKG-INFO +2 -2
  15. trustgraph-flow-0.21.3/trustgraph/flow_version.py +0 -1
  16. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/README.md +0 -0
  17. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/agent-manager-react +0 -0
  18. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/api-gateway +0 -0
  19. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/chunker-recursive +0 -0
  20. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/chunker-token +0 -0
  21. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/de-query-milvus +0 -0
  22. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/de-query-pinecone +0 -0
  23. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/de-query-qdrant +0 -0
  24. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/de-write-milvus +0 -0
  25. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/de-write-pinecone +0 -0
  26. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/de-write-qdrant +0 -0
  27. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/document-embeddings +0 -0
  28. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/document-rag +0 -0
  29. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/embeddings-fastembed +0 -0
  30. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/embeddings-ollama +0 -0
  31. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/ge-query-milvus +0 -0
  32. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/ge-query-pinecone +0 -0
  33. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/ge-query-qdrant +0 -0
  34. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/ge-write-milvus +0 -0
  35. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/ge-write-pinecone +0 -0
  36. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/ge-write-qdrant +0 -0
  37. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/graph-embeddings +0 -0
  38. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/graph-rag +0 -0
  39. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/kg-extract-definitions +0 -0
  40. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/kg-extract-relationships +0 -0
  41. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/kg-extract-topics +0 -0
  42. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/librarian +0 -0
  43. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/metering +0 -0
  44. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/object-extract-row +0 -0
  45. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/oe-write-milvus +0 -0
  46. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/pdf-decoder +0 -0
  47. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/prompt-generic +0 -0
  48. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/prompt-template +0 -0
  49. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/rows-write-cassandra +0 -0
  50. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/run-processing +0 -0
  51. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/text-completion-azure +0 -0
  52. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/text-completion-azure-openai +0 -0
  53. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/text-completion-claude +0 -0
  54. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/text-completion-cohere +0 -0
  55. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/text-completion-googleaistudio +0 -0
  56. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/text-completion-llamafile +0 -0
  57. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/text-completion-ollama +0 -0
  58. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/text-completion-openai +0 -0
  59. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/triples-query-cassandra +0 -0
  60. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/triples-query-falkordb +0 -0
  61. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/triples-query-memgraph +0 -0
  62. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/triples-query-neo4j +0 -0
  63. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/triples-write-cassandra +0 -0
  64. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/triples-write-falkordb +0 -0
  65. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/triples-write-memgraph +0 -0
  66. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/triples-write-neo4j +0 -0
  67. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/scripts/wikipedia-lookup +0 -0
  68. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/setup.cfg +0 -0
  69. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/setup.py +0 -0
  70. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/__init__.py +0 -0
  71. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/agent/__init__.py +0 -0
  72. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/agent/react/__init__.py +0 -0
  73. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/agent/react/__main__.py +0 -0
  74. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/agent/react/agent_manager.py +0 -0
  75. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/agent/react/service.py +0 -0
  76. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/agent/react/tools.py +0 -0
  77. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/agent/react/types.py +0 -0
  78. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/chunking/__init__.py +0 -0
  79. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/chunking/recursive/__init__.py +0 -0
  80. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/chunking/recursive/__main__.py +0 -0
  81. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/chunking/recursive/chunker.py +0 -0
  82. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/chunking/token/__init__.py +0 -0
  83. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/chunking/token/__main__.py +0 -0
  84. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/chunking/token/chunker.py +0 -0
  85. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/decoding/__init__.py +0 -0
  86. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/decoding/pdf/__init__.py +0 -0
  87. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/decoding/pdf/__main__.py +0 -0
  88. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/decoding/pdf/pdf_decoder.py +0 -0
  89. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/direct/__init__.py +0 -0
  90. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/direct/cassandra.py +0 -0
  91. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/direct/milvus_doc_embeddings.py +0 -0
  92. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/direct/milvus_graph_embeddings.py +0 -0
  93. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/direct/milvus_object_embeddings.py +0 -0
  94. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/embeddings/__init__.py +0 -0
  95. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/embeddings/document_embeddings/__init__.py +0 -0
  96. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/embeddings/document_embeddings/__main__.py +0 -0
  97. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/embeddings/document_embeddings/embeddings.py +0 -0
  98. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/embeddings/fastembed/__init__.py +0 -0
  99. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/embeddings/fastembed/__main__.py +0 -0
  100. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/embeddings/fastembed/processor.py +0 -0
  101. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/embeddings/graph_embeddings/__init__.py +0 -0
  102. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/embeddings/graph_embeddings/__main__.py +0 -0
  103. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/embeddings/graph_embeddings/embeddings.py +0 -0
  104. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/embeddings/ollama/__init__.py +0 -0
  105. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/embeddings/ollama/__main__.py +0 -0
  106. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/embeddings/ollama/processor.py +0 -0
  107. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/external/__init__.py +0 -0
  108. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/external/wikipedia/__init__.py +0 -0
  109. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/external/wikipedia/__main__.py +0 -0
  110. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/external/wikipedia/service.py +0 -0
  111. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/__init__.py +0 -0
  112. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/kg/__init__.py +0 -0
  113. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/kg/definitions/__init__.py +0 -0
  114. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/kg/definitions/__main__.py +0 -0
  115. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/kg/definitions/extract.py +0 -0
  116. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/kg/relationships/__init__.py +0 -0
  117. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/kg/relationships/__main__.py +0 -0
  118. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/kg/relationships/extract.py +0 -0
  119. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/kg/topics/__init__.py +0 -0
  120. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/kg/topics/__main__.py +0 -0
  121. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/kg/topics/extract.py +0 -0
  122. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/object/__init__.py +0 -0
  123. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/object/row/__init__.py +0 -0
  124. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/object/row/__main__.py +0 -0
  125. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/extract/object/row/extract.py +0 -0
  126. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/__init__.py +0 -0
  127. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/__main__.py +0 -0
  128. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/agent.py +0 -0
  129. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/auth.py +0 -0
  130. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/dbpedia.py +0 -0
  131. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/document_embeddings_load.py +0 -0
  132. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/document_embeddings_stream.py +0 -0
  133. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/document_load.py +0 -0
  134. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/embeddings.py +0 -0
  135. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/encyclopedia.py +0 -0
  136. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/endpoint.py +0 -0
  137. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/graph_embeddings_load.py +0 -0
  138. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/graph_embeddings_query.py +0 -0
  139. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/graph_embeddings_stream.py +0 -0
  140. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/internet_search.py +0 -0
  141. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/metrics.py +0 -0
  142. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/mux.py +0 -0
  143. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/prompt.py +0 -0
  144. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/requestor.py +0 -0
  145. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/running.py +0 -0
  146. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/sender.py +0 -0
  147. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/service.py +0 -0
  148. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/socket.py +0 -0
  149. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/text_completion.py +0 -0
  150. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/text_load.py +0 -0
  151. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/triples_load.py +0 -0
  152. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/triples_query.py +0 -0
  153. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/gateway/triples_stream.py +0 -0
  154. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/librarian/__init__.py +0 -0
  155. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/librarian/__main__.py +0 -0
  156. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/librarian/blob_store.py +0 -0
  157. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/metering/__init__.py +0 -0
  158. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/metering/__main__.py +0 -0
  159. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/metering/counter.py +0 -0
  160. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/metering/pricelist.py +0 -0
  161. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/__init__.py +0 -0
  162. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/prompt/__init__.py +0 -0
  163. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/prompt/generic/__init__.py +0 -0
  164. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/prompt/generic/__main__.py +0 -0
  165. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/prompt/generic/prompts.py +0 -0
  166. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/prompt/generic/service.py +0 -0
  167. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/prompt/template/__init__.py +0 -0
  168. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/prompt/template/__main__.py +0 -0
  169. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/prompt/template/prompt_manager.py +0 -0
  170. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/prompt/template/service.py +0 -0
  171. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/__init__.py +0 -0
  172. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/azure/__init__.py +0 -0
  173. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/azure/__main__.py +0 -0
  174. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/azure/llm.py +0 -0
  175. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/azure_openai/__init__.py +0 -0
  176. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/azure_openai/__main__.py +0 -0
  177. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/azure_openai/llm.py +0 -0
  178. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/claude/__init__.py +0 -0
  179. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/claude/__main__.py +0 -0
  180. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/claude/llm.py +0 -0
  181. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/cohere/__init__.py +0 -0
  182. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/cohere/__main__.py +0 -0
  183. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/cohere/llm.py +0 -0
  184. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/googleaistudio/__init__.py +0 -0
  185. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/googleaistudio/__main__.py +0 -0
  186. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/googleaistudio/llm.py +0 -0
  187. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/llamafile/__init__.py +0 -0
  188. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/llamafile/__main__.py +0 -0
  189. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/llamafile/llm.py +0 -0
  190. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/ollama/__init__.py +0 -0
  191. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/ollama/__main__.py +0 -0
  192. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/ollama/llm.py +0 -0
  193. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/openai/__init__.py +0 -0
  194. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/openai/__main__.py +0 -0
  195. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/model/text_completion/openai/llm.py +0 -0
  196. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/processing/__init__.py +0 -0
  197. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/processing/__main__.py +0 -0
  198. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/processing/processing.py +0 -0
  199. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/__init__.py +0 -0
  200. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/doc_embeddings/__init__.py +0 -0
  201. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/doc_embeddings/milvus/__init__.py +0 -0
  202. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/doc_embeddings/milvus/__main__.py +0 -0
  203. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/doc_embeddings/milvus/service.py +0 -0
  204. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/doc_embeddings/pinecone/__init__.py +0 -0
  205. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/doc_embeddings/pinecone/__main__.py +0 -0
  206. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/doc_embeddings/pinecone/service.py +0 -0
  207. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/doc_embeddings/qdrant/__init__.py +0 -0
  208. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/doc_embeddings/qdrant/__main__.py +0 -0
  209. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/doc_embeddings/qdrant/service.py +0 -0
  210. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/graph_embeddings/__init__.py +0 -0
  211. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/graph_embeddings/milvus/__init__.py +0 -0
  212. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/graph_embeddings/milvus/__main__.py +0 -0
  213. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/graph_embeddings/milvus/service.py +0 -0
  214. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/graph_embeddings/pinecone/__init__.py +0 -0
  215. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/graph_embeddings/pinecone/__main__.py +0 -0
  216. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/graph_embeddings/pinecone/service.py +0 -0
  217. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/graph_embeddings/qdrant/__init__.py +0 -0
  218. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/graph_embeddings/qdrant/__main__.py +0 -0
  219. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/graph_embeddings/qdrant/service.py +0 -0
  220. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/triples/__init__.py +0 -0
  221. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/triples/cassandra/__init__.py +0 -0
  222. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/triples/cassandra/__main__.py +0 -0
  223. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/triples/cassandra/service.py +0 -0
  224. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/triples/falkordb/__init__.py +0 -0
  225. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/triples/falkordb/__main__.py +0 -0
  226. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/triples/falkordb/service.py +0 -0
  227. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/triples/memgraph/__init__.py +0 -0
  228. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/triples/memgraph/__main__.py +0 -0
  229. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/triples/memgraph/service.py +0 -0
  230. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/triples/neo4j/__init__.py +0 -0
  231. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/triples/neo4j/__main__.py +0 -0
  232. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/query/triples/neo4j/service.py +0 -0
  233. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/retrieval/__init__.py +0 -0
  234. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/retrieval/document_rag/__init__.py +0 -0
  235. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/retrieval/document_rag/__main__.py +0 -0
  236. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/retrieval/graph_rag/__init__.py +0 -0
  237. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/retrieval/graph_rag/__main__.py +0 -0
  238. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/__init__.py +0 -0
  239. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/doc_embeddings/__init__.py +0 -0
  240. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/doc_embeddings/milvus/__init__.py +0 -0
  241. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/doc_embeddings/milvus/__main__.py +0 -0
  242. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/doc_embeddings/milvus/write.py +0 -0
  243. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/doc_embeddings/pinecone/__init__.py +0 -0
  244. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/doc_embeddings/pinecone/__main__.py +0 -0
  245. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/doc_embeddings/pinecone/write.py +0 -0
  246. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/doc_embeddings/qdrant/__init__.py +0 -0
  247. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/doc_embeddings/qdrant/__main__.py +0 -0
  248. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/doc_embeddings/qdrant/write.py +0 -0
  249. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/graph_embeddings/__init__.py +0 -0
  250. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/graph_embeddings/milvus/__init__.py +0 -0
  251. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/graph_embeddings/milvus/__main__.py +0 -0
  252. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/graph_embeddings/milvus/write.py +0 -0
  253. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/graph_embeddings/pinecone/__init__.py +0 -0
  254. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/graph_embeddings/pinecone/__main__.py +0 -0
  255. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/graph_embeddings/pinecone/write.py +0 -0
  256. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/graph_embeddings/qdrant/__init__.py +0 -0
  257. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/graph_embeddings/qdrant/__main__.py +0 -0
  258. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/graph_embeddings/qdrant/write.py +0 -0
  259. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/object_embeddings/__init__.py +0 -0
  260. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/object_embeddings/milvus/__init__.py +0 -0
  261. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/object_embeddings/milvus/__main__.py +0 -0
  262. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/object_embeddings/milvus/write.py +0 -0
  263. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/rows/__init__.py +0 -0
  264. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/rows/cassandra/__init__.py +0 -0
  265. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/rows/cassandra/__main__.py +0 -0
  266. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/rows/cassandra/write.py +0 -0
  267. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/triples/__init__.py +0 -0
  268. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/triples/cassandra/__init__.py +0 -0
  269. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/triples/cassandra/__main__.py +0 -0
  270. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/triples/cassandra/write.py +0 -0
  271. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/triples/falkordb/__init__.py +0 -0
  272. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/triples/falkordb/__main__.py +0 -0
  273. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/triples/falkordb/write.py +0 -0
  274. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/triples/memgraph/__init__.py +0 -0
  275. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/triples/memgraph/__main__.py +0 -0
  276. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/triples/memgraph/write.py +0 -0
  277. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/triples/neo4j/__init__.py +0 -0
  278. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/triples/neo4j/__main__.py +0 -0
  279. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph/storage/triples/neo4j/write.py +0 -0
  280. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph_flow.egg-info/SOURCES.txt +0 -0
  281. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph_flow.egg-info/dependency_links.txt +0 -0
  282. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph_flow.egg-info/requires.txt +0 -0
  283. {trustgraph-flow-0.21.3 → trustgraph-flow-0.21.5}/trustgraph_flow.egg-info/top_level.txt +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: trustgraph-flow
3
- Version: 0.21.3
3
+ Version: 0.21.5
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
  Home-page: https://github.com/trustgraph-ai/trustgraph
6
- Download-URL: https://github.com/trustgraph-ai/trustgraph/archive/refs/tags/v0.21.3.tar.gz
6
+ Download-URL: https://github.com/trustgraph-ai/trustgraph/archive/refs/tags/v0.21.5.tar.gz
7
7
  Author: trustgraph.ai
8
8
  Author-email: security@trustgraph.ai
9
9
  Classifier: Programming Language :: Python :: 3
@@ -18,11 +18,15 @@ DEFINITION="http://www.w3.org/2004/02/skos/core#definition"
18
18
 
19
19
  class Query:
20
20
 
21
- def __init__(self, rag, user, collection, verbose):
21
+ def __init__(
22
+ self, rag, user, collection, verbose,
23
+ doc_limit=20
24
+ ):
22
25
  self.rag = rag
23
26
  self.user = user
24
27
  self.collection = collection
25
28
  self.verbose = verbose
29
+ self.doc_limit = doc_limit
26
30
 
27
31
  def get_vector(self, query):
28
32
 
@@ -44,7 +48,7 @@ class Query:
44
48
  print("Get entities...", flush=True)
45
49
 
46
50
  docs = self.rag.de_client.request(
47
- vectors, limit=self.rag.doc_limit
51
+ vectors, limit=self.doc_limit
48
52
  )
49
53
 
50
54
  if self.verbose:
@@ -93,9 +97,6 @@ class DocumentRag:
93
97
  if self.verbose:
94
98
  print("Initialising...", flush=True)
95
99
 
96
- # FIXME: Configurable
97
- self.doc_limit = 20
98
-
99
100
  self.de_client = DocumentEmbeddingsClient(
100
101
  pulsar_host=pulsar_host,
101
102
  subscriber=module + "-de",
@@ -123,13 +124,17 @@ class DocumentRag:
123
124
  if self.verbose:
124
125
  print("Initialised", flush=True)
125
126
 
126
- def query(self, query, user="trustgraph", collection="default"):
127
+ def query(
128
+ self, query, user="trustgraph", collection="default",
129
+ doc_limit=20,
130
+ ):
127
131
 
128
132
  if self.verbose:
129
133
  print("Construct prompt...", flush=True)
130
134
 
131
135
  q = Query(
132
- rag=self, user=user, collection=collection, verbose=self.verbose
136
+ rag=self, user=user, collection=collection, verbose=self.verbose,
137
+ doc_limit=doc_limit
133
138
  )
134
139
 
135
140
  docs = q.get_docs(query)
@@ -0,0 +1 @@
1
+ __version__ = "0.21.5"
@@ -23,6 +23,7 @@ class DocumentRagRequestor(ServiceRequestor):
23
23
  query=body["query"],
24
24
  user=body.get("user", "trustgraph"),
25
25
  collection=body.get("collection", "default"),
26
+ doc_limit=int(body.get("doc-limit", 20)),
26
27
  )
27
28
 
28
29
  def from_response(self, message):
@@ -23,6 +23,10 @@ class GraphRagRequestor(ServiceRequestor):
23
23
  query=body["query"],
24
24
  user=body.get("user", "trustgraph"),
25
25
  collection=body.get("collection", "default"),
26
+ entity_limit=int(body.get("entity-limit", 50)),
27
+ triple_limit=int(body.get("triple-limit", 30)),
28
+ max_subgraph_size=int(body.get("max-subgraph-size", 1000)),
29
+ max_path_length=int(body.get("max-path-length", 2)),
26
30
  )
27
31
 
28
32
  def from_response(self, message):
@@ -53,7 +53,10 @@ class LibrarianRequestor(ServiceRequestor):
53
53
  response["document"] = serialize_document_package(message.document)
54
54
 
55
55
  if message.info:
56
- response["info"] = serialize_document_info(message.info)
56
+ response["info"] = [
57
+ serialize_document_info(v)
58
+ for v in message.info
59
+ ]
57
60
 
58
61
  return response, True
59
62
 
@@ -84,6 +84,9 @@ def serialize_document_package(message):
84
84
 
85
85
  ret = {}
86
86
 
87
+ if message.id:
88
+ ret["id"] = message.id
89
+
87
90
  if message.metadata:
88
91
  ret["metadata"] = serialize_subgraph(message.metdata)
89
92
 
@@ -108,8 +111,8 @@ def serialize_document_info(message):
108
111
 
109
112
  ret = {}
110
113
 
111
- if message.metadata:
112
- ret["metadata"] = serialize_subgraph(message.metdata)
114
+ if message.id:
115
+ ret["id"] = message.id
113
116
 
114
117
  if message.kind:
115
118
  ret["kind"] = message.kind
@@ -120,25 +123,45 @@ def serialize_document_info(message):
120
123
  if message.collection:
121
124
  ret["collection"] = message.collection
122
125
 
126
+ if message.title:
127
+ ret["title"] = message.title
128
+
129
+ if message.comments:
130
+ ret["comments"] = message.comments
131
+
132
+ if message.time:
133
+ ret["time"] = message.time
134
+
135
+ if message.metadata:
136
+ ret["metadata"] = serialize_subgraph(message.metadata)
137
+
123
138
  return ret
124
139
 
125
140
  def to_document_package(x):
126
141
 
127
142
  return DocumentPackage(
128
- metadata = to_subgraph(x["metadata"]),
129
- document = x.get("document", None),
143
+ id = x.get("id", None),
130
144
  kind = x.get("kind", None),
131
145
  user = x.get("user", None),
132
146
  collection = x.get("collection", None),
147
+ title = x.get("title", None),
148
+ comments = x.get("comments", None),
149
+ time = x.get("time", None),
150
+ document = x.get("document", None),
151
+ metadata = to_subgraph(x["metadata"]),
133
152
  )
134
153
 
135
154
  def to_document_info(x):
136
155
 
137
156
  return DocumentInfo(
138
- metadata = to_subgraph(x["metadata"]),
157
+ id = x.get("id", None),
139
158
  kind = x.get("kind", None),
140
159
  user = x.get("user", None),
141
160
  collection = x.get("collection", None),
161
+ title = x.get("title", None),
162
+ comments = x.get("comments", None),
163
+ time = x.get("time", None),
164
+ metadata = to_subgraph(x["metadata"]),
142
165
  )
143
166
 
144
167
  def to_criteria(x):
@@ -20,11 +20,19 @@ DEFINITION="http://www.w3.org/2004/02/skos/core#definition"
20
20
 
21
21
  class Query:
22
22
 
23
- def __init__(self, rag, user, collection, verbose):
23
+ def __init__(
24
+ self, rag, user, collection, verbose,
25
+ entity_limit=50, triple_limit=30, max_subgraph_size=1000,
26
+ max_path_length=2,
27
+ ):
24
28
  self.rag = rag
25
29
  self.user = user
26
30
  self.collection = collection
27
31
  self.verbose = verbose
32
+ self.entity_limit = entity_limit
33
+ self.triple_limit = triple_limit
34
+ self.max_subgraph_size = max_subgraph_size
35
+ self.max_path_length = max_path_length
28
36
 
29
37
  def get_vector(self, query):
30
38
 
@@ -47,7 +55,7 @@ class Query:
47
55
 
48
56
  entities = self.rag.ge_client.request(
49
57
  user=self.user, collection=self.collection,
50
- vectors=vectors, limit=self.rag.entity_limit,
58
+ vectors=vectors, limit=self.entity_limit,
51
59
  )
52
60
 
53
61
  entities = [
@@ -79,61 +87,66 @@ class Query:
79
87
  self.rag.label_cache[e] = res[0].o.value
80
88
  return self.rag.label_cache[e]
81
89
 
82
- def get_subgraph(self, query):
83
-
84
- entities = self.get_entities(query)
90
+ def follow_edges(self, ent, subgraph, path_length):
85
91
 
86
- subgraph = set()
92
+ # Not needed?
93
+ if path_length <= 0:
94
+ return
87
95
 
88
- if self.verbose:
89
- print("Get subgraph...", flush=True)
96
+ # Stop spanning around if the subgraph is already maxed out
97
+ if len(subgraph) >= self.max_subgraph_size:
98
+ return
90
99
 
91
- for e in entities:
100
+ res = self.rag.triples_client.request(
101
+ user=self.user, collection=self.collection,
102
+ s=ent, p=None, o=None,
103
+ limit=self.triple_limit
104
+ )
92
105
 
93
- res = self.rag.triples_client.request(
94
- user=self.user, collection=self.collection,
95
- s=e, p=None, o=None,
96
- limit=self.rag.query_limit
106
+ for triple in res:
107
+ subgraph.add(
108
+ (triple.s.value, triple.p.value, triple.o.value)
97
109
  )
110
+ if path_length > 1:
111
+ self.follow_edges(triple.o.value, subgraph, path_length-1)
98
112
 
99
- for triple in res:
100
- subgraph.add(
101
- (triple.s.value, triple.p.value, triple.o.value)
102
- )
113
+ res = self.rag.triples_client.request(
114
+ user=self.user, collection=self.collection,
115
+ s=None, p=ent, o=None,
116
+ limit=self.triple_limit
117
+ )
103
118
 
104
- res = self.rag.triples_client.request(
105
- user=self.user, collection=self.collection,
106
- s=None, p=e, o=None,
107
- limit=self.rag.query_limit
119
+ for triple in res:
120
+ subgraph.add(
121
+ (triple.s.value, triple.p.value, triple.o.value)
108
122
  )
109
123
 
110
- for triple in res:
111
- subgraph.add(
112
- (triple.s.value, triple.p.value, triple.o.value)
113
- )
124
+ res = self.rag.triples_client.request(
125
+ user=self.user, collection=self.collection,
126
+ s=None, p=None, o=ent,
127
+ limit=self.triple_limit,
128
+ )
114
129
 
115
- res = self.rag.triples_client.request(
116
- user=self.user, collection=self.collection,
117
- s=None, p=None, o=e,
118
- limit=self.rag.query_limit,
130
+ for triple in res:
131
+ subgraph.add(
132
+ (triple.s.value, triple.p.value, triple.o.value)
119
133
  )
134
+ if path_length > 1:
135
+ self.follow_edges(triple.s.value, subgraph, path_length-1)
120
136
 
121
- for triple in res:
122
- subgraph.add(
123
- (triple.s.value, triple.p.value, triple.o.value)
124
- )
125
-
126
- subgraph = list(subgraph)
137
+ def get_subgraph(self, query):
127
138
 
128
- subgraph = subgraph[0:self.rag.max_subgraph_size]
139
+ entities = self.get_entities(query)
129
140
 
130
141
  if self.verbose:
131
- print("Subgraph:", flush=True)
132
- for edge in subgraph:
133
- print(" ", str(edge), flush=True)
142
+ print("Get subgraph...", flush=True)
134
143
 
135
- if self.verbose:
136
- print("Done.", flush=True)
144
+ subgraph = set()
145
+
146
+ for ent in entities:
147
+ self.follow_edges(ent, subgraph, self.max_path_length)
148
+
149
+ subgraph = list(subgraph)
137
150
 
138
151
  return subgraph
139
152
 
@@ -154,6 +167,16 @@ class Query:
154
167
 
155
168
  sg2.append((s, p, o))
156
169
 
170
+ sg2 = sg2[0:self.max_subgraph_size]
171
+
172
+ if self.verbose:
173
+ print("Subgraph:", flush=True)
174
+ for edge in sg2:
175
+ print(" ", str(edge), flush=True)
176
+
177
+ if self.verbose:
178
+ print("Done.", flush=True)
179
+
157
180
  return sg2
158
181
 
159
182
  class GraphRag:
@@ -171,9 +194,6 @@ class GraphRag:
171
194
  tpl_request_queue=None,
172
195
  tpl_response_queue=None,
173
196
  verbose=False,
174
- entity_limit=50,
175
- triple_limit=30,
176
- max_subgraph_size=3000,
177
197
  module="test",
178
198
  ):
179
199
 
@@ -230,10 +250,6 @@ class GraphRag:
230
250
  subscriber=module + "-emb",
231
251
  )
232
252
 
233
- self.entity_limit=entity_limit
234
- self.query_limit=triple_limit
235
- self.max_subgraph_size=max_subgraph_size
236
-
237
253
  self.label_cache = {}
238
254
 
239
255
  self.prompt = PromptClient(
@@ -247,13 +263,20 @@ class GraphRag:
247
263
  if self.verbose:
248
264
  print("Initialised", flush=True)
249
265
 
250
- def query(self, query, user="trustgraph", collection="default"):
266
+ def query(
267
+ self, query, user="trustgraph", collection="default",
268
+ entity_limit=50, triple_limit=30, max_subgraph_size=1000,
269
+ max_path_length=2,
270
+ ):
251
271
 
252
272
  if self.verbose:
253
273
  print("Construct prompt...", flush=True)
254
274
 
255
275
  q = Query(
256
- rag=self, user=user, collection=collection, verbose=self.verbose
276
+ rag=self, user=user, collection=collection, verbose=self.verbose,
277
+ entity_limit=entity_limit, triple_limit=triple_limit,
278
+ max_subgraph_size=max_subgraph_size,
279
+ max_path_length=max_path_length,
257
280
  )
258
281
 
259
282
  kg = q.get_labelgraph(query)
@@ -1,4 +1,4 @@
1
- from .. schema import LibrarianRequest, LibrarianResponse, Error
1
+ from .. schema import LibrarianRequest, LibrarianResponse, Error, Triple
2
2
  from .. knowledge import hash
3
3
  from .. exceptions import RequestError
4
4
  from . table_store import TableStore
@@ -26,7 +26,7 @@ class Librarian:
26
26
  self.load_document = load_document
27
27
  self.load_text = load_text
28
28
 
29
- async def add(self, id, document):
29
+ async def add(self, document):
30
30
 
31
31
  if document.kind not in (
32
32
  "text/plain", "application/pdf"
@@ -41,9 +41,9 @@ class Librarian:
41
41
  self.table_store.add(object_id, document)
42
42
 
43
43
  if document.kind == "application/pdf":
44
- await self.load_document(id, document)
44
+ await self.load_document(document)
45
45
  elif document.kind == "text/plain":
46
- await self.load_text(id, document)
46
+ await self.load_text(document)
47
47
 
48
48
  print("Add complete", flush=True)
49
49
 
@@ -53,6 +53,20 @@ class Librarian:
53
53
  info = None,
54
54
  )
55
55
 
56
+ async def list(self, user, collection):
57
+
58
+ print("list")
59
+
60
+ info = self.table_store.list(user, collection)
61
+
62
+ print(">>", info)
63
+
64
+ return LibrarianResponse(
65
+ error = None,
66
+ document = None,
67
+ info = info,
68
+ )
69
+
56
70
  def handle_triples(self, m):
57
71
  self.table_store.add_triples(m)
58
72
 
@@ -223,11 +223,11 @@ class Processor(ConsumerProducer):
223
223
 
224
224
  self.librarian.handle_document_embeddings(msg)
225
225
 
226
- async def load_document(self, id, document):
226
+ async def load_document(self, document):
227
227
 
228
228
  doc = Document(
229
229
  metadata = Metadata(
230
- id = id,
230
+ id = document.id,
231
231
  metadata = document.metadata,
232
232
  user = document.user,
233
233
  collection = document.collection
@@ -237,14 +237,14 @@ class Processor(ConsumerProducer):
237
237
 
238
238
  self.document_load.send(None, doc)
239
239
 
240
- async def load_text(self, id, document):
240
+ async def load_text(self, document):
241
241
 
242
242
  text = base64.b64decode(document.document)
243
243
  text = text.decode("utf-8")
244
244
 
245
245
  doc = TextDocument(
246
246
  metadata = Metadata(
247
- id = id,
247
+ id = document.id,
248
248
  metadata = document.metadata,
249
249
  user = document.user,
250
250
  collection = document.collection
@@ -259,19 +259,33 @@ class Processor(ConsumerProducer):
259
259
  if v.operation is None:
260
260
  raise RequestError("Null operation")
261
261
 
262
+ print("op", v.operation)
263
+
262
264
  if v.operation == "add":
263
265
  if (
264
- v.id and v.document and v.document.metadata and
266
+ v.document and v.document.id and v.document.metadata and
265
267
  v.document.document and v.document.kind
266
268
  ):
267
269
  return partial(
268
270
  self.librarian.add,
269
- id = v.id,
270
271
  document = v.document,
271
272
  )
272
273
  else:
273
274
  raise RequestError("Invalid call")
274
275
 
276
+ if v.operation == "list":
277
+ print("list", v)
278
+ print(v.user)
279
+ if v.user:
280
+ return partial(
281
+ self.librarian.list,
282
+ user = v.user,
283
+ collection = v.collection,
284
+ )
285
+ else:
286
+ print("BROK")
287
+ raise RequestError("Invalid call")
288
+
275
289
  raise RequestError("Invalid operation: " + v.operation)
276
290
 
277
291
  async def handle(self, msg):
@@ -298,6 +312,7 @@ class Processor(ConsumerProducer):
298
312
 
299
313
  try:
300
314
  resp = await func()
315
+ print("->", resp)
301
316
  except RequestError as e:
302
317
  resp = LibrarianResponse(
303
318
  error = Error(
@@ -318,7 +333,7 @@ class Processor(ConsumerProducer):
318
333
  await self.send(resp, properties={"id": id})
319
334
  return
320
335
 
321
- print("Send response...", flush=True)
336
+ print("Send response..!.", flush=True)
322
337
 
323
338
  await self.send(resp, properties={"id": id})
324
339
 
@@ -1,4 +1,5 @@
1
- from .. schema import LibrarianRequest, LibrarianResponse, Error
1
+ from .. schema import LibrarianRequest, LibrarianResponse
2
+ from .. schema import DocumentInfo, Error, Triple, Value
2
3
  from .. knowledge import hash
3
4
  from .. exceptions import RequestError
4
5
 
@@ -61,7 +62,7 @@ class TableStore:
61
62
  CREATE TABLE IF NOT EXISTS document (
62
63
  user text,
63
64
  collection text,
64
- id uuid,
65
+ id text,
65
66
  time timestamp,
66
67
  title text,
67
68
  comments text,
@@ -157,6 +158,20 @@ class TableStore:
157
158
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
158
159
  """)
159
160
 
161
+ self.list_document_stmt = self.cassandra.prepare("""
162
+ SELECT
163
+ id, kind, user, collection, title, comments, time, metadata
164
+ FROM document
165
+ WHERE user = ?
166
+ """)
167
+
168
+ self.list_document_by_collection_stmt = self.cassandra.prepare("""
169
+ SELECT
170
+ id, kind, user, collection, title, comments, time, metadata
171
+ FROM document
172
+ WHERE user = ? AND collection = ?
173
+ """)
174
+
160
175
  self.insert_triples_stmt = self.cassandra.prepare("""
161
176
  INSERT INTO triples
162
177
  (
@@ -192,10 +207,9 @@ class TableStore:
192
207
  raise RequestError("Invalid document kind: " + document.kind)
193
208
 
194
209
  # Create random doc ID
195
- doc_id = uuid.uuid4()
196
210
  when = int(time.time() * 1000)
197
211
 
198
- print("Adding", object_id, doc_id)
212
+ print("Adding", document.id, object_id)
199
213
 
200
214
  metadata = [
201
215
  (
@@ -205,8 +219,6 @@ class TableStore:
205
219
  for v in document.metadata
206
220
  ]
207
221
 
208
- # FIXME: doc_id should be the user-supplied ID???
209
-
210
222
  while True:
211
223
 
212
224
  try:
@@ -214,7 +226,7 @@ class TableStore:
214
226
  resp = self.cassandra.execute(
215
227
  self.insert_document_stmt,
216
228
  (
217
- doc_id, document.user, document.collection,
229
+ document.id, document.user, document.collection,
218
230
  document.kind, object_id, when,
219
231
  document.title, document.comments,
220
232
  metadata
@@ -275,6 +287,73 @@ class TableStore:
275
287
  print(f"{e}, retry...", flush=True)
276
288
  time.sleep(1)
277
289
 
290
+ def list(self, user, collection=None):
291
+
292
+ print("LIST")
293
+ while True:
294
+
295
+ print("TRY")
296
+
297
+ print(self.list_document_stmt)
298
+ try:
299
+
300
+ if collection:
301
+ resp = self.cassandra.execute(
302
+ self.list_document_by_collection_stmt,
303
+ (user, collection)
304
+ )
305
+ else:
306
+ resp = self.cassandra.execute(
307
+ self.list_document_stmt,
308
+ (user,)
309
+ )
310
+ break
311
+
312
+ print("OK")
313
+
314
+ except Exception as e:
315
+ print("Exception:", type(e))
316
+ print(f"{e}, retry...", flush=True)
317
+ time.sleep(1)
318
+
319
+ print("OK2")
320
+
321
+ info = [
322
+ DocumentInfo(
323
+ id = row[0],
324
+ kind = row[1],
325
+ user = row[2],
326
+ collection = row[3],
327
+ title = row[4],
328
+ comments = row[5],
329
+ time = int(1000 * row[6].timestamp()),
330
+ metadata = [
331
+ Triple(
332
+ s=Value(value=m[0], is_uri=m[1]),
333
+ p=Value(value=m[2], is_uri=m[3]),
334
+ o=Value(value=m[4], is_uri=m[5])
335
+ )
336
+ for m in row[7]
337
+ ],
338
+ )
339
+ for row in resp
340
+ ]
341
+
342
+ print("OK3")
343
+
344
+ print(info[0])
345
+
346
+ print(info[0].user)
347
+ print(info[0].time)
348
+ print(info[0].kind)
349
+ print(info[0].collection)
350
+ print(info[0].title)
351
+ print(info[0].comments)
352
+ print(info[0].metadata)
353
+ print(info[0].metadata)
354
+
355
+ return info
356
+
278
357
  def add_graph_embeddings(self, m):
279
358
 
280
359
  when = int(time.time() * 1000)
@@ -50,6 +50,8 @@ class Processor(ConsumerProducer):
50
50
  document_embeddings_response_queue
51
51
  )
52
52
 
53
+ doc_limit = params.get("doc_limit", 10)
54
+
53
55
  super(Processor, self).__init__(
54
56
  **params | {
55
57
  "input_queue": input_queue,
@@ -79,6 +81,8 @@ class Processor(ConsumerProducer):
79
81
  module=module,
80
82
  )
81
83
 
84
+ self.doc_limit = doc_limit
85
+
82
86
  async def handle(self, msg):
83
87
 
84
88
  try:
@@ -90,7 +94,12 @@ class Processor(ConsumerProducer):
90
94
 
91
95
  print(f"Handling input {id}...", flush=True)
92
96
 
93
- response = self.rag.query(v.query)
97
+ if v.doc_limit:
98
+ doc_limit = v.doc_limit
99
+ else:
100
+ doc_limit = self.doc_limit
101
+
102
+ response = self.rag.query(v.query, doc_limit=doc_limit)
94
103
 
95
104
  print("Send response...", flush=True)
96
105
  r = DocumentRagResponse(response = response, error=None)
@@ -124,6 +133,13 @@ class Processor(ConsumerProducer):
124
133
  default_output_queue,
125
134
  )
126
135
 
136
+ parser.add_argument(
137
+ '-d', '--doc-limit',
138
+ type=int,
139
+ default=20,
140
+ help=f'Default document fetch limit (default: 10)'
141
+ )
142
+
127
143
  parser.add_argument(
128
144
  '--prompt-request-queue',
129
145
  default=prompt_request_queue,