isage-middleware 0.1.3.1__py3-none-any.whl → 0.2.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- isage_middleware-0.2.0.0.dist-info/METADATA +258 -0
- isage_middleware-0.2.0.0.dist-info/RECORD +186 -0
- sage/middleware/__init__.py +56 -53
- sage/middleware/__init__.pyc +0 -0
- sage/middleware/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/__pycache__/_version.cpython-311.pyc +0 -0
- sage/middleware/_version.py +4 -36
- sage/middleware/_version.pyc +0 -0
- sage/middleware/components/__init__.py +26 -0
- sage/middleware/components/__init__.pyc +0 -0
- sage/middleware/components/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/__pycache__/extensions_compat.cpython-311.pyc +0 -0
- sage/middleware/components/extensions_compat.pyc +0 -0
- sage/middleware/components/sage_db/__init__.py +114 -54
- sage/middleware/components/sage_db/__init__.pyc +0 -0
- sage/middleware/components/sage_db/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_db/__pycache__/backend.cpython-311.pyc +0 -0
- sage/middleware/components/sage_db/backend.pyc +0 -0
- sage/middleware/components/sage_db/service.pyc +0 -0
- sage/middleware/components/sage_flow/__init__.py +76 -0
- sage/middleware/components/sage_flow/__init__.pyc +0 -0
- sage/middleware/components/sage_flow/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_flow/examples/basic_service.pyc +0 -0
- sage/middleware/components/sage_flow/python/__init__.py +14 -0
- sage/middleware/components/sage_flow/python/__init__.pyc +0 -0
- sage/middleware/components/sage_flow/python/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_flow/python/__pycache__/sage_flow.cpython-311.pyc +0 -0
- sage/middleware/components/sage_flow/python/micro_service/__init__.py +4 -0
- sage/middleware/components/sage_flow/python/micro_service/__init__.pyc +0 -0
- sage/middleware/components/sage_flow/python/micro_service/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_flow/python/micro_service/__pycache__/sage_flow_service.cpython-311.pyc +0 -0
- sage/middleware/components/sage_flow/python/micro_service/sage_flow_service.pyc +0 -0
- sage/middleware/components/sage_flow/python/sage_flow.pyc +0 -0
- sage/middleware/components/sage_flow/service.pyc +0 -0
- sage/middleware/components/sage_mem/__init__.py +83 -0
- sage/middleware/components/sage_mem/__init__.pyc +0 -0
- sage/middleware/components/sage_mem/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_refiner/__init__.py +103 -0
- sage/middleware/components/sage_refiner/__init__.pyc +0 -0
- sage/middleware/components/sage_refiner/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_refiner/examples/basic_usage.pyc +0 -0
- sage/middleware/components/sage_refiner/examples/context_service_demo.pyc +0 -0
- sage/middleware/components/sage_refiner/examples/rag_integration.pyc +0 -0
- sage/middleware/components/sage_refiner/python/__init__.py +38 -0
- sage/middleware/components/sage_refiner/python/__init__.pyc +0 -0
- sage/middleware/components/sage_refiner/python/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_refiner/python/__pycache__/context_service.cpython-311.pyc +0 -0
- sage/middleware/components/sage_refiner/python/__pycache__/service.cpython-311.pyc +0 -0
- sage/middleware/components/sage_refiner/python/adapter.pyc +0 -0
- sage/middleware/components/sage_refiner/python/context_service.pyc +0 -0
- sage/middleware/components/sage_refiner/python/service.pyc +0 -0
- sage/middleware/components/sage_tsdb/__init__.py +81 -0
- sage/middleware/components/sage_tsdb/__init__.pyc +0 -0
- sage/middleware/components/sage_tsdb/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_tsdb/examples/basic_usage.pyc +0 -0
- sage/middleware/components/sage_tsdb/examples/service_demo.pyc +0 -0
- sage/middleware/components/sage_tsdb/examples/stream_join_demo.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/__init__.py +21 -0
- sage/middleware/components/sage_tsdb/python/__init__.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/__pycache__/sage_tsdb.cpython-311.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/_sage_tsdb.cpython-311-x86_64-linux-gnu.so +0 -0
- sage/middleware/components/sage_tsdb/python/_sage_tsdb.pyi +17 -0
- sage/middleware/components/sage_tsdb/python/algorithms/__init__.py +17 -0
- sage/middleware/components/sage_tsdb/python/algorithms/__init__.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/algorithms/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/algorithms/__pycache__/base.cpython-311.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/algorithms/__pycache__/out_of_order_join.cpython-311.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/algorithms/__pycache__/window_aggregator.cpython-311.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/algorithms/base.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/algorithms/out_of_order_join.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/algorithms/window_aggregator.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/libsage_tsdb_algorithms.so +0 -0
- sage/middleware/components/sage_tsdb/python/libsage_tsdb_core.so +0 -0
- sage/middleware/components/sage_tsdb/python/micro_service/__init__.py +7 -0
- sage/middleware/components/sage_tsdb/python/micro_service/__init__.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/micro_service/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/micro_service/__pycache__/sage_tsdb_service.cpython-311.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/micro_service/sage_tsdb_service.pyc +0 -0
- sage/middleware/components/sage_tsdb/python/sage_tsdb.pyc +0 -0
- sage/middleware/components/sage_tsdb/service.pyc +0 -0
- sage/middleware/operators/__init__.py +32 -0
- sage/middleware/operators/__init__.pyc +0 -0
- sage/middleware/operators/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/operators/agent/__init__.py +9 -0
- sage/middleware/operators/agent/__init__.pyc +0 -0
- sage/middleware/operators/agent/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/operators/agent/__pycache__/runtime.cpython-311.pyc +0 -0
- sage/middleware/operators/agent/planning/__init__.py +5 -0
- sage/middleware/operators/agent/planning/__init__.pyc +0 -0
- sage/middleware/operators/agent/planning/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/operators/agent/planning/__pycache__/llm_adapter.cpython-311.pyc +0 -0
- sage/middleware/operators/agent/planning/__pycache__/planner_adapter.cpython-311.pyc +0 -0
- sage/middleware/operators/agent/planning/__pycache__/router.cpython-311.pyc +0 -0
- sage/middleware/operators/agent/planning/llm_adapter.pyc +0 -0
- sage/middleware/operators/agent/planning/planner_adapter.pyc +0 -0
- sage/middleware/operators/agent/planning/router.pyc +0 -0
- sage/middleware/operators/agent/runtime.pyc +0 -0
- sage/middleware/operators/agentic/__init__.py +20 -0
- sage/middleware/operators/agentic/__init__.pyc +0 -0
- sage/middleware/operators/agentic/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/operators/agentic/__pycache__/planning_operator.cpython-311.pyc +0 -0
- sage/middleware/operators/agentic/__pycache__/refined_searcher.cpython-311.pyc +0 -0
- sage/middleware/operators/agentic/__pycache__/runtime.cpython-311.pyc +0 -0
- sage/middleware/operators/agentic/__pycache__/timing_operator.cpython-311.pyc +0 -0
- sage/middleware/operators/agentic/__pycache__/tool_selection_operator.cpython-311.pyc +0 -0
- sage/middleware/operators/agentic/planning_operator.pyc +0 -0
- sage/middleware/operators/agentic/refined_searcher.pyc +0 -0
- sage/middleware/operators/agentic/runtime.pyc +0 -0
- sage/middleware/operators/agentic/timing_operator.pyc +0 -0
- sage/middleware/operators/agentic/tool_selection_operator.pyc +0 -0
- sage/middleware/operators/context/__init__.py +17 -0
- sage/middleware/operators/context/__init__.pyc +0 -0
- sage/middleware/operators/context/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/operators/context/__pycache__/critic_evaluation.cpython-311.pyc +0 -0
- sage/middleware/operators/context/__pycache__/model_context.cpython-311.pyc +0 -0
- sage/middleware/operators/context/__pycache__/quality_label.cpython-311.pyc +0 -0
- sage/middleware/operators/context/__pycache__/search_query_results.cpython-311.pyc +0 -0
- sage/middleware/operators/context/__pycache__/search_result.cpython-311.pyc +0 -0
- sage/middleware/operators/context/__pycache__/search_session.cpython-311.pyc +0 -0
- sage/middleware/operators/context/critic_evaluation.pyc +0 -0
- sage/middleware/operators/context/model_context.pyc +0 -0
- sage/middleware/operators/context/quality_label.pyc +0 -0
- sage/middleware/operators/context/search_query_results.pyc +0 -0
- sage/middleware/operators/context/search_result.pyc +0 -0
- sage/middleware/operators/context/search_session.pyc +0 -0
- sage/middleware/operators/filters/__init__.py +26 -0
- sage/middleware/operators/filters/__init__.pyc +0 -0
- sage/middleware/operators/filters/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/operators/filters/__pycache__/context_sink.cpython-311.pyc +0 -0
- sage/middleware/operators/filters/__pycache__/context_source.cpython-311.pyc +0 -0
- sage/middleware/operators/filters/__pycache__/evaluate_filter.cpython-311.pyc +0 -0
- sage/middleware/operators/filters/__pycache__/tool_filter.cpython-311.pyc +0 -0
- sage/middleware/operators/filters/context_sink.pyc +0 -0
- sage/middleware/operators/filters/context_source.pyc +0 -0
- sage/middleware/operators/filters/evaluate_filter.pyc +0 -0
- sage/middleware/operators/filters/tool_filter.pyc +0 -0
- sage/middleware/operators/llm/__init__.py +9 -0
- sage/middleware/operators/llm/__init__.pyc +0 -0
- sage/middleware/operators/llm/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/operators/llm/__pycache__/vllm_generator.cpython-311.pyc +0 -0
- sage/middleware/operators/llm/vllm_generator.pyc +0 -0
- sage/middleware/operators/rag/__init__.py +146 -0
- sage/middleware/operators/rag/__init__.pyc +0 -0
- sage/middleware/operators/rag/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/operators/rag/__pycache__/generator.cpython-311.pyc +0 -0
- sage/middleware/operators/rag/arxiv.pyc +0 -0
- sage/middleware/operators/rag/chunk.pyc +0 -0
- sage/middleware/operators/rag/document_loaders.pyc +0 -0
- sage/middleware/operators/rag/evaluate.pyc +0 -0
- sage/middleware/operators/rag/generator.pyc +0 -0
- sage/middleware/operators/rag/index_builder/__init__.py +48 -0
- sage/middleware/operators/rag/index_builder/__init__.pyc +0 -0
- sage/middleware/operators/rag/index_builder/builder.pyc +0 -0
- sage/middleware/operators/rag/index_builder/manifest.pyc +0 -0
- sage/middleware/operators/rag/index_builder/storage.pyc +0 -0
- sage/middleware/operators/rag/pipeline.pyc +0 -0
- sage/middleware/operators/rag/profiler.pyc +0 -0
- sage/middleware/operators/rag/promptor.pyc +0 -0
- sage/middleware/operators/rag/refiner.pyc +0 -0
- sage/middleware/operators/rag/reranker.pyc +0 -0
- sage/middleware/operators/rag/retriever.pyc +0 -0
- sage/middleware/operators/rag/searcher.pyc +0 -0
- sage/middleware/operators/rag/types.pyc +0 -0
- sage/middleware/operators/rag/writer.pyc +0 -0
- sage/middleware/operators/tools/__init__.py +28 -0
- sage/middleware/operators/tools/__init__.pyc +0 -0
- sage/middleware/operators/tools/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/operators/tools/__pycache__/arxiv_paper_searcher.cpython-311.pyc +0 -0
- sage/middleware/operators/tools/__pycache__/arxiv_searcher.cpython-311.pyc +0 -0
- sage/middleware/operators/tools/__pycache__/image_captioner.cpython-311.pyc +0 -0
- sage/middleware/operators/tools/__pycache__/nature_news_fetcher.cpython-311.pyc +0 -0
- sage/middleware/operators/tools/__pycache__/searcher_tool.cpython-311.pyc +0 -0
- sage/middleware/operators/tools/__pycache__/text_detector.cpython-311.pyc +0 -0
- sage/middleware/operators/tools/__pycache__/url_text_extractor.cpython-311.pyc +0 -0
- sage/middleware/operators/tools/arxiv_paper_searcher.pyc +0 -0
- sage/middleware/operators/tools/arxiv_searcher.pyc +0 -0
- sage/middleware/operators/tools/duckduckgo_searcher.pyc +0 -0
- sage/middleware/operators/tools/image_captioner.pyc +0 -0
- sage/middleware/operators/tools/nature_news_fetcher.pyc +0 -0
- sage/middleware/operators/tools/searcher_tool.pyc +0 -0
- sage/middleware/operators/tools/text_detector.pyc +0 -0
- sage/middleware/operators/tools/url_text_extractor.pyc +0 -0
- isage_middleware-0.1.3.1.dist-info/METADATA +0 -115
- isage_middleware-0.1.3.1.dist-info/RECORD +0 -288
- sage/middleware/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/__pycache__/_version.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__init__.py +0 -56
- sage/middleware/api/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/api/__pycache__/graph_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/graph_api.cpython-311.pyc +0 -0
- sage/middleware/api/__pycache__/kv_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/kv_api.cpython-311.pyc +0 -0
- sage/middleware/api/__pycache__/memory_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/memory_api.cpython-311.pyc +0 -0
- sage/middleware/api/__pycache__/vdb_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/vdb_api.cpython-311.pyc +0 -0
- sage/middleware/api/graph_api.py +0 -74
- sage/middleware/api/kv_api.py +0 -45
- sage/middleware/api/memory_api.py +0 -64
- sage/middleware/api/vdb_api.py +0 -60
- sage/middleware/components/enterprise/__init__.py +0 -56
- sage/middleware/components/enterprise/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/enterprise/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/__init__.py +0 -56
- sage/middleware/components/neuromem/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/memory_manager.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/memory_manager.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/memory_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/memory_service.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__init__.py +0 -56
- sage/middleware/components/neuromem/memory_collection/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/base_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/base_collection.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/graph_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/graph_collection.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/kv_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/kv_collection.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/vdb_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/vdb_collection.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/base_collection.py +0 -167
- sage/middleware/components/neuromem/memory_collection/graph_collection.py +0 -11
- sage/middleware/components/neuromem/memory_collection/kv_collection.py +0 -709
- sage/middleware/components/neuromem/memory_collection/vdb_collection.py +0 -922
- sage/middleware/components/neuromem/memory_manager.py +0 -401
- sage/middleware/components/neuromem/memory_service.py +0 -324
- sage/middleware/components/neuromem/micro_service/__init__.py +0 -56
- sage/middleware/components/neuromem/micro_service/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb_service.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/neuromem_vdb.py +0 -198
- sage/middleware/components/neuromem/micro_service/neuromem_vdb_service.py +0 -118
- sage/middleware/components/neuromem/search_engine/__init__.py +0 -56
- sage/middleware/components/neuromem/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/__init__.py +0 -56
- sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/base_graph_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/base_graph_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/base_graph_index.py +0 -40
- sage/middleware/components/neuromem/search_engine/hybird_index/__init__.py +0 -56
- sage/middleware/components/neuromem/search_engine/hybird_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/hybird_index/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__init__.py +0 -56
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/base_kv_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/base_kv_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/bm25s_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/bm25s_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/base_kv_index.py +0 -76
- sage/middleware/components/neuromem/search_engine/kv_index/bm25s_index.py +0 -320
- sage/middleware/components/neuromem/search_engine/vdb_index/__init__.py +0 -56
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/base_vdb_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/base_vdb_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/faiss_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/faiss_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/base_vdb_index.py +0 -53
- sage/middleware/components/neuromem/search_engine/vdb_index/faiss_index.py +0 -700
- sage/middleware/components/neuromem/storage_engine/__init__.py +0 -56
- sage/middleware/components/neuromem/storage_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/metadata_storage.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/metadata_storage.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/text_storage.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/text_storage.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/vector_storage.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/vector_storage.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__init__.py +0 -56
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/base_kv_backend.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/base_kv_backend.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/dict_kv_backend.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/dict_kv_backend.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/base_kv_backend.py +0 -65
- sage/middleware/components/neuromem/storage_engine/kv_backend/dict_kv_backend.py +0 -54
- sage/middleware/components/neuromem/storage_engine/metadata_storage.py +0 -260
- sage/middleware/components/neuromem/storage_engine/text_storage.py +0 -106
- sage/middleware/components/neuromem/storage_engine/vector_storage.py +0 -85
- sage/middleware/components/neuromem/tests/__init__.py +0 -56
- sage/middleware/components/neuromem/tests/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/__pycache__/test_memory_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/__pycache__/test_memory_service.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/__init__.py +0 -56
- sage/middleware/components/neuromem/tests/core_test/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__init__.py +0 -56
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/kv_collection_test.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/kv_collection_test.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/vdb_collection_test.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/vdb_collection_test.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/kv_collection_test.py +0 -60
- sage/middleware/components/neuromem/tests/core_test/collection_test/vdb_collection_test.py +0 -88
- sage/middleware/components/neuromem/tests/core_test/manager_test.py +0 -154
- sage/middleware/components/neuromem/tests/test_memory_service.py +0 -293
- sage/middleware/components/neuromem/utils/__init__.py +0 -56
- sage/middleware/components/neuromem/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/utils/__pycache__/path_utils.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/utils/__pycache__/path_utils.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/utils/path_utils.py +0 -25
- sage/middleware/components/sage_db/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/sage_db/__pycache__/sage_db.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/sage_db/__pycache__/sage_db.cpython-311.pyc +0 -0
- sage/middleware/components/sage_db/python/__init__.py +0 -56
- sage/middleware/components/sage_db/python/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/sage_db/python/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/sage_db/python/__pycache__/sage_db.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/sage_db/python/__pycache__/sage_db.cpython-311.pyc +0 -0
- sage/middleware/components/sage_db/python/sage_db.py +0 -44
- sage/middleware/components/sage_db/sage_db.py +0 -187
- sage/middleware/components/sage_db/tests/__pycache__/test_python.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/sage_db/tests/__pycache__/test_python.cpython-311.pyc +0 -0
- sage/middleware/components/sage_db/tests/test_python.py +0 -144
- sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-311.opt-2.pyc +0 -0
- sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-311.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_demo.cpython-311.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-311.pyc +0 -0
- sage/middleware/examples/api_usage_tutorial.py +0 -339
- sage/middleware/examples/dag_microservices_demo.py +0 -219
- sage/middleware/examples/microservices_demo.py +0 -0
- sage/middleware/examples/microservices_integration_demo.py +0 -370
- sage/middleware/examples/microservices_registration_demo.py +0 -140
- sage/middleware/services/__init__.py +0 -56
- sage/middleware/services/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/graph/__init__.py +0 -56
- sage/middleware/services/graph/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/graph/__pycache__/graph_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/__pycache__/graph_index.cpython-311.pyc +0 -0
- sage/middleware/services/graph/__pycache__/graph_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/__pycache__/graph_service.cpython-311.pyc +0 -0
- sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-311.pyc +0 -0
- sage/middleware/services/graph/examples/graph_demo.py +0 -178
- sage/middleware/services/graph/graph_index.py +0 -194
- sage/middleware/services/graph/graph_service.py +0 -609
- sage/middleware/services/graph/search_engine/__init__.py +0 -56
- sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-311.pyc +0 -0
- sage/middleware/services/graph/search_engine/base_graph_index.py +0 -0
- sage/middleware/services/kv/__init__.py +0 -56
- sage/middleware/services/kv/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/kv/__pycache__/kv_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/__pycache__/kv_service.cpython-311.pyc +0 -0
- sage/middleware/services/kv/examples/__pycache__/kv_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/examples/__pycache__/kv_demo.cpython-311.pyc +0 -0
- sage/middleware/services/kv/examples/kv_demo.py +0 -213
- sage/middleware/services/kv/kv_service.py +0 -306
- sage/middleware/services/kv/search_engine/__init__.py +0 -56
- sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-311.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-311.pyc +0 -0
- sage/middleware/services/kv/search_engine/base_kv_index.py +0 -75
- sage/middleware/services/kv/search_engine/bm25s_index.py +0 -238
- sage/middleware/services/memory/__init__.py +0 -56
- sage/middleware/services/memory/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/memory/__pycache__/memory_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/__pycache__/memory_service.cpython-311.pyc +0 -0
- sage/middleware/services/memory/examples/__pycache__/memory_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/examples/__pycache__/memory_demo.cpython-311.pyc +0 -0
- sage/middleware/services/memory/examples/dag_microservices_demo.py +0 -219
- sage/middleware/services/memory/examples/memory_demo.py +0 -490
- sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.pyc +0 -0
- sage/middleware/services/memory/memory_collection/graph_collection.py +0 -0
- sage/middleware/services/memory/memory_service.py +0 -477
- sage/middleware/services/memory/utils/__init__.py +0 -56
- sage/middleware/services/memory/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-311.pyc +0 -0
- sage/middleware/services/memory/utils/path_utils.py +0 -0
- sage/middleware/services/vdb/__init__.py +0 -56
- sage/middleware/services/vdb/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/__pycache__/vdb_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/__pycache__/vdb_service.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/examples/__pycache__/vdb_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/examples/__pycache__/vdb_demo.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/examples/vdb_demo.py +0 -447
- sage/middleware/services/vdb/search_engine/__init__.py +0 -56
- sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/search_engine/base_vdb_index.py +0 -58
- sage/middleware/services/vdb/search_engine/faiss_index.py +0 -461
- sage/middleware/services/vdb/vdb_service.py +0 -436
- sage/middleware/utils/__init__.py +0 -56
- sage/middleware/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__init__.py +0 -56
- sage/middleware/utils/embedding/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/_cohere.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/_cohere.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/bedrock.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/bedrock.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/hf.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/hf.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/instructor.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/instructor.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/jina.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/jina.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/lollms.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/lollms.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/ollama.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/ollama.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/openai.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/openai.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/zhipu.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/zhipu.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/_cohere.py +0 -68
- sage/middleware/utils/embedding/bedrock.py +0 -174
- sage/middleware/utils/embedding/embedding_api.py +0 -12
- sage/middleware/utils/embedding/embedding_model.py +0 -150
- sage/middleware/utils/embedding/hf.py +0 -90
- sage/middleware/utils/embedding/instructor.py +0 -10
- sage/middleware/utils/embedding/jina.py +0 -115
- sage/middleware/utils/embedding/lollms.py +0 -100
- sage/middleware/utils/embedding/mockembedder.py +0 -46
- sage/middleware/utils/embedding/nvidia_openai.py +0 -97
- sage/middleware/utils/embedding/ollama.py +0 -97
- sage/middleware/utils/embedding/openai.py +0 -112
- sage/middleware/utils/embedding/siliconcloud.py +0 -133
- sage/middleware/utils/embedding/zhipu.py +0 -85
- {isage_middleware-0.1.3.1.dist-info → isage_middleware-0.2.0.0.dist-info}/WHEEL +0 -0
- {isage_middleware-0.1.3.1.dist-info → isage_middleware-0.2.0.0.dist-info}/top_level.txt +0 -0
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
|
|
3
|
-
if sys.version_info < (3, 9):
|
|
4
|
-
from typing import AsyncIterator
|
|
5
|
-
else:
|
|
6
|
-
from collections.abc import AsyncIterator
|
|
7
|
-
import pipmaster as pm # Pipmaster for dynamic library install
|
|
8
|
-
|
|
9
|
-
# Dependencies should be installed via requirements.txt
|
|
10
|
-
# aiohttp and tenacity are required for this module
|
|
11
|
-
|
|
12
|
-
try:
|
|
13
|
-
import aiohttp
|
|
14
|
-
except ImportError:
|
|
15
|
-
raise ImportError(
|
|
16
|
-
"aiohttp package is required for Lollms embedding functionality. "
|
|
17
|
-
"Please install it via: pip install aiohttp"
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
try:
|
|
21
|
-
import tenacity
|
|
22
|
-
except ImportError:
|
|
23
|
-
raise ImportError(
|
|
24
|
-
"tenacity package is required for Lollms embedding functionality. "
|
|
25
|
-
"Please install it via: pip install tenacity"
|
|
26
|
-
)
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
async def lollms_embed(
|
|
31
|
-
text: str,
|
|
32
|
-
embed_model=None,
|
|
33
|
-
base_url="http://localhost:9600",
|
|
34
|
-
**kwargs,
|
|
35
|
-
) -> list:
|
|
36
|
-
"""
|
|
37
|
-
Generate embedding for a single text using lollms server.
|
|
38
|
-
|
|
39
|
-
Args:
|
|
40
|
-
text: The string to embed
|
|
41
|
-
embed_model: Model name (not used directly as lollms uses configured vectorizer)
|
|
42
|
-
base_url: URL of the lollms server
|
|
43
|
-
**kwargs: Additional arguments passed to the request
|
|
44
|
-
|
|
45
|
-
Returns:
|
|
46
|
-
list[float]: The embedding vector
|
|
47
|
-
"""
|
|
48
|
-
api_key = kwargs.pop("api_key", None)
|
|
49
|
-
headers = (
|
|
50
|
-
{"Content-Type": "application/json", "Authorization": api_key}
|
|
51
|
-
if api_key
|
|
52
|
-
else {"Content-Type": "application/json"}
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
async with aiohttp.ClientSession(headers=headers) as session:
|
|
56
|
-
request_data = {"text": text}
|
|
57
|
-
|
|
58
|
-
async with session.post(
|
|
59
|
-
f"{base_url}/lollms_embed",
|
|
60
|
-
json=request_data,
|
|
61
|
-
) as response:
|
|
62
|
-
result = await response.json()
|
|
63
|
-
return result["vector"]
|
|
64
|
-
|
|
65
|
-
import requests
|
|
66
|
-
|
|
67
|
-
def lollms_embed_sync(
|
|
68
|
-
text: str,
|
|
69
|
-
embed_model=None,
|
|
70
|
-
base_url="http://localhost:9600",
|
|
71
|
-
**kwargs,
|
|
72
|
-
) -> list[float]:
|
|
73
|
-
"""
|
|
74
|
-
同步版本:使用 lollms 本地服务生成 embedding。
|
|
75
|
-
|
|
76
|
-
Args:
|
|
77
|
-
text: 输入文本
|
|
78
|
-
embed_model: 模型名(未直接使用)
|
|
79
|
-
base_url: lollms 服务地址
|
|
80
|
-
**kwargs: 可选参数,例如 api_key
|
|
81
|
-
|
|
82
|
-
Returns:
|
|
83
|
-
list[float]: 生成的向量
|
|
84
|
-
"""
|
|
85
|
-
api_key = kwargs.pop("api_key", None)
|
|
86
|
-
headers = {
|
|
87
|
-
"Content-Type": "application/json",
|
|
88
|
-
}
|
|
89
|
-
if api_key:
|
|
90
|
-
headers["Authorization"] = api_key
|
|
91
|
-
|
|
92
|
-
request_data = {"text": text}
|
|
93
|
-
|
|
94
|
-
try:
|
|
95
|
-
response = requests.post(f"{base_url}/lollms_embed", json=request_data, headers=headers)
|
|
96
|
-
response.raise_for_status()
|
|
97
|
-
result = response.json()
|
|
98
|
-
return result["vector"]
|
|
99
|
-
except Exception as e:
|
|
100
|
-
raise RuntimeError(f"lollms embedding request failed: {str(e)}")
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import torch
|
|
2
|
-
import hashlib
|
|
3
|
-
from typing import Optional
|
|
4
|
-
|
|
5
|
-
class MockTextEmbedder:
|
|
6
|
-
def __init__(self, model_name: str = 'mock-model', fixed_dim: int = 128):
|
|
7
|
-
"""Mock 模型,输出固定维度的随机张量(但相同文本输出一致)"""
|
|
8
|
-
self.fixed_dim = fixed_dim
|
|
9
|
-
# 用模型名作为随机种子的一部分,确保不同实例行为一致
|
|
10
|
-
self.seed = int(hashlib.sha256(model_name.encode()).hexdigest()[:8], 16)
|
|
11
|
-
# 添加 method_name 属性以兼容 MemoryManager
|
|
12
|
-
self.method_name = "mockembedder"
|
|
13
|
-
|
|
14
|
-
def encode(self, text: str, max_length: int = 512, stride: Optional[int] = None) -> torch.Tensor:
|
|
15
|
-
"""生成固定维度的伪嵌入(相同文本输出相同)"""
|
|
16
|
-
if not text.strip():
|
|
17
|
-
return torch.zeros(self.fixed_dim)
|
|
18
|
-
|
|
19
|
-
# 根据文本内容生成确定性随机数
|
|
20
|
-
text_seed = self.seed + int(hashlib.sha256(text.encode()).hexdigest()[:8], 16)
|
|
21
|
-
torch.manual_seed(text_seed)
|
|
22
|
-
|
|
23
|
-
# 生成随机向量(与原有代码维度逻辑一致)
|
|
24
|
-
if stride is None or len(text.split()) <= max_length:
|
|
25
|
-
return self._embed_single()
|
|
26
|
-
else:
|
|
27
|
-
return self._embed_with_sliding_window()
|
|
28
|
-
|
|
29
|
-
def _embed_single(self) -> torch.Tensor:
|
|
30
|
-
"""模拟单文本嵌入"""
|
|
31
|
-
embedding = torch.randn(384) # 模拟原始模型的中间维度
|
|
32
|
-
return self._adjust_dimension(embedding)
|
|
33
|
-
|
|
34
|
-
def _embed_with_sliding_window(self) -> torch.Tensor:
|
|
35
|
-
"""模拟长文本滑动窗口嵌入"""
|
|
36
|
-
embeddings = torch.stack([torch.randn(384) for _ in range(3)]) # 模拟3个窗口
|
|
37
|
-
return self._adjust_dimension(embeddings.mean(dim=0))
|
|
38
|
-
|
|
39
|
-
def _adjust_dimension(self, embedding: torch.Tensor) -> torch.Tensor:
|
|
40
|
-
"""保持与原代码一致的维度调整逻辑"""
|
|
41
|
-
if embedding.size(0) > self.fixed_dim:
|
|
42
|
-
return embedding[:self.fixed_dim]
|
|
43
|
-
elif embedding.size(0) < self.fixed_dim:
|
|
44
|
-
padding = torch.zeros(self.fixed_dim - embedding.size(0))
|
|
45
|
-
return torch.cat((embedding, padding))
|
|
46
|
-
return embedding
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
import sys
|
|
3
|
-
import os
|
|
4
|
-
|
|
5
|
-
if sys.version_info < (3, 9):
|
|
6
|
-
pass
|
|
7
|
-
else:
|
|
8
|
-
pass
|
|
9
|
-
|
|
10
|
-
import pipmaster as pm # Pipmaster for dynamic library install
|
|
11
|
-
|
|
12
|
-
# Dependencies should be installed via requirements.txt
|
|
13
|
-
# openai is required for this module
|
|
14
|
-
|
|
15
|
-
try:
|
|
16
|
-
from openai import AsyncOpenAI
|
|
17
|
-
except ImportError:
|
|
18
|
-
raise ImportError(
|
|
19
|
-
"openai package is required for NVIDIA OpenAI embedding functionality. "
|
|
20
|
-
"Please install it via: pip install openai"
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
async def nvidia_openai_embed(
|
|
24
|
-
text: str,
|
|
25
|
-
model: str = "nvidia/llama-3.2-nv-embedqa-1b-v1",
|
|
26
|
-
base_url: str = "https://integrate.api.nvidia.com/v1",
|
|
27
|
-
api_key: str = None,
|
|
28
|
-
input_type: str = "passage", # query for retrieval, passage for embedding
|
|
29
|
-
trunc: str = "NONE", # NONE or START or END
|
|
30
|
-
encode: str = "float", # float or base64
|
|
31
|
-
) -> list:
|
|
32
|
-
"""
|
|
33
|
-
Generate embedding for a single text using NVIDIA NIM-compatible OpenAI API.
|
|
34
|
-
|
|
35
|
-
Returns:
|
|
36
|
-
list[float]: The embedding vector.
|
|
37
|
-
"""
|
|
38
|
-
if api_key:
|
|
39
|
-
os.environ["OPENAI_API_KEY"] = api_key
|
|
40
|
-
|
|
41
|
-
openai_async_client = (
|
|
42
|
-
AsyncOpenAI() if base_url is None else AsyncOpenAI(base_url=base_url)
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
response = await openai_async_client.embeddings.create(
|
|
46
|
-
model=model,
|
|
47
|
-
input=text,
|
|
48
|
-
encoding_format=encode,
|
|
49
|
-
extra_body={"input_type": input_type, "truncate": trunc},
|
|
50
|
-
)
|
|
51
|
-
|
|
52
|
-
return response.data[0].embedding
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
import os
|
|
56
|
-
from openai import OpenAI # 同步 client
|
|
57
|
-
|
|
58
|
-
def nvidia_openai_embed_sync(
|
|
59
|
-
text: str,
|
|
60
|
-
model: str = "nvidia/llama-3.2-nv-embedqa-1b-v1",
|
|
61
|
-
base_url: str = "https://integrate.api.nvidia.com/v1",
|
|
62
|
-
api_key: str = None,
|
|
63
|
-
input_type: str = "passage", # query for retrieval, passage for embedding
|
|
64
|
-
trunc: str = "NONE", # NONE or START or END
|
|
65
|
-
encode: str = "float", # float or base64
|
|
66
|
-
) -> list[float]:
|
|
67
|
-
"""
|
|
68
|
-
同步版本:使用 NVIDIA NIM 接口生成文本 embedding。
|
|
69
|
-
|
|
70
|
-
Args:
|
|
71
|
-
text: 输入文本
|
|
72
|
-
model: 使用的模型 ID
|
|
73
|
-
base_url: 接口地址(默认为 NVIDIA 接口)
|
|
74
|
-
api_key: API 密钥(使用 OPENAI_API_KEY 环境变量)
|
|
75
|
-
input_type: 输入类型(passage / query)
|
|
76
|
-
trunc: 截断策略
|
|
77
|
-
encode: 返回格式(float / base64)
|
|
78
|
-
|
|
79
|
-
Returns:
|
|
80
|
-
list[float]: 嵌入向量
|
|
81
|
-
"""
|
|
82
|
-
if api_key:
|
|
83
|
-
os.environ["OPENAI_API_KEY"] = api_key
|
|
84
|
-
|
|
85
|
-
client = OpenAI(base_url=base_url)
|
|
86
|
-
|
|
87
|
-
response = client.embeddings.create(
|
|
88
|
-
model=model,
|
|
89
|
-
input=text,
|
|
90
|
-
encoding_format=encode,
|
|
91
|
-
extra_body={
|
|
92
|
-
"input_type": input_type,
|
|
93
|
-
"truncate": trunc
|
|
94
|
-
},
|
|
95
|
-
)
|
|
96
|
-
|
|
97
|
-
return response.data[0].embedding
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
|
|
3
|
-
if sys.version_info < (3, 9):
|
|
4
|
-
from typing import AsyncIterator
|
|
5
|
-
else:
|
|
6
|
-
from collections.abc import AsyncIterator
|
|
7
|
-
|
|
8
|
-
import pipmaster as pm # Pipmaster for dynamic library install
|
|
9
|
-
|
|
10
|
-
# Dependencies should be installed via requirements.txt
|
|
11
|
-
# ollama and tenacity are required for this module to work
|
|
12
|
-
|
|
13
|
-
try:
|
|
14
|
-
import ollama
|
|
15
|
-
except ImportError:
|
|
16
|
-
raise ImportError(
|
|
17
|
-
"ollama package is required for Ollama embedding functionality. "
|
|
18
|
-
"Please install it via: pip install ollama"
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
try:
|
|
22
|
-
import tenacity
|
|
23
|
-
except ImportError:
|
|
24
|
-
raise ImportError(
|
|
25
|
-
"tenacity package is required for Ollama embedding functionality. "
|
|
26
|
-
"Please install it via: pip install tenacity"
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
import numpy as np
|
|
32
|
-
from typing import Union
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
async def ollama_embed(
|
|
38
|
-
text: str,
|
|
39
|
-
embed_model,
|
|
40
|
-
**kwargs
|
|
41
|
-
) -> list:
|
|
42
|
-
"""
|
|
43
|
-
Generate embedding for a single text using Ollama.
|
|
44
|
-
|
|
45
|
-
Args:
|
|
46
|
-
text: A single input string
|
|
47
|
-
embed_model: The name of the Ollama embedding model
|
|
48
|
-
**kwargs: Optional arguments (e.g. base_url, api_key)
|
|
49
|
-
|
|
50
|
-
Returns:
|
|
51
|
-
list[float]: The embedding vector
|
|
52
|
-
"""
|
|
53
|
-
import ollama
|
|
54
|
-
|
|
55
|
-
api_key = kwargs.pop("api_key", None)
|
|
56
|
-
headers = {
|
|
57
|
-
"Content-Type": "application/json",
|
|
58
|
-
"User-Agent": "SAGE/0.0",
|
|
59
|
-
}
|
|
60
|
-
if api_key:
|
|
61
|
-
headers["Authorization"] = api_key
|
|
62
|
-
kwargs["headers"] = headers
|
|
63
|
-
|
|
64
|
-
ollama_client = ollama.Client(**kwargs)
|
|
65
|
-
data = ollama_client.embed(model=embed_model, input=text)
|
|
66
|
-
return data["embedding"]
|
|
67
|
-
|
|
68
|
-
def ollama_embed_sync(
|
|
69
|
-
text: str,
|
|
70
|
-
embed_model,
|
|
71
|
-
**kwargs
|
|
72
|
-
) -> list[float]:
|
|
73
|
-
"""
|
|
74
|
-
同步版本:使用 Ollama 客户端生成 embedding 向量。
|
|
75
|
-
|
|
76
|
-
Args:
|
|
77
|
-
text: 输入文本
|
|
78
|
-
embed_model: 使用的模型名
|
|
79
|
-
**kwargs: 额外参数(可包含 base_url、api_key)
|
|
80
|
-
|
|
81
|
-
Returns:
|
|
82
|
-
list[float]: embedding 向量
|
|
83
|
-
"""
|
|
84
|
-
import ollama
|
|
85
|
-
|
|
86
|
-
api_key = kwargs.pop("api_key", None)
|
|
87
|
-
headers = {
|
|
88
|
-
"Content-Type": "application/json",
|
|
89
|
-
"User-Agent": "SAGE/0.0",
|
|
90
|
-
}
|
|
91
|
-
if api_key:
|
|
92
|
-
headers["Authorization"] = api_key
|
|
93
|
-
kwargs["headers"] = headers
|
|
94
|
-
|
|
95
|
-
ollama_client = ollama.Client(**kwargs)
|
|
96
|
-
data = ollama_client.embed(model=embed_model, input=text)
|
|
97
|
-
return data["embedding"]
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
import sys
|
|
3
|
-
import os
|
|
4
|
-
import logging
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
if sys.version_info < (3, 9):
|
|
9
|
-
from typing import AsyncIterator
|
|
10
|
-
else:
|
|
11
|
-
from collections.abc import AsyncIterator
|
|
12
|
-
import pipmaster as pm # Pipmaster for dynamic library install
|
|
13
|
-
|
|
14
|
-
# Dependencies should be installed via requirements.txt
|
|
15
|
-
# openai is required for this module
|
|
16
|
-
|
|
17
|
-
try:
|
|
18
|
-
from openai import AsyncOpenAI # 确保导入了这个
|
|
19
|
-
except ImportError:
|
|
20
|
-
raise ImportError(
|
|
21
|
-
"openai package is required for OpenAI embedding functionality. "
|
|
22
|
-
"Please install it via: pip install openai"
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
async def openai_embed(
|
|
26
|
-
text: str,
|
|
27
|
-
model: str = "text-embedding-3-small",
|
|
28
|
-
base_url: str = None,
|
|
29
|
-
api_key: str = None,
|
|
30
|
-
) -> list:
|
|
31
|
-
"""
|
|
32
|
-
Generate embedding for a single text using OpenAI Embedding API.
|
|
33
|
-
|
|
34
|
-
Args:
|
|
35
|
-
text: Input string
|
|
36
|
-
model: OpenAI embedding model name
|
|
37
|
-
base_url: Optional custom endpoint
|
|
38
|
-
api_key: OpenAI API key
|
|
39
|
-
|
|
40
|
-
Returns:
|
|
41
|
-
list[float]: The embedding vector
|
|
42
|
-
"""
|
|
43
|
-
if not api_key:
|
|
44
|
-
api_key = os.environ["OPENAI_API_KEY"]
|
|
45
|
-
|
|
46
|
-
default_headers = {
|
|
47
|
-
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_8) SAGE/0.0",
|
|
48
|
-
"Content-Type": "application/json",
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
openai_async_client = (
|
|
52
|
-
AsyncOpenAI(default_headers=default_headers, api_key=api_key)
|
|
53
|
-
if base_url is None
|
|
54
|
-
else AsyncOpenAI(
|
|
55
|
-
base_url=base_url, default_headers=default_headers, api_key=api_key
|
|
56
|
-
)
|
|
57
|
-
)
|
|
58
|
-
|
|
59
|
-
response = await openai_async_client.embeddings.create(
|
|
60
|
-
model=model,
|
|
61
|
-
input=text,
|
|
62
|
-
encoding_format="float"
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
return response.data[0].embedding
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
import os
|
|
69
|
-
from openai import OpenAI # 同步版 client
|
|
70
|
-
from openai.types import CreateEmbeddingResponse
|
|
71
|
-
|
|
72
|
-
def openai_embed_sync(
|
|
73
|
-
text: str,
|
|
74
|
-
model: str = "text-embedding-3-small",
|
|
75
|
-
base_url: str = None,
|
|
76
|
-
api_key: str = None,
|
|
77
|
-
) -> list[float]:
|
|
78
|
-
"""
|
|
79
|
-
同步生成 OpenAI embedding。
|
|
80
|
-
|
|
81
|
-
Args:
|
|
82
|
-
text: 输入文本
|
|
83
|
-
model: OpenAI embedding 模型名
|
|
84
|
-
base_url: 可选自定义 API endpoint
|
|
85
|
-
api_key: OpenAI API 密钥
|
|
86
|
-
|
|
87
|
-
Returns:
|
|
88
|
-
list[float]: embedding 向量
|
|
89
|
-
"""
|
|
90
|
-
if not api_key:
|
|
91
|
-
api_key = os.environ["OPENAI_API_KEY"]
|
|
92
|
-
|
|
93
|
-
default_headers = {
|
|
94
|
-
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_8) SAGE/0.0",
|
|
95
|
-
"Content-Type": "application/json",
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
openai_sync_client = (
|
|
99
|
-
OpenAI(default_headers=default_headers, api_key=api_key)
|
|
100
|
-
if base_url is None
|
|
101
|
-
else OpenAI(
|
|
102
|
-
base_url=base_url, default_headers=default_headers, api_key=api_key
|
|
103
|
-
)
|
|
104
|
-
)
|
|
105
|
-
|
|
106
|
-
response: CreateEmbeddingResponse = openai_sync_client.embeddings.create(
|
|
107
|
-
model=model,
|
|
108
|
-
input=text,
|
|
109
|
-
encoding_format="float"
|
|
110
|
-
)
|
|
111
|
-
|
|
112
|
-
return response.data[0].embedding
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
import os
|
|
3
|
-
import sys
|
|
4
|
-
|
|
5
|
-
if sys.version_info < (3, 9):
|
|
6
|
-
pass
|
|
7
|
-
else:
|
|
8
|
-
pass
|
|
9
|
-
import pipmaster as pm # Pipmaster for dynamic library install
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
from openai import (
|
|
13
|
-
APIConnectionError,
|
|
14
|
-
RateLimitError,
|
|
15
|
-
APITimeoutError,
|
|
16
|
-
)
|
|
17
|
-
from tenacity import (
|
|
18
|
-
retry,
|
|
19
|
-
stop_after_attempt,
|
|
20
|
-
wait_exponential,
|
|
21
|
-
retry_if_exception_type,
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
import numpy as np
|
|
25
|
-
import aiohttp
|
|
26
|
-
import base64
|
|
27
|
-
import struct
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
async def siliconcloud_embedding(
|
|
33
|
-
text: str,
|
|
34
|
-
model: str = "netease-youdao/bce-embedding-base_v1",
|
|
35
|
-
base_url: str = "https://api.siliconflow.cn/v1/embeddings",
|
|
36
|
-
max_token_size: int = 512,
|
|
37
|
-
api_key: str = None,
|
|
38
|
-
) -> list:
|
|
39
|
-
"""
|
|
40
|
-
Generate embedding for a single text using SiliconCloud (NetEase Youdao).
|
|
41
|
-
|
|
42
|
-
Args:
|
|
43
|
-
text: Input string
|
|
44
|
-
model: Embedding model name
|
|
45
|
-
base_url: API endpoint
|
|
46
|
-
max_token_size: Max text length in tokens (cut if needed)
|
|
47
|
-
api_key: Your SiliconCloud API key
|
|
48
|
-
|
|
49
|
-
Returns:
|
|
50
|
-
list[float]: The embedding vector
|
|
51
|
-
"""
|
|
52
|
-
if api_key and not api_key.startswith("Bearer "):
|
|
53
|
-
api_key = "Bearer " + api_key
|
|
54
|
-
|
|
55
|
-
headers = {
|
|
56
|
-
"Authorization": api_key,
|
|
57
|
-
"Content-Type": "application/json",
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
text = text[:max_token_size]
|
|
61
|
-
payload = {
|
|
62
|
-
"model": model,
|
|
63
|
-
"input": [text],
|
|
64
|
-
"encoding_format": "base64",
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
async with aiohttp.ClientSession() as session:
|
|
68
|
-
async with session.post(base_url, headers=headers, json=payload) as response:
|
|
69
|
-
content = await response.json()
|
|
70
|
-
if "code" in content:
|
|
71
|
-
raise ValueError(content)
|
|
72
|
-
base64_string = content["data"][0]["embedding"]
|
|
73
|
-
|
|
74
|
-
decode_bytes = base64.b64decode(base64_string)
|
|
75
|
-
n = len(decode_bytes) // 4
|
|
76
|
-
float_array = struct.unpack("<" + "f" * n, decode_bytes)
|
|
77
|
-
return list(float_array)
|
|
78
|
-
|
|
79
|
-
import requests
|
|
80
|
-
import base64
|
|
81
|
-
import struct
|
|
82
|
-
|
|
83
|
-
def siliconcloud_embedding_sync(
|
|
84
|
-
text: str,
|
|
85
|
-
model: str = "netease-youdao/bce-embedding-base_v1",
|
|
86
|
-
base_url: str = "https://api.siliconflow.cn/v1/embeddings",
|
|
87
|
-
max_token_size: int = 512,
|
|
88
|
-
api_key: str = None,
|
|
89
|
-
) -> list[float]:
|
|
90
|
-
"""
|
|
91
|
-
同步版本:使用 SiliconCloud (NetEase Youdao) 接口获取文本 embedding。
|
|
92
|
-
|
|
93
|
-
Args:
|
|
94
|
-
text: 输入文本
|
|
95
|
-
model: 模型名称
|
|
96
|
-
base_url: 接口地址
|
|
97
|
-
max_token_size: 截断长度(按字符)
|
|
98
|
-
api_key: API 密钥(可选,带或不带 "Bearer ")
|
|
99
|
-
|
|
100
|
-
Returns:
|
|
101
|
-
list[float]: embedding 向量
|
|
102
|
-
"""
|
|
103
|
-
if api_key and not api_key.startswith("Bearer "):
|
|
104
|
-
api_key = "Bearer " + api_key
|
|
105
|
-
|
|
106
|
-
headers = {
|
|
107
|
-
"Authorization": api_key,
|
|
108
|
-
"Content-Type": "application/json",
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
text = text[:max_token_size]
|
|
112
|
-
payload = {
|
|
113
|
-
"model": model,
|
|
114
|
-
"input": [text],
|
|
115
|
-
"encoding_format": "base64",
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
try:
|
|
119
|
-
response = requests.post(base_url, headers=headers, json=payload)
|
|
120
|
-
response.raise_for_status()
|
|
121
|
-
content = response.json()
|
|
122
|
-
|
|
123
|
-
if "code" in content:
|
|
124
|
-
raise ValueError(f"SiliconCloud API error: {content}")
|
|
125
|
-
|
|
126
|
-
base64_string = content["data"][0]["embedding"]
|
|
127
|
-
decode_bytes = base64.b64decode(base64_string)
|
|
128
|
-
n = len(decode_bytes) // 4
|
|
129
|
-
float_array = struct.unpack("<" + "f" * n, decode_bytes)
|
|
130
|
-
return list(float_array)
|
|
131
|
-
|
|
132
|
-
except Exception as e:
|
|
133
|
-
raise RuntimeError(f"SiliconCloud embedding failed: {str(e)}")
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import re
|
|
3
|
-
import json
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
if sys.version_info < (3, 9):
|
|
7
|
-
pass
|
|
8
|
-
else:
|
|
9
|
-
pass
|
|
10
|
-
import pipmaster as pm # Pipmaster for dynamic library install
|
|
11
|
-
|
|
12
|
-
# Dependencies should be installed via requirements.txt
|
|
13
|
-
# zhipuai is required for this module
|
|
14
|
-
|
|
15
|
-
try:
|
|
16
|
-
import zhipuai
|
|
17
|
-
except ImportError:
|
|
18
|
-
raise ImportError(
|
|
19
|
-
"zhipuai package is required for ZhipuAI embedding functionality. "
|
|
20
|
-
"Please install it via: pip install zhipuai"
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
async def zhipu_embedding(
|
|
25
|
-
text: str,
|
|
26
|
-
model: str = "embedding-3",
|
|
27
|
-
api_key: str = None,
|
|
28
|
-
**kwargs
|
|
29
|
-
) -> list:
|
|
30
|
-
"""
|
|
31
|
-
Generate embedding for a single text using ZhipuAI.
|
|
32
|
-
|
|
33
|
-
Args:
|
|
34
|
-
text: Input string
|
|
35
|
-
model: Embedding model name
|
|
36
|
-
api_key: ZhipuAI API key
|
|
37
|
-
**kwargs: Additional arguments to ZhipuAI client
|
|
38
|
-
|
|
39
|
-
Returns:
|
|
40
|
-
list[float]: Embedding vector
|
|
41
|
-
"""
|
|
42
|
-
try:
|
|
43
|
-
from zhipuai import ZhipuAI
|
|
44
|
-
except ImportError:
|
|
45
|
-
raise ImportError("Please install zhipuai before using this backend.")
|
|
46
|
-
|
|
47
|
-
client = ZhipuAI(api_key=api_key) if api_key else ZhipuAI()
|
|
48
|
-
|
|
49
|
-
try:
|
|
50
|
-
response = client.embeddings.create(model=model, input=[text], **kwargs)
|
|
51
|
-
return response.data[0].embedding
|
|
52
|
-
except Exception as e:
|
|
53
|
-
raise Exception(f"Error calling ChatGLM Embedding API: {str(e)}")
|
|
54
|
-
|
|
55
|
-
def zhipu_embedding_sync(
|
|
56
|
-
text: str,
|
|
57
|
-
model: str = "embedding-3",
|
|
58
|
-
api_key: str = None,
|
|
59
|
-
**kwargs
|
|
60
|
-
) -> list[float]:
|
|
61
|
-
"""
|
|
62
|
-
同步调用 ZhipuAI 生成 embedding 向量。
|
|
63
|
-
|
|
64
|
-
Args:
|
|
65
|
-
text: 输入字符串
|
|
66
|
-
model: 使用的 ZhipuAI 模型名称
|
|
67
|
-
api_key: API 密钥(可选)
|
|
68
|
-
**kwargs: 额外参数
|
|
69
|
-
|
|
70
|
-
Returns:
|
|
71
|
-
list[float]: 生成的 embedding 向量
|
|
72
|
-
"""
|
|
73
|
-
try:
|
|
74
|
-
from zhipuai import ZhipuAI
|
|
75
|
-
except ImportError:
|
|
76
|
-
raise ImportError("Please install zhipuai before using this backend.")
|
|
77
|
-
|
|
78
|
-
client = ZhipuAI(api_key=api_key) if api_key else ZhipuAI()
|
|
79
|
-
|
|
80
|
-
try:
|
|
81
|
-
response = client.embeddings.create(model=model, input=[text], **kwargs)
|
|
82
|
-
return response.data[0].embedding
|
|
83
|
-
except Exception as e:
|
|
84
|
-
raise Exception(f"Error calling ChatGLM Embedding API: {str(e)}")
|
|
85
|
-
|
|
File without changes
|
|
File without changes
|