trustgraph-flow 0.18.7__tar.gz → 0.18.9__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 (266) hide show
  1. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/PKG-INFO +2 -2
  2. trustgraph-flow-0.18.9/trustgraph/flow_version.py +1 -0
  3. trustgraph-flow-0.18.9/trustgraph/gateway/document_load.py +42 -0
  4. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/embeddings.py +0 -1
  5. trustgraph-flow-0.18.9/trustgraph/gateway/mux.py +169 -0
  6. trustgraph-flow-0.18.9/trustgraph/gateway/sender.py +49 -0
  7. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/service.py +16 -111
  8. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/socket.py +7 -22
  9. trustgraph-flow-0.18.9/trustgraph/gateway/text_load.py +45 -0
  10. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph_flow.egg-info/PKG-INFO +2 -2
  11. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph_flow.egg-info/SOURCES.txt +3 -0
  12. trustgraph-flow-0.18.7/trustgraph/flow_version.py +0 -1
  13. trustgraph-flow-0.18.7/trustgraph/gateway/mux.py +0 -94
  14. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/README.md +0 -0
  15. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/agent-manager-react +0 -0
  16. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/api-gateway +0 -0
  17. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/chunker-recursive +0 -0
  18. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/chunker-token +0 -0
  19. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/de-query-milvus +0 -0
  20. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/de-query-pinecone +0 -0
  21. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/de-query-qdrant +0 -0
  22. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/de-write-milvus +0 -0
  23. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/de-write-pinecone +0 -0
  24. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/de-write-qdrant +0 -0
  25. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/document-rag +0 -0
  26. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/embeddings-ollama +0 -0
  27. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/embeddings-vectorize +0 -0
  28. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/ge-query-milvus +0 -0
  29. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/ge-query-pinecone +0 -0
  30. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/ge-query-qdrant +0 -0
  31. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/ge-write-milvus +0 -0
  32. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/ge-write-pinecone +0 -0
  33. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/ge-write-qdrant +0 -0
  34. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/graph-rag +0 -0
  35. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/kg-extract-definitions +0 -0
  36. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/kg-extract-relationships +0 -0
  37. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/kg-extract-topics +0 -0
  38. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/metering +0 -0
  39. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/object-extract-row +0 -0
  40. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/oe-write-milvus +0 -0
  41. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/pdf-decoder +0 -0
  42. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/prompt-generic +0 -0
  43. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/prompt-template +0 -0
  44. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/rows-write-cassandra +0 -0
  45. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/run-processing +0 -0
  46. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/text-completion-azure +0 -0
  47. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/text-completion-azure-openai +0 -0
  48. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/text-completion-claude +0 -0
  49. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/text-completion-cohere +0 -0
  50. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/text-completion-googleaistudio +0 -0
  51. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/text-completion-llamafile +0 -0
  52. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/text-completion-ollama +0 -0
  53. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/text-completion-openai +0 -0
  54. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/triples-query-cassandra +0 -0
  55. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/triples-query-falkordb +0 -0
  56. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/triples-query-memgraph +0 -0
  57. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/triples-query-neo4j +0 -0
  58. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/triples-write-cassandra +0 -0
  59. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/triples-write-falkordb +0 -0
  60. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/triples-write-memgraph +0 -0
  61. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/triples-write-neo4j +0 -0
  62. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/scripts/wikipedia-lookup +0 -0
  63. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/setup.cfg +0 -0
  64. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/setup.py +0 -0
  65. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/__init__.py +0 -0
  66. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/agent/__init__.py +0 -0
  67. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/agent/react/__init__.py +0 -0
  68. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/agent/react/__main__.py +0 -0
  69. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/agent/react/agent_manager.py +0 -0
  70. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/agent/react/service.py +0 -0
  71. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/agent/react/tools.py +0 -0
  72. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/agent/react/types.py +0 -0
  73. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/chunking/__init__.py +0 -0
  74. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/chunking/recursive/__init__.py +0 -0
  75. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/chunking/recursive/__main__.py +0 -0
  76. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/chunking/recursive/chunker.py +0 -0
  77. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/chunking/token/__init__.py +0 -0
  78. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/chunking/token/__main__.py +0 -0
  79. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/chunking/token/chunker.py +0 -0
  80. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/decoding/__init__.py +0 -0
  81. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/decoding/pdf/__init__.py +0 -0
  82. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/decoding/pdf/__main__.py +0 -0
  83. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/decoding/pdf/pdf_decoder.py +0 -0
  84. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/direct/__init__.py +0 -0
  85. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/direct/cassandra.py +0 -0
  86. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/direct/milvus_doc_embeddings.py +0 -0
  87. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/direct/milvus_graph_embeddings.py +0 -0
  88. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/direct/milvus_object_embeddings.py +0 -0
  89. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/document_rag.py +0 -0
  90. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/embeddings/__init__.py +0 -0
  91. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/embeddings/ollama/__init__.py +0 -0
  92. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/embeddings/ollama/__main__.py +0 -0
  93. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/embeddings/ollama/processor.py +0 -0
  94. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/embeddings/vectorize/__init__.py +0 -0
  95. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/embeddings/vectorize/__main__.py +0 -0
  96. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/embeddings/vectorize/vectorize.py +0 -0
  97. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/external/__init__.py +0 -0
  98. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/external/wikipedia/__init__.py +0 -0
  99. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/external/wikipedia/__main__.py +0 -0
  100. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/external/wikipedia/service.py +0 -0
  101. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/__init__.py +0 -0
  102. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/kg/__init__.py +0 -0
  103. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/kg/definitions/__init__.py +0 -0
  104. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/kg/definitions/__main__.py +0 -0
  105. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/kg/definitions/extract.py +0 -0
  106. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/kg/relationships/__init__.py +0 -0
  107. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/kg/relationships/__main__.py +0 -0
  108. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/kg/relationships/extract.py +0 -0
  109. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/kg/topics/__init__.py +0 -0
  110. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/kg/topics/__main__.py +0 -0
  111. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/kg/topics/extract.py +0 -0
  112. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/object/__init__.py +0 -0
  113. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/object/row/__init__.py +0 -0
  114. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/object/row/__main__.py +0 -0
  115. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/extract/object/row/extract.py +0 -0
  116. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/__init__.py +0 -0
  117. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/__main__.py +0 -0
  118. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/agent.py +0 -0
  119. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/auth.py +0 -0
  120. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/dbpedia.py +0 -0
  121. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/encyclopedia.py +0 -0
  122. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/endpoint.py +0 -0
  123. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/graph_embeddings_load.py +0 -0
  124. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/graph_embeddings_query.py +0 -0
  125. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/graph_embeddings_stream.py +0 -0
  126. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/graph_rag.py +0 -0
  127. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/internet_search.py +0 -0
  128. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/prompt.py +0 -0
  129. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/publisher.py +0 -0
  130. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/requestor.py +0 -0
  131. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/running.py +0 -0
  132. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/serialize.py +0 -0
  133. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/subscriber.py +0 -0
  134. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/text_completion.py +0 -0
  135. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/triples_load.py +0 -0
  136. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/triples_query.py +0 -0
  137. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/gateway/triples_stream.py +0 -0
  138. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/graph_rag.py +0 -0
  139. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/metering/__init__.py +0 -0
  140. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/metering/__main__.py +0 -0
  141. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/metering/counter.py +0 -0
  142. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/metering/pricelist.py +0 -0
  143. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/__init__.py +0 -0
  144. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/prompt/__init__.py +0 -0
  145. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/prompt/generic/__init__.py +0 -0
  146. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/prompt/generic/__main__.py +0 -0
  147. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/prompt/generic/prompts.py +0 -0
  148. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/prompt/generic/service.py +0 -0
  149. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/prompt/template/__init__.py +0 -0
  150. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/prompt/template/__main__.py +0 -0
  151. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/prompt/template/prompt_manager.py +0 -0
  152. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/prompt/template/service.py +0 -0
  153. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/__init__.py +0 -0
  154. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/azure/__init__.py +0 -0
  155. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/azure/__main__.py +0 -0
  156. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/azure/llm.py +0 -0
  157. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/azure_openai/__init__.py +0 -0
  158. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/azure_openai/__main__.py +0 -0
  159. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/azure_openai/llm.py +0 -0
  160. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/claude/__init__.py +0 -0
  161. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/claude/__main__.py +0 -0
  162. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/claude/llm.py +0 -0
  163. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/cohere/__init__.py +0 -0
  164. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/cohere/__main__.py +0 -0
  165. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/cohere/llm.py +0 -0
  166. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/googleaistudio/__init__.py +0 -0
  167. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/googleaistudio/__main__.py +0 -0
  168. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/googleaistudio/llm.py +0 -0
  169. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/llamafile/__init__.py +0 -0
  170. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/llamafile/__main__.py +0 -0
  171. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/llamafile/llm.py +0 -0
  172. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/ollama/__init__.py +0 -0
  173. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/ollama/__main__.py +0 -0
  174. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/ollama/llm.py +0 -0
  175. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/openai/__init__.py +0 -0
  176. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/openai/__main__.py +0 -0
  177. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/model/text_completion/openai/llm.py +0 -0
  178. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/processing/__init__.py +0 -0
  179. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/processing/__main__.py +0 -0
  180. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/processing/processing.py +0 -0
  181. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/__init__.py +0 -0
  182. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/doc_embeddings/__init__.py +0 -0
  183. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/doc_embeddings/milvus/__init__.py +0 -0
  184. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/doc_embeddings/milvus/__main__.py +0 -0
  185. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/doc_embeddings/milvus/service.py +0 -0
  186. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/doc_embeddings/pinecone/__init__.py +0 -0
  187. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/doc_embeddings/pinecone/__main__.py +0 -0
  188. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/doc_embeddings/pinecone/service.py +0 -0
  189. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/doc_embeddings/qdrant/__init__.py +0 -0
  190. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/doc_embeddings/qdrant/__main__.py +0 -0
  191. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/doc_embeddings/qdrant/service.py +0 -0
  192. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/graph_embeddings/__init__.py +0 -0
  193. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/graph_embeddings/milvus/__init__.py +0 -0
  194. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/graph_embeddings/milvus/__main__.py +0 -0
  195. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/graph_embeddings/milvus/service.py +0 -0
  196. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/graph_embeddings/pinecone/__init__.py +0 -0
  197. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/graph_embeddings/pinecone/__main__.py +0 -0
  198. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/graph_embeddings/pinecone/service.py +0 -0
  199. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/graph_embeddings/qdrant/__init__.py +0 -0
  200. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/graph_embeddings/qdrant/__main__.py +0 -0
  201. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/graph_embeddings/qdrant/service.py +0 -0
  202. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/triples/__init__.py +0 -0
  203. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/triples/cassandra/__init__.py +0 -0
  204. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/triples/cassandra/__main__.py +0 -0
  205. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/triples/cassandra/service.py +0 -0
  206. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/triples/falkordb/__init__.py +0 -0
  207. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/triples/falkordb/__main__.py +0 -0
  208. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/triples/falkordb/service.py +0 -0
  209. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/triples/memgraph/__init__.py +0 -0
  210. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/triples/memgraph/__main__.py +0 -0
  211. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/triples/memgraph/service.py +0 -0
  212. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/triples/neo4j/__init__.py +0 -0
  213. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/triples/neo4j/__main__.py +0 -0
  214. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/query/triples/neo4j/service.py +0 -0
  215. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/retrieval/__init__.py +0 -0
  216. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/retrieval/document_rag/__init__.py +0 -0
  217. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/retrieval/document_rag/__main__.py +0 -0
  218. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/retrieval/document_rag/rag.py +0 -0
  219. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/retrieval/graph_rag/__init__.py +0 -0
  220. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/retrieval/graph_rag/__main__.py +0 -0
  221. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/retrieval/graph_rag/rag.py +0 -0
  222. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/__init__.py +0 -0
  223. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/doc_embeddings/__init__.py +0 -0
  224. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/doc_embeddings/milvus/__init__.py +0 -0
  225. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/doc_embeddings/milvus/__main__.py +0 -0
  226. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/doc_embeddings/milvus/write.py +0 -0
  227. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/doc_embeddings/pinecone/__init__.py +0 -0
  228. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/doc_embeddings/pinecone/__main__.py +0 -0
  229. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/doc_embeddings/pinecone/write.py +0 -0
  230. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/doc_embeddings/qdrant/__init__.py +0 -0
  231. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/doc_embeddings/qdrant/__main__.py +0 -0
  232. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/doc_embeddings/qdrant/write.py +0 -0
  233. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/graph_embeddings/__init__.py +0 -0
  234. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/graph_embeddings/milvus/__init__.py +0 -0
  235. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/graph_embeddings/milvus/__main__.py +0 -0
  236. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/graph_embeddings/milvus/write.py +0 -0
  237. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/graph_embeddings/pinecone/__init__.py +0 -0
  238. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/graph_embeddings/pinecone/__main__.py +0 -0
  239. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/graph_embeddings/pinecone/write.py +0 -0
  240. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/graph_embeddings/qdrant/__init__.py +0 -0
  241. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/graph_embeddings/qdrant/__main__.py +0 -0
  242. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/graph_embeddings/qdrant/write.py +0 -0
  243. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/object_embeddings/__init__.py +0 -0
  244. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/object_embeddings/milvus/__init__.py +0 -0
  245. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/object_embeddings/milvus/__main__.py +0 -0
  246. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/object_embeddings/milvus/write.py +0 -0
  247. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/rows/__init__.py +0 -0
  248. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/rows/cassandra/__init__.py +0 -0
  249. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/rows/cassandra/__main__.py +0 -0
  250. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/rows/cassandra/write.py +0 -0
  251. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/triples/__init__.py +0 -0
  252. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/triples/cassandra/__init__.py +0 -0
  253. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/triples/cassandra/__main__.py +0 -0
  254. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/triples/cassandra/write.py +0 -0
  255. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/triples/falkordb/__init__.py +0 -0
  256. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/triples/falkordb/__main__.py +0 -0
  257. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/triples/falkordb/write.py +0 -0
  258. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/triples/memgraph/__init__.py +0 -0
  259. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/triples/memgraph/__main__.py +0 -0
  260. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/triples/memgraph/write.py +0 -0
  261. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/triples/neo4j/__init__.py +0 -0
  262. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/triples/neo4j/__main__.py +0 -0
  263. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph/storage/triples/neo4j/write.py +0 -0
  264. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph_flow.egg-info/dependency_links.txt +0 -0
  265. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph_flow.egg-info/requires.txt +0 -0
  266. {trustgraph-flow-0.18.7 → trustgraph-flow-0.18.9}/trustgraph_flow.egg-info/top_level.txt +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: trustgraph-flow
3
- Version: 0.18.7
3
+ Version: 0.18.9
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
6
  Author: trustgraph.ai
7
7
  Author-email: security@trustgraph.ai
8
8
  License: UNKNOWN
9
- Download-URL: https://github.com/trustgraph-ai/trustgraph/archive/refs/tags/v0.18.7.tar.gz
9
+ Download-URL: https://github.com/trustgraph-ai/trustgraph/archive/refs/tags/v0.18.9.tar.gz
10
10
  Platform: UNKNOWN
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
@@ -0,0 +1 @@
1
+ __version__ = "0.18.9"
@@ -0,0 +1,42 @@
1
+
2
+ import base64
3
+
4
+ from .. schema import Document
5
+ from .. schema import document_ingest_queue
6
+
7
+ from . sender import ServiceSender
8
+ from . serialize import to_subgraph
9
+
10
+ class DocumentLoadSender(ServiceSender):
11
+ def __init__(self, pulsar_host):
12
+
13
+ super(DocumentLoadSender, self).__init__(
14
+ pulsar_host=pulsar_host,
15
+ request_queue=document_ingest_queue,
16
+ request_schema=Document,
17
+ )
18
+
19
+ def to_request(self, body):
20
+
21
+ if "metadata" in data:
22
+ metadata = to_subgraph(data["metadata"])
23
+ else:
24
+ metadata = []
25
+
26
+ # Doing a base64 decoe/encode here to make sure the
27
+ # content is valid base64
28
+ doc = base64.b64decode(data["data"])
29
+
30
+ print("Document received")
31
+
32
+ return Document(
33
+ metadata=Metadata(
34
+ id=data.get("id"),
35
+ metadata=metadata,
36
+ user=data.get("user", "trustgraph"),
37
+ collection=data.get("collection", "default"),
38
+ ),
39
+ data=base64.b64encode(doc).decode("utf-8")
40
+ )
41
+
42
+
@@ -26,4 +26,3 @@ class EmbeddingsRequestor(ServiceRequestor):
26
26
  def from_response(self, message):
27
27
  return { "vectors": message.vectors }, True
28
28
 
29
-
@@ -0,0 +1,169 @@
1
+
2
+ import asyncio
3
+ import queue
4
+ from pulsar.schema import JsonSchema
5
+ import uuid
6
+ from aiohttp import web, WSMsgType
7
+
8
+ from . socket import SocketEndpoint
9
+ from . text_completion import TextCompletionRequestor
10
+
11
+ MAX_OUTSTANDING_REQUESTS = 15
12
+ WORKER_CLOSE_WAIT = 0.01
13
+ START_REQUEST_WAIT = 0.1
14
+
15
+ # This buffers requests until task start, so short-lived
16
+ MAX_QUEUE_SIZE = 10
17
+
18
+ class MuxEndpoint(SocketEndpoint):
19
+
20
+ def __init__(
21
+ self, pulsar_host, auth,
22
+ services,
23
+ path="/api/v1/socket",
24
+ ):
25
+
26
+ super(MuxEndpoint, self).__init__(
27
+ endpoint_path=path, auth=auth,
28
+ )
29
+
30
+ self.services = services
31
+
32
+ async def start(self):
33
+ pass
34
+
35
+ async def maybe_tidy_workers(self, workers):
36
+
37
+ while True:
38
+
39
+ try:
40
+
41
+ await asyncio.wait_for(
42
+ asyncio.shield(workers[0]),
43
+ WORKER_CLOSE_WAIT
44
+ )
45
+
46
+ # worker[0] now stopped
47
+ # FIXME: Delete reference???
48
+
49
+ workers.pop(0)
50
+
51
+ if len(workers) == 0:
52
+ break
53
+
54
+ # Loop iterates to try the next worker
55
+
56
+ except TimeoutError:
57
+ # worker[0] still running, move on
58
+ break
59
+
60
+ async def start_request_task(self, ws, id, svc, request, workers):
61
+
62
+ if svc not in self.services:
63
+ await ws.send_json({"id": id, "error": "Service not recognised"})
64
+ return
65
+
66
+ requestor = self.services[svc]
67
+
68
+ async def responder(resp, fin):
69
+ await ws.send_json({
70
+ "id": id,
71
+ "response": resp,
72
+ "complete": fin,
73
+ })
74
+
75
+ # Wait for outstanding requests to go below MAX_OUTSTANDING_REQUESTS
76
+ while len(workers) > MAX_OUTSTANDING_REQUESTS:
77
+
78
+ # Fixes deadlock
79
+ # FIXME: Put it in its own loop
80
+ await asyncio.sleep(START_REQUEST_WAIT)
81
+
82
+ await self.maybe_tidy_workers(workers)
83
+
84
+ worker = asyncio.create_task(
85
+ requestor.process(request, responder)
86
+ )
87
+
88
+ workers.append(worker)
89
+
90
+ async def async_thread(self, ws, running, q):
91
+
92
+ # Worker threads, servicing
93
+ workers = []
94
+
95
+ while running.get():
96
+
97
+ try:
98
+
99
+ if len(workers) > 0:
100
+ await self.maybe_tidy_workers(workers)
101
+
102
+ # Get next request on queue
103
+ id, svc, request = await asyncio.wait_for(q.get(), 1)
104
+
105
+ except TimeoutError:
106
+ continue
107
+
108
+ except Exception as e:
109
+ # This is an internal working error, may not be recoverable
110
+ print("Exception:", e)
111
+ await ws.send_json({"id": id, "error": str(e)})
112
+ break
113
+
114
+ try:
115
+ print(id, svc, request)
116
+ await self.start_request_task(ws, id, svc, request, workers)
117
+
118
+ except Exception as e:
119
+ print("Exception2:", e)
120
+ await ws.send_json({"error": str(e)})
121
+
122
+ running.stop()
123
+
124
+ async def listener(self, ws, running):
125
+
126
+ # The outstanding request queue, max size is MAX_QUEUE_SIZE
127
+ q = asyncio.Queue(maxsize=MAX_QUEUE_SIZE)
128
+
129
+ async_task = asyncio.create_task(self.async_thread(
130
+ ws, running, q
131
+ ))
132
+
133
+ async for msg in ws:
134
+
135
+ # On error, finish
136
+ if msg.type == WSMsgType.TEXT:
137
+
138
+ try:
139
+
140
+ data = msg.json()
141
+
142
+ if data["service"] not in self.services:
143
+ raise RuntimeError("Bad service")
144
+
145
+ if "request" not in data:
146
+ raise RuntimeError("Bad message")
147
+
148
+ if "id" not in data:
149
+ raise RuntimeError("Bad message")
150
+
151
+ await q.put(
152
+ (data["id"], data["service"], data["request"])
153
+ )
154
+
155
+ except Exception as e:
156
+
157
+ await ws.send_json({"error": str(e)})
158
+ continue
159
+
160
+ elif msg.type == WSMsgType.ERROR:
161
+ break
162
+ elif msg.type == WSMsgType.CLOSE:
163
+ break
164
+ else:
165
+ break
166
+
167
+ running.stop()
168
+
169
+ await async_task
@@ -0,0 +1,49 @@
1
+
2
+ # Like ServiceRequestor, but just fire-and-forget instead of request/response
3
+
4
+ import asyncio
5
+ from pulsar.schema import JsonSchema
6
+ import uuid
7
+ import logging
8
+
9
+ from . publisher import Publisher
10
+
11
+ logger = logging.getLogger("sender")
12
+ logger.setLevel(logging.INFO)
13
+
14
+ class ServiceSender:
15
+
16
+ def __init__(
17
+ self,
18
+ pulsar_host,
19
+ request_queue, request_schema,
20
+ ):
21
+
22
+ self.pub = Publisher(
23
+ pulsar_host, request_queue,
24
+ schema=JsonSchema(request_schema)
25
+ )
26
+
27
+ async def start(self):
28
+
29
+ self.pub.start()
30
+
31
+ def to_request(self, request):
32
+ raise RuntimeError("Not defined")
33
+
34
+ async def process(self, request, responder=None):
35
+
36
+ try:
37
+
38
+ await asyncio.to_thread(
39
+ self.pub.send, None, self.to_request(request)
40
+ )
41
+
42
+ return {}
43
+
44
+ except Exception as e:
45
+
46
+ logging.error(f"Exception: {e}")
47
+
48
+ return { "error": str(e) }
49
+
@@ -24,9 +24,6 @@ from prometheus_client import start_http_server
24
24
 
25
25
  from .. log_level import LogLevel
26
26
 
27
- from .. schema import Metadata, Document, TextDocument
28
- from .. schema import document_ingest_queue, text_ingest_queue
29
-
30
27
  from . serialize import to_subgraph
31
28
  from . running import Running
32
29
  from . publisher import Publisher
@@ -46,6 +43,8 @@ from . graph_embeddings_stream import GraphEmbeddingsStreamEndpoint
46
43
  from . triples_load import TriplesLoadEndpoint
47
44
  from . graph_embeddings_load import GraphEmbeddingsLoadEndpoint
48
45
  from . mux import MuxEndpoint
46
+ from . document_load import DocumentLoadSender
47
+ from . text_load import TextLoadSender
49
48
 
50
49
  from . endpoint import ServiceEndpoint
51
50
  from . auth import Authenticator
@@ -120,6 +119,12 @@ class Api:
120
119
  pulsar_host=self.pulsar_host, timeout=self.timeout,
121
120
  auth = self.auth,
122
121
  ),
122
+ "document-load": DocumentLoadSender(
123
+ pulsar_host=self.pulsar_host,
124
+ ),
125
+ "text-load": TextLoadSender(
126
+ pulsar_host=self.pulsar_host,
127
+ ),
123
128
  }
124
129
 
125
130
  self.endpoints = [
@@ -164,6 +169,14 @@ class Api:
164
169
  endpoint_path = "/api/v1/internet-search", auth=self.auth,
165
170
  requestor = self.services["internet-search"],
166
171
  ),
172
+ ServiceEndpoint(
173
+ endpoint_path = "/api/v1/load/document", auth=self.auth,
174
+ requestor = self.services["document-load"],
175
+ ),
176
+ ServiceEndpoint(
177
+ endpoint_path = "/api/v1/load/text", auth=self.auth,
178
+ requestor = self.services["text-load"],
179
+ ),
167
180
  TriplesStreamEndpoint(
168
181
  pulsar_host=self.pulsar_host,
169
182
  auth = self.auth,
@@ -187,122 +200,14 @@ class Api:
187
200
  ),
188
201
  ]
189
202
 
190
- self.document_out = Publisher(
191
- self.pulsar_host, document_ingest_queue,
192
- schema=JsonSchema(Document),
193
- chunking_enabled=True,
194
- )
195
-
196
- self.text_out = Publisher(
197
- self.pulsar_host, text_ingest_queue,
198
- schema=JsonSchema(TextDocument),
199
- chunking_enabled=True,
200
- )
201
-
202
203
  for ep in self.endpoints:
203
204
  ep.add_routes(self.app)
204
205
 
205
- self.app.add_routes([
206
- web.post("/api/v1/load/document", self.load_document),
207
- web.post("/api/v1/load/text", self.load_text),
208
- ])
209
-
210
- async def load_document(self, request):
211
-
212
- try:
213
-
214
- data = await request.json()
215
-
216
- if "metadata" in data:
217
- metadata = to_subgraph(data["metadata"])
218
- else:
219
- metadata = []
220
-
221
- # Doing a base64 decoe/encode here to make sure the
222
- # content is valid base64
223
- doc = base64.b64decode(data["data"])
224
-
225
- resp = await asyncio.to_thread(
226
- self.document_out.send,
227
- None,
228
- Document(
229
- metadata=Metadata(
230
- id=data.get("id"),
231
- metadata=metadata,
232
- user=data.get("user", "trustgraph"),
233
- collection=data.get("collection", "default"),
234
- ),
235
- data=base64.b64encode(doc).decode("utf-8")
236
- )
237
- )
238
-
239
- print("Document loaded.")
240
-
241
- return web.json_response(
242
- { }
243
- )
244
-
245
- except Exception as e:
246
- logging.error(f"Exception: {e}")
247
-
248
- return web.json_response(
249
- { "error": str(e) }
250
- )
251
-
252
- async def load_text(self, request):
253
-
254
- try:
255
-
256
- data = await request.json()
257
-
258
- if "metadata" in data:
259
- metadata = to_subgraph(data["metadata"])
260
- else:
261
- metadata = []
262
-
263
- if "charset" in data:
264
- charset = data["charset"]
265
- else:
266
- charset = "utf-8"
267
-
268
- # Text is base64 encoded
269
- text = base64.b64decode(data["text"]).decode(charset)
270
-
271
- resp = await asyncio.to_thread(
272
- self.text_out.send,
273
- None,
274
- TextDocument(
275
- metadata=Metadata(
276
- id=data.get("id"),
277
- metadata=metadata,
278
- user=data.get("user", "trustgraph"),
279
- collection=data.get("collection", "default"),
280
- ),
281
- text=text,
282
- )
283
- )
284
-
285
- print("Text document loaded.")
286
-
287
- return web.json_response(
288
- { }
289
- )
290
-
291
- except Exception as e:
292
- logging.error(f"Exception: {e}")
293
-
294
- return web.json_response(
295
- { "error": str(e) }
296
- )
297
-
298
206
  async def app_factory(self):
299
207
 
300
208
  for ep in self.endpoints:
301
209
  await ep.start()
302
210
 
303
- self.document_out.start()
304
- self.text_out.start()
305
-
306
211
  return self.app
307
212
 
308
213
  def run(self):
@@ -22,25 +22,16 @@ class SocketEndpoint:
22
22
 
23
23
  async for msg in ws:
24
24
  # On error, finish
25
- if msg.type == WSMsgType.ERROR:
26
- break
25
+ if msg.type == WSMsgType.TEXT:
26
+ # Ignore incoming message
27
+ continue
28
+ elif msg.type == WSMsgType.BINARY:
29
+ # Ignore incoming message
30
+ continue
27
31
  else:
28
- # Ignore incoming messages
29
- pass
32
+ break
30
33
 
31
34
  running.stop()
32
-
33
- async def async_thread(self, ws, running):
34
-
35
- while running.get():
36
- try:
37
- await asyncio.sleep(1)
38
-
39
- except TimeoutError:
40
- continue
41
-
42
- except Exception as e:
43
- print(f"Exception: {str(e)}", flush=True)
44
35
 
45
36
  async def handle(self, request):
46
37
 
@@ -56,12 +47,8 @@ class SocketEndpoint:
56
47
  ws = web.WebSocketResponse()
57
48
  await ws.prepare(request)
58
49
 
59
- task = asyncio.create_task(self.async_thread(ws, running))
60
-
61
50
  try:
62
-
63
51
  await self.listener(ws, running)
64
-
65
52
  except Exception as e:
66
53
  print(e, flush=True)
67
54
 
@@ -69,8 +56,6 @@ class SocketEndpoint:
69
56
 
70
57
  await ws.close()
71
58
 
72
- await task
73
-
74
59
  return ws
75
60
 
76
61
  async def start(self):
@@ -0,0 +1,45 @@
1
+
2
+ import base64
3
+
4
+ from .. schema import TextDocument, Metadata
5
+ from .. schema import text_ingest_queue
6
+
7
+ from . sender import ServiceSender
8
+ from . serialize import to_subgraph
9
+
10
+ class TextLoadSender(ServiceSender):
11
+ def __init__(self, pulsar_host):
12
+
13
+ super(TextLoadSender, self).__init__(
14
+ pulsar_host=pulsar_host,
15
+ request_queue=text_ingest_queue,
16
+ request_schema=TextDocument,
17
+ )
18
+
19
+ def to_request(self, body):
20
+
21
+ if "metadata" in body:
22
+ metadata = to_subgraph(body["metadata"])
23
+ else:
24
+ metadata = []
25
+
26
+ if "charset" in body:
27
+ charset = body["charset"]
28
+ else:
29
+ charset = "utf-8"
30
+
31
+ # Text is base64 encoded
32
+ text = base64.b64decode(body["text"]).decode(charset)
33
+
34
+ print("Text document received")
35
+
36
+ return TextDocument(
37
+ metadata=Metadata(
38
+ id=body.get("id"),
39
+ metabody=metadata,
40
+ user=body.get("user", "trustgraph"),
41
+ collection=body.get("collection", "default"),
42
+ ),
43
+ text=text,
44
+ )
45
+
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: trustgraph-flow
3
- Version: 0.18.7
3
+ Version: 0.18.9
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
6
  Author: trustgraph.ai
7
7
  Author-email: security@trustgraph.ai
8
8
  License: UNKNOWN
9
- Download-URL: https://github.com/trustgraph-ai/trustgraph/archive/refs/tags/v0.18.7.tar.gz
9
+ Download-URL: https://github.com/trustgraph-ai/trustgraph/archive/refs/tags/v0.18.9.tar.gz
10
10
  Platform: UNKNOWN
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
@@ -106,6 +106,7 @@ trustgraph/gateway/__main__.py
106
106
  trustgraph/gateway/agent.py
107
107
  trustgraph/gateway/auth.py
108
108
  trustgraph/gateway/dbpedia.py
109
+ trustgraph/gateway/document_load.py
109
110
  trustgraph/gateway/embeddings.py
110
111
  trustgraph/gateway/encyclopedia.py
111
112
  trustgraph/gateway/endpoint.py
@@ -119,11 +120,13 @@ trustgraph/gateway/prompt.py
119
120
  trustgraph/gateway/publisher.py
120
121
  trustgraph/gateway/requestor.py
121
122
  trustgraph/gateway/running.py
123
+ trustgraph/gateway/sender.py
122
124
  trustgraph/gateway/serialize.py
123
125
  trustgraph/gateway/service.py
124
126
  trustgraph/gateway/socket.py
125
127
  trustgraph/gateway/subscriber.py
126
128
  trustgraph/gateway/text_completion.py
129
+ trustgraph/gateway/text_load.py
127
130
  trustgraph/gateway/triples_load.py
128
131
  trustgraph/gateway/triples_query.py
129
132
  trustgraph/gateway/triples_stream.py
@@ -1 +0,0 @@
1
- __version__ = "0.18.7"
@@ -1,94 +0,0 @@
1
-
2
- import asyncio
3
- import queue
4
- from pulsar.schema import JsonSchema
5
- import uuid
6
- from aiohttp import web, WSMsgType
7
-
8
- from . socket import SocketEndpoint
9
- from . text_completion import TextCompletionRequestor
10
-
11
- class MuxEndpoint(SocketEndpoint):
12
-
13
- def __init__(
14
- self, pulsar_host, auth,
15
- services,
16
- path="/api/v1/socket",
17
- ):
18
-
19
- super(MuxEndpoint, self).__init__(
20
- endpoint_path=path, auth=auth,
21
- )
22
-
23
- self.q = asyncio.Queue(maxsize=10)
24
-
25
- self.services = services
26
-
27
- async def start(self):
28
- pass
29
-
30
- async def async_thread(self, ws, running):
31
-
32
- while running.get():
33
-
34
- try:
35
- id, svc, request = await asyncio.wait_for(self.q.get(), 1)
36
- except TimeoutError:
37
- continue
38
- except Exception as e:
39
- await ws.send_json({"id": id, "error": str(e)})
40
-
41
- try:
42
-
43
- print(svc, request)
44
-
45
- requestor = self.services[svc]
46
-
47
- async def responder(resp, fin):
48
- await ws.send_json({
49
- "id": id,
50
- "response": resp,
51
- "complete": fin,
52
- })
53
-
54
- resp = await requestor.process(request, responder)
55
-
56
- except Exception as e:
57
-
58
- await ws.send_json({"error": str(e)})
59
-
60
- running.stop()
61
-
62
- async def listener(self, ws, running):
63
-
64
- async for msg in ws:
65
-
66
- # On error, finish
67
- if msg.type == WSMsgType.ERROR:
68
- break
69
- else:
70
-
71
- try:
72
-
73
- data = msg.json()
74
-
75
- if data["service"] not in self.services:
76
- raise RuntimeError("Bad service")
77
-
78
- if "request" not in data:
79
- raise RuntimeError("Bad message")
80
-
81
- if "id" not in data:
82
- raise RuntimeError("Bad message")
83
-
84
- await self.q.put(
85
- (data["id"], data["service"], data["request"])
86
- )
87
-
88
- except Exception as e:
89
-
90
- await ws.send_json({"error": str(e)})
91
- continue
92
-
93
- running.stop()
94
-