isage-middleware 0.2.4.3__cp311-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. isage_middleware-0.2.4.3.dist-info/METADATA +266 -0
  2. isage_middleware-0.2.4.3.dist-info/RECORD +94 -0
  3. isage_middleware-0.2.4.3.dist-info/WHEEL +5 -0
  4. isage_middleware-0.2.4.3.dist-info/top_level.txt +1 -0
  5. sage/middleware/__init__.py +59 -0
  6. sage/middleware/_version.py +6 -0
  7. sage/middleware/components/__init__.py +30 -0
  8. sage/middleware/components/extensions_compat.py +141 -0
  9. sage/middleware/components/sage_db/__init__.py +116 -0
  10. sage/middleware/components/sage_db/backend.py +136 -0
  11. sage/middleware/components/sage_db/service.py +15 -0
  12. sage/middleware/components/sage_flow/__init__.py +76 -0
  13. sage/middleware/components/sage_flow/python/__init__.py +14 -0
  14. sage/middleware/components/sage_flow/python/micro_service/__init__.py +4 -0
  15. sage/middleware/components/sage_flow/python/micro_service/sage_flow_service.py +88 -0
  16. sage/middleware/components/sage_flow/python/sage_flow.py +30 -0
  17. sage/middleware/components/sage_flow/service.py +14 -0
  18. sage/middleware/components/sage_mem/__init__.py +83 -0
  19. sage/middleware/components/sage_sias/__init__.py +59 -0
  20. sage/middleware/components/sage_sias/continual_learner.py +184 -0
  21. sage/middleware/components/sage_sias/coreset_selector.py +302 -0
  22. sage/middleware/components/sage_sias/types.py +94 -0
  23. sage/middleware/components/sage_tsdb/__init__.py +81 -0
  24. sage/middleware/components/sage_tsdb/python/__init__.py +21 -0
  25. sage/middleware/components/sage_tsdb/python/_sage_tsdb.pyi +17 -0
  26. sage/middleware/components/sage_tsdb/python/algorithms/__init__.py +17 -0
  27. sage/middleware/components/sage_tsdb/python/algorithms/base.py +51 -0
  28. sage/middleware/components/sage_tsdb/python/algorithms/out_of_order_join.py +248 -0
  29. sage/middleware/components/sage_tsdb/python/algorithms/window_aggregator.py +296 -0
  30. sage/middleware/components/sage_tsdb/python/micro_service/__init__.py +7 -0
  31. sage/middleware/components/sage_tsdb/python/micro_service/sage_tsdb_service.py +365 -0
  32. sage/middleware/components/sage_tsdb/python/sage_tsdb.py +523 -0
  33. sage/middleware/components/sage_tsdb/service.py +17 -0
  34. sage/middleware/components/vector_stores/__init__.py +25 -0
  35. sage/middleware/components/vector_stores/chroma.py +483 -0
  36. sage/middleware/components/vector_stores/chroma_adapter.py +185 -0
  37. sage/middleware/components/vector_stores/milvus.py +677 -0
  38. sage/middleware/operators/__init__.py +56 -0
  39. sage/middleware/operators/agent/__init__.py +24 -0
  40. sage/middleware/operators/agent/planning/__init__.py +5 -0
  41. sage/middleware/operators/agent/planning/llm_adapter.py +41 -0
  42. sage/middleware/operators/agent/planning/planner_adapter.py +98 -0
  43. sage/middleware/operators/agent/planning/router.py +107 -0
  44. sage/middleware/operators/agent/runtime.py +296 -0
  45. sage/middleware/operators/agentic/__init__.py +41 -0
  46. sage/middleware/operators/agentic/config.py +254 -0
  47. sage/middleware/operators/agentic/planning_operator.py +125 -0
  48. sage/middleware/operators/agentic/refined_searcher.py +132 -0
  49. sage/middleware/operators/agentic/runtime.py +241 -0
  50. sage/middleware/operators/agentic/timing_operator.py +125 -0
  51. sage/middleware/operators/agentic/tool_selection_operator.py +127 -0
  52. sage/middleware/operators/context/__init__.py +17 -0
  53. sage/middleware/operators/context/critic_evaluation.py +16 -0
  54. sage/middleware/operators/context/model_context.py +565 -0
  55. sage/middleware/operators/context/quality_label.py +12 -0
  56. sage/middleware/operators/context/search_query_results.py +61 -0
  57. sage/middleware/operators/context/search_result.py +42 -0
  58. sage/middleware/operators/context/search_session.py +79 -0
  59. sage/middleware/operators/filters/__init__.py +26 -0
  60. sage/middleware/operators/filters/context_sink.py +387 -0
  61. sage/middleware/operators/filters/context_source.py +376 -0
  62. sage/middleware/operators/filters/evaluate_filter.py +83 -0
  63. sage/middleware/operators/filters/tool_filter.py +74 -0
  64. sage/middleware/operators/llm/__init__.py +18 -0
  65. sage/middleware/operators/llm/sagellm_generator.py +432 -0
  66. sage/middleware/operators/rag/__init__.py +147 -0
  67. sage/middleware/operators/rag/arxiv.py +331 -0
  68. sage/middleware/operators/rag/chunk.py +13 -0
  69. sage/middleware/operators/rag/document_loaders.py +23 -0
  70. sage/middleware/operators/rag/evaluate.py +658 -0
  71. sage/middleware/operators/rag/generator.py +340 -0
  72. sage/middleware/operators/rag/index_builder/__init__.py +48 -0
  73. sage/middleware/operators/rag/index_builder/builder.py +363 -0
  74. sage/middleware/operators/rag/index_builder/manifest.py +101 -0
  75. sage/middleware/operators/rag/index_builder/storage.py +131 -0
  76. sage/middleware/operators/rag/pipeline.py +46 -0
  77. sage/middleware/operators/rag/profiler.py +59 -0
  78. sage/middleware/operators/rag/promptor.py +400 -0
  79. sage/middleware/operators/rag/refiner.py +231 -0
  80. sage/middleware/operators/rag/reranker.py +364 -0
  81. sage/middleware/operators/rag/retriever.py +1308 -0
  82. sage/middleware/operators/rag/searcher.py +37 -0
  83. sage/middleware/operators/rag/types.py +28 -0
  84. sage/middleware/operators/rag/writer.py +80 -0
  85. sage/middleware/operators/tools/__init__.py +71 -0
  86. sage/middleware/operators/tools/arxiv_paper_searcher.py +175 -0
  87. sage/middleware/operators/tools/arxiv_searcher.py +102 -0
  88. sage/middleware/operators/tools/duckduckgo_searcher.py +105 -0
  89. sage/middleware/operators/tools/image_captioner.py +104 -0
  90. sage/middleware/operators/tools/nature_news_fetcher.py +224 -0
  91. sage/middleware/operators/tools/searcher_tool.py +514 -0
  92. sage/middleware/operators/tools/text_detector.py +185 -0
  93. sage/middleware/operators/tools/url_text_extractor.py +104 -0
  94. sage/middleware/py.typed +2 -0
@@ -0,0 +1,104 @@
1
+ import os
2
+
3
+ import requests
4
+ from bs4 import BeautifulSoup
5
+
6
+ from sage.libs.foundation.tools.tool import BaseTool
7
+
8
+
9
+ class URL_Text_Extractor_Tool(BaseTool):
10
+ def __init__(self):
11
+ super().__init__(
12
+ tool_name="URL_Text_Extractor_Tool",
13
+ tool_description="A tool that extracts all text from a given URL.",
14
+ input_types={
15
+ "url": "str - The URL from which to extract text.",
16
+ },
17
+ output_type="dict - A dictionary containing the extracted text and any error messages.",
18
+ demo_commands=[
19
+ {
20
+ "command": 'execution = tool.execute(url="https://example.com")',
21
+ "description": "Extract all text from the example.com website.",
22
+ },
23
+ {
24
+ "command": 'execution = tool.execute(url="https://en.wikipedia.org/wiki/Python_(programming_language)")',
25
+ "description": "Extract all text from the Wikipedia page about Python programming language.",
26
+ },
27
+ ],
28
+ )
29
+ self.tool_version = "1.0.0"
30
+
31
+ def extract_text_from_url(self, url):
32
+ """
33
+ Extracts all text from the given URL.
34
+
35
+ Parameters:
36
+ url (str): The URL from which to extract text.
37
+
38
+ Returns:
39
+ str: The extracted text.
40
+ """
41
+ url = url.replace("arxiv.org/pdf", "arxiv.org/abs")
42
+
43
+ try:
44
+ response = requests.get(url)
45
+ response.raise_for_status()
46
+ soup = BeautifulSoup(response.content, "html.parser")
47
+ text = soup.get_text(separator="\n", strip=True)
48
+ text = text[:10000] # Limit the text to 10000 characters
49
+ return text
50
+ except requests.RequestException as e:
51
+ return f"Error fetching URL: {str(e)}"
52
+ except Exception as e:
53
+ return f"Error extracting text: {str(e)}"
54
+
55
+ def execute(self, url):
56
+ extracted_text = self.extract_text_from_url(url)
57
+ return {"url": url, "extracted_text": extracted_text}
58
+
59
+ def get_metadata(self):
60
+ """
61
+ Returns the metadata for the URL_Text_Extractor_Tool.
62
+
63
+ Returns:
64
+ dict: A dictionary containing the tool's metadata.
65
+ """
66
+ metadata = super().get_metadata()
67
+ return metadata
68
+
69
+
70
+ if __name__ == "__main__":
71
+ # Test command:
72
+ """
73
+ Run the following commands in the terminal to test the script:
74
+
75
+ cd octotools/tools/url_text_extractor
76
+ python tool.py
77
+ """
78
+
79
+ # Get the directory of the current script
80
+ script_dir = os.path.dirname(os.path.abspath(__file__))
81
+
82
+ # Example usage of the URL_Text_Extractor_Tool
83
+ tool = URL_Text_Extractor_Tool()
84
+
85
+ # Get tool metadata
86
+ metadata = tool.get_metadata()
87
+ print(metadata)
88
+
89
+ # Sample URL for extracting text
90
+ url = "https://intellistream.github.io/SAGE-Pub/get_start/install/"
91
+
92
+ import json
93
+
94
+ # Execute the tool with the sample URL
95
+ try:
96
+ execution = tool.execute(url=url)
97
+ print("Execution Result:")
98
+ print(json.dumps(execution, indent=4))
99
+ for key, value in execution.items():
100
+ print(f"{key}:\n{value}\n")
101
+ except ValueError as e:
102
+ print(f"Execution failed: {e}")
103
+
104
+ print("Done!")
@@ -0,0 +1,2 @@
1
+ # Marker file for PEP 561
2
+ # This indicates that the sage.service package supports type checking