@framers/agentos 0.1.6 → 0.1.8
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.
- package/README.md +19 -0
- package/dist/api/AgentOS.d.ts +12 -0
- package/dist/api/AgentOS.d.ts.map +1 -1
- package/dist/api/AgentOS.js +100 -2
- package/dist/api/AgentOS.js.map +1 -1
- package/dist/api/AgentOSOrchestrator.d.ts +45 -0
- package/dist/api/AgentOSOrchestrator.d.ts.map +1 -1
- package/dist/api/AgentOSOrchestrator.js +470 -6
- package/dist/api/AgentOSOrchestrator.js.map +1 -1
- package/dist/api/types/AgentOSInput.d.ts +8 -0
- package/dist/api/types/AgentOSInput.d.ts.map +1 -1
- package/dist/api/types/AgentOSResponse.d.ts +22 -2
- package/dist/api/types/AgentOSResponse.d.ts.map +1 -1
- package/dist/api/types/AgentOSResponse.js +1 -0
- package/dist/api/types/AgentOSResponse.js.map +1 -1
- package/dist/channels/ChannelRouter.d.ts +150 -0
- package/dist/channels/ChannelRouter.d.ts.map +1 -0
- package/dist/channels/ChannelRouter.js +309 -0
- package/dist/channels/ChannelRouter.js.map +1 -0
- package/dist/channels/IChannelAdapter.d.ts +113 -0
- package/dist/channels/IChannelAdapter.d.ts.map +1 -0
- package/dist/channels/IChannelAdapter.js +17 -0
- package/dist/channels/IChannelAdapter.js.map +1 -0
- package/dist/channels/index.d.ts +9 -0
- package/dist/channels/index.d.ts.map +1 -0
- package/dist/channels/index.js +7 -0
- package/dist/channels/index.js.map +1 -0
- package/dist/channels/types.d.ts +257 -0
- package/dist/channels/types.d.ts.map +1 -0
- package/dist/channels/types.js +12 -0
- package/dist/channels/types.js.map +1 -0
- package/dist/cognitive_substrate/GMI.d.ts +139 -0
- package/dist/cognitive_substrate/GMI.d.ts.map +1 -1
- package/dist/cognitive_substrate/GMI.js +680 -14
- package/dist/cognitive_substrate/GMI.js.map +1 -1
- package/dist/cognitive_substrate/GMIEvent.d.ts +151 -0
- package/dist/cognitive_substrate/GMIEvent.d.ts.map +1 -0
- package/dist/cognitive_substrate/GMIEvent.js +79 -0
- package/dist/cognitive_substrate/GMIEvent.js.map +1 -0
- package/dist/cognitive_substrate/IGMI.d.ts +22 -0
- package/dist/cognitive_substrate/IGMI.d.ts.map +1 -1
- package/dist/cognitive_substrate/IGMI.js.map +1 -1
- package/dist/cognitive_substrate/personas/IPersonaDefinition.d.ts +92 -0
- package/dist/cognitive_substrate/personas/IPersonaDefinition.d.ts.map +1 -1
- package/dist/cognitive_substrate/personas/PersonaLoader.d.ts.map +1 -1
- package/dist/cognitive_substrate/personas/PersonaLoader.js +21 -0
- package/dist/cognitive_substrate/personas/PersonaLoader.js.map +1 -1
- package/dist/cognitive_substrate/personas/metaprompt_presets.d.ts +86 -0
- package/dist/cognitive_substrate/personas/metaprompt_presets.d.ts.map +1 -0
- package/dist/cognitive_substrate/personas/metaprompt_presets.js +457 -0
- package/dist/cognitive_substrate/personas/metaprompt_presets.js.map +1 -0
- package/dist/config/RetrievalAugmentorConfiguration.d.ts +21 -0
- package/dist/config/RetrievalAugmentorConfiguration.d.ts.map +1 -1
- package/dist/config/RetrievalAugmentorConfiguration.js.map +1 -1
- package/dist/config/VectorStoreConfiguration.d.ts +2 -1
- package/dist/config/VectorStoreConfiguration.d.ts.map +1 -1
- package/dist/config/VectorStoreConfiguration.js.map +1 -1
- package/dist/config/extension-secrets.json +360 -0
- package/dist/core/agents/AgentCore.d.ts +8 -0
- package/dist/core/agents/AgentCore.d.ts.map +1 -1
- package/dist/core/agents/AgentCore.js.map +1 -1
- package/dist/core/conversation/ConversationManager.d.ts.map +1 -1
- package/dist/core/conversation/ConversationManager.js +2 -4
- package/dist/core/conversation/ConversationManager.js.map +1 -1
- package/dist/core/conversation/ILongTermMemoryRetriever.d.ts +30 -0
- package/dist/core/conversation/ILongTermMemoryRetriever.d.ts.map +1 -0
- package/dist/core/conversation/ILongTermMemoryRetriever.js +2 -0
- package/dist/core/conversation/ILongTermMemoryRetriever.js.map +1 -0
- package/dist/core/conversation/IRollingSummaryMemorySink.d.ts +44 -0
- package/dist/core/conversation/IRollingSummaryMemorySink.d.ts.map +1 -0
- package/dist/core/conversation/IRollingSummaryMemorySink.js +9 -0
- package/dist/core/conversation/IRollingSummaryMemorySink.js.map +1 -0
- package/dist/core/conversation/LongTermMemoryPolicy.d.ts +53 -0
- package/dist/core/conversation/LongTermMemoryPolicy.d.ts.map +1 -0
- package/dist/core/conversation/LongTermMemoryPolicy.js +84 -0
- package/dist/core/conversation/LongTermMemoryPolicy.js.map +1 -0
- package/dist/core/conversation/RollingSummaryCompactor.d.ts +61 -0
- package/dist/core/conversation/RollingSummaryCompactor.d.ts.map +1 -0
- package/dist/core/conversation/RollingSummaryCompactor.js +255 -0
- package/dist/core/conversation/RollingSummaryCompactor.js.map +1 -0
- package/dist/core/llm/PromptEngine.d.ts.map +1 -1
- package/dist/core/llm/PromptEngine.js +10 -1
- package/dist/core/llm/PromptEngine.js.map +1 -1
- package/dist/core/orchestration/AgentOrchestrator.d.ts +40 -0
- package/dist/core/orchestration/AgentOrchestrator.d.ts.map +1 -1
- package/dist/core/orchestration/AgentOrchestrator.js +324 -2
- package/dist/core/orchestration/AgentOrchestrator.js.map +1 -1
- package/dist/core/prompting/PromptProfileRouter.d.ts +74 -0
- package/dist/core/prompting/PromptProfileRouter.d.ts.map +1 -0
- package/dist/core/prompting/PromptProfileRouter.js +270 -0
- package/dist/core/prompting/PromptProfileRouter.js.map +1 -0
- package/dist/core/provenance/anchoring/AnchorManager.d.ts +86 -0
- package/dist/core/provenance/anchoring/AnchorManager.d.ts.map +1 -0
- package/dist/core/provenance/anchoring/AnchorManager.js +244 -0
- package/dist/core/provenance/anchoring/AnchorManager.js.map +1 -0
- package/dist/core/provenance/anchoring/providers/CompositeAnchorProvider.d.ts +20 -0
- package/dist/core/provenance/anchoring/providers/CompositeAnchorProvider.d.ts.map +1 -0
- package/dist/core/provenance/anchoring/providers/CompositeAnchorProvider.js +62 -0
- package/dist/core/provenance/anchoring/providers/CompositeAnchorProvider.js.map +1 -0
- package/dist/core/provenance/anchoring/providers/NoneProvider.d.ts +15 -0
- package/dist/core/provenance/anchoring/providers/NoneProvider.d.ts.map +1 -0
- package/dist/core/provenance/anchoring/providers/NoneProvider.js +21 -0
- package/dist/core/provenance/anchoring/providers/NoneProvider.js.map +1 -0
- package/dist/core/provenance/anchoring/providers/createAnchorProvider.d.ts +38 -0
- package/dist/core/provenance/anchoring/providers/createAnchorProvider.d.ts.map +1 -0
- package/dist/core/provenance/anchoring/providers/createAnchorProvider.js +67 -0
- package/dist/core/provenance/anchoring/providers/createAnchorProvider.js.map +1 -0
- package/dist/core/provenance/anchoring/providers/index.d.ts +12 -0
- package/dist/core/provenance/anchoring/providers/index.d.ts.map +1 -0
- package/dist/core/provenance/anchoring/providers/index.js +12 -0
- package/dist/core/provenance/anchoring/providers/index.js.map +1 -0
- package/dist/core/provenance/config/PolicyProfiles.d.ts +60 -0
- package/dist/core/provenance/config/PolicyProfiles.d.ts.map +1 -0
- package/dist/core/provenance/config/PolicyProfiles.js +144 -0
- package/dist/core/provenance/config/PolicyProfiles.js.map +1 -0
- package/dist/core/provenance/crypto/AgentKeyManager.d.ts +48 -0
- package/dist/core/provenance/crypto/AgentKeyManager.d.ts.map +1 -0
- package/dist/core/provenance/crypto/AgentKeyManager.js +162 -0
- package/dist/core/provenance/crypto/AgentKeyManager.js.map +1 -0
- package/dist/core/provenance/crypto/HashChain.d.ts +58 -0
- package/dist/core/provenance/crypto/HashChain.d.ts.map +1 -0
- package/dist/core/provenance/crypto/HashChain.js +86 -0
- package/dist/core/provenance/crypto/HashChain.js.map +1 -0
- package/dist/core/provenance/crypto/MerkleTree.d.ts +41 -0
- package/dist/core/provenance/crypto/MerkleTree.d.ts.map +1 -0
- package/dist/core/provenance/crypto/MerkleTree.js +86 -0
- package/dist/core/provenance/crypto/MerkleTree.js.map +1 -0
- package/dist/core/provenance/enforcement/AutonomyGuard.d.ts +37 -0
- package/dist/core/provenance/enforcement/AutonomyGuard.d.ts.map +1 -0
- package/dist/core/provenance/enforcement/AutonomyGuard.js +120 -0
- package/dist/core/provenance/enforcement/AutonomyGuard.js.map +1 -0
- package/dist/core/provenance/enforcement/ProvenanceStorageHooks.d.ts +43 -0
- package/dist/core/provenance/enforcement/ProvenanceStorageHooks.d.ts.map +1 -0
- package/dist/core/provenance/enforcement/ProvenanceStorageHooks.js +193 -0
- package/dist/core/provenance/enforcement/ProvenanceStorageHooks.js.map +1 -0
- package/dist/core/provenance/enforcement/RevisionManager.d.ts +41 -0
- package/dist/core/provenance/enforcement/RevisionManager.d.ts.map +1 -0
- package/dist/core/provenance/enforcement/RevisionManager.js +105 -0
- package/dist/core/provenance/enforcement/RevisionManager.js.map +1 -0
- package/dist/core/provenance/enforcement/TombstoneManager.d.ts +47 -0
- package/dist/core/provenance/enforcement/TombstoneManager.d.ts.map +1 -0
- package/dist/core/provenance/enforcement/TombstoneManager.js +121 -0
- package/dist/core/provenance/enforcement/TombstoneManager.js.map +1 -0
- package/dist/core/provenance/index.d.ts +34 -0
- package/dist/core/provenance/index.d.ts.map +1 -0
- package/dist/core/provenance/index.js +39 -0
- package/dist/core/provenance/index.js.map +1 -0
- package/dist/core/provenance/ledger/EventTypes.d.ts +123 -0
- package/dist/core/provenance/ledger/EventTypes.d.ts.map +1 -0
- package/dist/core/provenance/ledger/EventTypes.js +9 -0
- package/dist/core/provenance/ledger/EventTypes.js.map +1 -0
- package/dist/core/provenance/ledger/SignedEventLedger.d.ts +75 -0
- package/dist/core/provenance/ledger/SignedEventLedger.d.ts.map +1 -0
- package/dist/core/provenance/ledger/SignedEventLedger.js +210 -0
- package/dist/core/provenance/ledger/SignedEventLedger.js.map +1 -0
- package/dist/core/provenance/schema/provenance-schema.d.ts +17 -0
- package/dist/core/provenance/schema/provenance-schema.d.ts.map +1 -0
- package/dist/core/provenance/schema/provenance-schema.js +104 -0
- package/dist/core/provenance/schema/provenance-schema.js.map +1 -0
- package/dist/core/provenance/types.d.ts +261 -0
- package/dist/core/provenance/types.d.ts.map +1 -0
- package/dist/core/provenance/types.js +21 -0
- package/dist/core/provenance/types.js.map +1 -0
- package/dist/core/provenance/verification/BundleExporter.d.ts +50 -0
- package/dist/core/provenance/verification/BundleExporter.d.ts.map +1 -0
- package/dist/core/provenance/verification/BundleExporter.js +240 -0
- package/dist/core/provenance/verification/BundleExporter.js.map +1 -0
- package/dist/core/provenance/verification/ChainVerifier.d.ts +39 -0
- package/dist/core/provenance/verification/ChainVerifier.d.ts.map +1 -0
- package/dist/core/provenance/verification/ChainVerifier.js +204 -0
- package/dist/core/provenance/verification/ChainVerifier.js.map +1 -0
- package/dist/core/provenance/verification/ConversationVerifier.d.ts +56 -0
- package/dist/core/provenance/verification/ConversationVerifier.d.ts.map +1 -0
- package/dist/core/provenance/verification/ConversationVerifier.js +109 -0
- package/dist/core/provenance/verification/ConversationVerifier.js.map +1 -0
- package/dist/extensions/ExtensionManager.d.ts +8 -0
- package/dist/extensions/ExtensionManager.d.ts.map +1 -1
- package/dist/extensions/ExtensionManager.js +58 -3
- package/dist/extensions/ExtensionManager.js.map +1 -1
- package/dist/extensions/MessagingChannelPayload.d.ts +39 -0
- package/dist/extensions/MessagingChannelPayload.d.ts.map +1 -0
- package/dist/extensions/MessagingChannelPayload.js +12 -0
- package/dist/extensions/MessagingChannelPayload.js.map +1 -0
- package/dist/extensions/manifest.d.ts +3 -1
- package/dist/extensions/manifest.d.ts.map +1 -1
- package/dist/extensions/packs/provenance-pack.d.ts +66 -0
- package/dist/extensions/packs/provenance-pack.d.ts.map +1 -0
- package/dist/extensions/packs/provenance-pack.js +162 -0
- package/dist/extensions/packs/provenance-pack.js.map +1 -0
- package/dist/extensions/types.d.ts +23 -0
- package/dist/extensions/types.d.ts.map +1 -1
- package/dist/extensions/types.js +4 -0
- package/dist/extensions/types.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/rag/IRetrievalAugmentor.d.ts +22 -1
- package/dist/rag/IRetrievalAugmentor.d.ts.map +1 -1
- package/dist/rag/RetrievalAugmentor.d.ts +37 -0
- package/dist/rag/RetrievalAugmentor.d.ts.map +1 -1
- package/dist/rag/RetrievalAugmentor.js +82 -6
- package/dist/rag/RetrievalAugmentor.js.map +1 -1
- package/dist/rag/VectorStoreManager.d.ts.map +1 -1
- package/dist/rag/VectorStoreManager.js +5 -0
- package/dist/rag/VectorStoreManager.js.map +1 -1
- package/dist/rag/graphrag/GraphRAGEngine.d.ts +100 -0
- package/dist/rag/graphrag/GraphRAGEngine.d.ts.map +1 -0
- package/dist/rag/graphrag/GraphRAGEngine.js +1146 -0
- package/dist/rag/graphrag/GraphRAGEngine.js.map +1 -0
- package/dist/rag/graphrag/IGraphRAG.d.ts +198 -0
- package/dist/rag/graphrag/IGraphRAG.d.ts.map +1 -0
- package/dist/rag/graphrag/IGraphRAG.js +11 -0
- package/dist/rag/graphrag/IGraphRAG.js.map +1 -0
- package/dist/rag/graphrag/index.d.ts +12 -0
- package/dist/rag/graphrag/index.d.ts.map +1 -0
- package/dist/rag/graphrag/index.js +11 -0
- package/dist/rag/graphrag/index.js.map +1 -0
- package/dist/rag/implementations/vector_stores/HnswlibVectorStore.d.ts +72 -0
- package/dist/rag/implementations/vector_stores/HnswlibVectorStore.d.ts.map +1 -0
- package/dist/rag/implementations/vector_stores/HnswlibVectorStore.js +463 -0
- package/dist/rag/implementations/vector_stores/HnswlibVectorStore.js.map +1 -0
- package/dist/rag/implementations/vector_stores/index.d.ts +1 -0
- package/dist/rag/implementations/vector_stores/index.d.ts.map +1 -1
- package/dist/rag/implementations/vector_stores/index.js +2 -0
- package/dist/rag/implementations/vector_stores/index.js.map +1 -1
- package/dist/rag/index.d.ts +3 -0
- package/dist/rag/index.d.ts.map +1 -1
- package/dist/rag/index.js +5 -0
- package/dist/rag/index.js.map +1 -1
- package/dist/rag/reranking/IRerankerService.d.ts +163 -0
- package/dist/rag/reranking/IRerankerService.d.ts.map +1 -0
- package/dist/rag/reranking/IRerankerService.js +9 -0
- package/dist/rag/reranking/IRerankerService.js.map +1 -0
- package/dist/rag/reranking/RerankerService.d.ts +107 -0
- package/dist/rag/reranking/RerankerService.d.ts.map +1 -0
- package/dist/rag/reranking/RerankerService.js +194 -0
- package/dist/rag/reranking/RerankerService.js.map +1 -0
- package/dist/rag/reranking/index.d.ts +55 -0
- package/dist/rag/reranking/index.d.ts.map +1 -0
- package/dist/rag/reranking/index.js +56 -0
- package/dist/rag/reranking/index.js.map +1 -0
- package/dist/rag/reranking/providers/CohereReranker.d.ts +66 -0
- package/dist/rag/reranking/providers/CohereReranker.d.ts.map +1 -0
- package/dist/rag/reranking/providers/CohereReranker.js +141 -0
- package/dist/rag/reranking/providers/CohereReranker.js.map +1 -0
- package/dist/rag/reranking/providers/LocalCrossEncoderReranker.d.ts +105 -0
- package/dist/rag/reranking/providers/LocalCrossEncoderReranker.d.ts.map +1 -0
- package/dist/rag/reranking/providers/LocalCrossEncoderReranker.js +214 -0
- package/dist/rag/reranking/providers/LocalCrossEncoderReranker.js.map +1 -0
- package/dist/rag/reranking/providers/index.d.ts +7 -0
- package/dist/rag/reranking/providers/index.d.ts.map +1 -0
- package/dist/rag/reranking/providers/index.js +7 -0
- package/dist/rag/reranking/providers/index.js.map +1 -0
- package/dist/rag/reranking/tests/index.d.ts +6 -0
- package/dist/rag/reranking/tests/index.d.ts.map +1 -0
- package/dist/rag/reranking/tests/index.js +11 -0
- package/dist/rag/reranking/tests/index.js.map +1 -0
- package/dist/types/optionalDependencies.d.ts +5 -0
- package/dist/types/optionalDependencies.d.ts.map +1 -0
- package/dist/types/optionalDependencies.js +4 -0
- package/dist/types/optionalDependencies.js.map +1 -0
- package/dist/voice/CallManager.d.ts +116 -0
- package/dist/voice/CallManager.d.ts.map +1 -0
- package/dist/voice/CallManager.js +426 -0
- package/dist/voice/CallManager.js.map +1 -0
- package/dist/voice/IVoiceCallProvider.d.ts +137 -0
- package/dist/voice/IVoiceCallProvider.d.ts.map +1 -0
- package/dist/voice/IVoiceCallProvider.js +11 -0
- package/dist/voice/IVoiceCallProvider.js.map +1 -0
- package/dist/voice/index.d.ts +10 -0
- package/dist/voice/index.d.ts.map +1 -0
- package/dist/voice/index.js +8 -0
- package/dist/voice/index.js.map +1 -0
- package/dist/voice/providers/mock.d.ts +74 -0
- package/dist/voice/providers/mock.d.ts.map +1 -0
- package/dist/voice/providers/mock.js +199 -0
- package/dist/voice/providers/mock.js.map +1 -0
- package/dist/voice/telephony-audio.d.ts +42 -0
- package/dist/voice/telephony-audio.d.ts.map +1 -0
- package/dist/voice/telephony-audio.js +150 -0
- package/dist/voice/telephony-audio.js.map +1 -0
- package/dist/voice/types.d.ts +260 -0
- package/dist/voice/types.d.ts.map +1 -0
- package/dist/voice/types.js +36 -0
- package/dist/voice/types.js.map +1 -0
- package/package.json +22 -6
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Cohere Rerank API provider implementation.
|
|
3
|
+
* Uses Cohere's cloud-based cross-encoder reranking service.
|
|
4
|
+
*
|
|
5
|
+
* @module backend/agentos/rag/reranking/providers/CohereReranker
|
|
6
|
+
* @see https://docs.cohere.com/reference/rerank
|
|
7
|
+
*/
|
|
8
|
+
import type { IRerankerProvider, RerankerInput, RerankerOutput, RerankerRequestConfig, RerankerProviderConfig } from '../IRerankerService';
|
|
9
|
+
/**
|
|
10
|
+
* Cohere-specific provider configuration.
|
|
11
|
+
*/
|
|
12
|
+
export interface CohereRerankerConfig extends RerankerProviderConfig {
|
|
13
|
+
providerId: 'cohere';
|
|
14
|
+
/** Cohere API key (required) */
|
|
15
|
+
apiKey: string;
|
|
16
|
+
/** Base URL for Cohere API. Default: 'https://api.cohere.ai' */
|
|
17
|
+
baseUrl?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Available Cohere reranker models.
|
|
21
|
+
*/
|
|
22
|
+
export declare const COHERE_RERANKER_MODELS: readonly ["rerank-english-v3.0", "rerank-multilingual-v3.0", "rerank-english-v2.0", "rerank-multilingual-v2.0"];
|
|
23
|
+
export type CohereRerankerModel = (typeof COHERE_RERANKER_MODELS)[number];
|
|
24
|
+
/**
|
|
25
|
+
* Cohere Rerank API provider.
|
|
26
|
+
*
|
|
27
|
+
* Cloud-based cross-encoder reranking using Cohere's Rerank models.
|
|
28
|
+
* Provides high-quality relevance scoring with low latency (~100ms for 50 docs).
|
|
29
|
+
*
|
|
30
|
+
* **Pricing**: ~$0.10 per 1,000 search queries (as of 2024)
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const reranker = new CohereReranker({
|
|
35
|
+
* providerId: 'cohere',
|
|
36
|
+
* apiKey: process.env.COHERE_API_KEY!,
|
|
37
|
+
* defaultModelId: 'rerank-english-v3.0'
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* const result = await reranker.rerank(
|
|
41
|
+
* { query: 'machine learning', documents: [...] },
|
|
42
|
+
* { providerId: 'cohere', modelId: 'rerank-english-v3.0', topN: 5 }
|
|
43
|
+
* );
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare class CohereReranker implements IRerankerProvider {
|
|
47
|
+
readonly providerId: "cohere";
|
|
48
|
+
private readonly apiKey;
|
|
49
|
+
private readonly baseUrl;
|
|
50
|
+
private readonly defaultModelId;
|
|
51
|
+
private readonly defaultTimeoutMs;
|
|
52
|
+
constructor(config: CohereRerankerConfig);
|
|
53
|
+
/**
|
|
54
|
+
* Check if the Cohere API is accessible.
|
|
55
|
+
*/
|
|
56
|
+
isAvailable(): Promise<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Get supported Cohere reranker models.
|
|
59
|
+
*/
|
|
60
|
+
getSupportedModels(): string[];
|
|
61
|
+
/**
|
|
62
|
+
* Rerank documents using Cohere's Rerank API.
|
|
63
|
+
*/
|
|
64
|
+
rerank(input: RerankerInput, config: RerankerRequestConfig): Promise<RerankerOutput>;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=CohereReranker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CohereReranker.d.ts","sourceRoot":"","sources":["../../../../src/rag/reranking/providers/CohereReranker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE,UAAU,EAAE,QAAQ,CAAC;IACrB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAiBD;;GAEG;AACH,eAAO,MAAM,sBAAsB,iHAKzB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,cAAe,YAAW,iBAAiB;IACtD,SAAgB,UAAU,EAAG,QAAQ,CAAU;IAE/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,MAAM,EAAE,oBAAoB;IAQxC;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS5C;;OAEG;IACI,kBAAkB,IAAI,MAAM,EAAE;IAIrC;;OAEG;IACU,MAAM,CACjB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,cAAc,CAAC;CAiF3B"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Cohere Rerank API provider implementation.
|
|
3
|
+
* Uses Cohere's cloud-based cross-encoder reranking service.
|
|
4
|
+
*
|
|
5
|
+
* @module backend/agentos/rag/reranking/providers/CohereReranker
|
|
6
|
+
* @see https://docs.cohere.com/reference/rerank
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Available Cohere reranker models.
|
|
10
|
+
*/
|
|
11
|
+
export const COHERE_RERANKER_MODELS = [
|
|
12
|
+
'rerank-english-v3.0',
|
|
13
|
+
'rerank-multilingual-v3.0',
|
|
14
|
+
'rerank-english-v2.0',
|
|
15
|
+
'rerank-multilingual-v2.0',
|
|
16
|
+
];
|
|
17
|
+
/**
|
|
18
|
+
* Cohere Rerank API provider.
|
|
19
|
+
*
|
|
20
|
+
* Cloud-based cross-encoder reranking using Cohere's Rerank models.
|
|
21
|
+
* Provides high-quality relevance scoring with low latency (~100ms for 50 docs).
|
|
22
|
+
*
|
|
23
|
+
* **Pricing**: ~$0.10 per 1,000 search queries (as of 2024)
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const reranker = new CohereReranker({
|
|
28
|
+
* providerId: 'cohere',
|
|
29
|
+
* apiKey: process.env.COHERE_API_KEY!,
|
|
30
|
+
* defaultModelId: 'rerank-english-v3.0'
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* const result = await reranker.rerank(
|
|
34
|
+
* { query: 'machine learning', documents: [...] },
|
|
35
|
+
* { providerId: 'cohere', modelId: 'rerank-english-v3.0', topN: 5 }
|
|
36
|
+
* );
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export class CohereReranker {
|
|
40
|
+
constructor(config) {
|
|
41
|
+
this.providerId = 'cohere';
|
|
42
|
+
// Allow empty apiKey for graceful isAvailable() checks
|
|
43
|
+
this.apiKey = config.apiKey || '';
|
|
44
|
+
this.baseUrl = config.baseUrl ?? 'https://api.cohere.ai';
|
|
45
|
+
this.defaultModelId = config.defaultModelId ?? 'rerank-english-v3.0';
|
|
46
|
+
this.defaultTimeoutMs = config.defaultTimeoutMs ?? 30000;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Check if the Cohere API is accessible.
|
|
50
|
+
*/
|
|
51
|
+
async isAvailable() {
|
|
52
|
+
try {
|
|
53
|
+
// Simple check - verify API key format
|
|
54
|
+
return this.apiKey.length > 0;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get supported Cohere reranker models.
|
|
62
|
+
*/
|
|
63
|
+
getSupportedModels() {
|
|
64
|
+
return [...COHERE_RERANKER_MODELS];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Rerank documents using Cohere's Rerank API.
|
|
68
|
+
*/
|
|
69
|
+
async rerank(input, config) {
|
|
70
|
+
if (!this.apiKey) {
|
|
71
|
+
throw new Error('CohereReranker: apiKey is required for reranking');
|
|
72
|
+
}
|
|
73
|
+
const modelId = config.modelId || this.defaultModelId;
|
|
74
|
+
const timeoutMs = config.timeoutMs ?? this.defaultTimeoutMs;
|
|
75
|
+
const startTime = Date.now();
|
|
76
|
+
// Prepare request body
|
|
77
|
+
const requestBody = {
|
|
78
|
+
model: modelId,
|
|
79
|
+
query: input.query,
|
|
80
|
+
documents: input.documents.map((d) => d.content),
|
|
81
|
+
top_n: config.topN ?? input.documents.length,
|
|
82
|
+
return_documents: false,
|
|
83
|
+
...config.params,
|
|
84
|
+
};
|
|
85
|
+
// Create abort controller for timeout
|
|
86
|
+
const controller = new AbortController();
|
|
87
|
+
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
|
88
|
+
try {
|
|
89
|
+
const response = await fetch(`${this.baseUrl}/v1/rerank`, {
|
|
90
|
+
method: 'POST',
|
|
91
|
+
headers: {
|
|
92
|
+
'Authorization': `Bearer ${this.apiKey}`,
|
|
93
|
+
'Content-Type': 'application/json',
|
|
94
|
+
'X-Client-Name': 'agentos',
|
|
95
|
+
},
|
|
96
|
+
body: JSON.stringify(requestBody),
|
|
97
|
+
signal: controller.signal,
|
|
98
|
+
});
|
|
99
|
+
clearTimeout(timeoutId);
|
|
100
|
+
if (!response.ok) {
|
|
101
|
+
const errorText = await response.text();
|
|
102
|
+
throw new Error(`Cohere API error (${response.status}): ${errorText}`);
|
|
103
|
+
}
|
|
104
|
+
const data = await response.json();
|
|
105
|
+
const latencyMs = Date.now() - startTime;
|
|
106
|
+
// Map results back to documents (Cohere returns indices)
|
|
107
|
+
const results = data.results.map((r) => {
|
|
108
|
+
const doc = input.documents[r.index];
|
|
109
|
+
return {
|
|
110
|
+
id: doc.id,
|
|
111
|
+
content: doc.content,
|
|
112
|
+
relevanceScore: r.relevance_score,
|
|
113
|
+
originalScore: doc.originalScore,
|
|
114
|
+
metadata: doc.metadata,
|
|
115
|
+
};
|
|
116
|
+
});
|
|
117
|
+
return {
|
|
118
|
+
results,
|
|
119
|
+
diagnostics: {
|
|
120
|
+
modelId,
|
|
121
|
+
providerId: this.providerId,
|
|
122
|
+
latencyMs,
|
|
123
|
+
documentsProcessed: input.documents.length,
|
|
124
|
+
tokensUsed: data.meta?.billed_units?.search_units,
|
|
125
|
+
providerMetrics: {
|
|
126
|
+
cohereRequestId: data.id,
|
|
127
|
+
apiVersion: data.meta?.api_version?.version,
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
clearTimeout(timeoutId);
|
|
134
|
+
if (error instanceof Error && error.name === 'AbortError') {
|
|
135
|
+
throw new Error(`CohereReranker: Request timed out after ${timeoutMs}ms`);
|
|
136
|
+
}
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=CohereReranker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CohereReranker.js","sourceRoot":"","sources":["../../../../src/rag/reranking/providers/CohereReranker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Local cross-encoder reranker using transformers.js or ONNX runtime.
|
|
3
|
+
* Runs reranking models locally without external API calls.
|
|
4
|
+
*
|
|
5
|
+
* @module backend/agentos/rag/reranking/providers/LocalCrossEncoderReranker
|
|
6
|
+
*/
|
|
7
|
+
import type { IRerankerProvider, RerankerInput, RerankerOutput, RerankerRequestConfig, RerankerProviderConfig } from '../IRerankerService';
|
|
8
|
+
/**
|
|
9
|
+
* Local reranker configuration.
|
|
10
|
+
*/
|
|
11
|
+
export interface LocalCrossEncoderConfig extends RerankerProviderConfig {
|
|
12
|
+
providerId: 'local';
|
|
13
|
+
/**
|
|
14
|
+
* Model ID from Hugging Face Hub.
|
|
15
|
+
* Default: 'cross-encoder/ms-marco-MiniLM-L-6-v2'
|
|
16
|
+
*/
|
|
17
|
+
defaultModelId?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Device to run inference on.
|
|
20
|
+
* - 'cpu': Use CPU (default, most compatible)
|
|
21
|
+
* - 'gpu': Use GPU if available (requires CUDA/WebGPU)
|
|
22
|
+
* - 'auto': Automatically select best available
|
|
23
|
+
*/
|
|
24
|
+
device?: 'cpu' | 'gpu' | 'auto';
|
|
25
|
+
/**
|
|
26
|
+
* Maximum sequence length for the model.
|
|
27
|
+
* Default: 512
|
|
28
|
+
*/
|
|
29
|
+
maxSequenceLength?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Batch size for inference.
|
|
32
|
+
* Default: 32
|
|
33
|
+
*/
|
|
34
|
+
batchSize?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Path to cache downloaded models.
|
|
37
|
+
* Default: system cache directory
|
|
38
|
+
*/
|
|
39
|
+
cacheDir?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Available local cross-encoder models (Hugging Face model IDs).
|
|
43
|
+
*/
|
|
44
|
+
export declare const LOCAL_RERANKER_MODELS: readonly ["cross-encoder/ms-marco-MiniLM-L-6-v2", "cross-encoder/ms-marco-MiniLM-L-12-v2", "BAAI/bge-reranker-base", "BAAI/bge-reranker-large", "sentence-transformers/ce-ms-marco-TinyBERT-L-4"];
|
|
45
|
+
export type LocalRerankerModel = (typeof LOCAL_RERANKER_MODELS)[number];
|
|
46
|
+
/**
|
|
47
|
+
* Local cross-encoder reranker.
|
|
48
|
+
*
|
|
49
|
+
* Runs cross-encoder models locally using transformers.js for Node.js/browser
|
|
50
|
+
* or ONNX runtime. No API calls, fully offline capable.
|
|
51
|
+
*
|
|
52
|
+
* **Performance**: ~200-500ms for 50 documents on CPU (varies by model/hardware)
|
|
53
|
+
*
|
|
54
|
+
* **Note**: First run downloads the model (~100-500MB depending on model).
|
|
55
|
+
* Subsequent runs use cached model.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const reranker = new LocalCrossEncoderReranker({
|
|
60
|
+
* providerId: 'local',
|
|
61
|
+
* defaultModelId: 'cross-encoder/ms-marco-MiniLM-L-6-v2',
|
|
62
|
+
* device: 'cpu',
|
|
63
|
+
* batchSize: 32
|
|
64
|
+
* });
|
|
65
|
+
*
|
|
66
|
+
* await reranker.initialize(); // Downloads model if not cached
|
|
67
|
+
*
|
|
68
|
+
* const result = await reranker.rerank(
|
|
69
|
+
* { query: 'machine learning', documents: [...] },
|
|
70
|
+
* { providerId: 'local', modelId: 'cross-encoder/ms-marco-MiniLM-L-6-v2' }
|
|
71
|
+
* );
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare class LocalCrossEncoderReranker implements IRerankerProvider {
|
|
75
|
+
readonly providerId: "local";
|
|
76
|
+
private readonly config;
|
|
77
|
+
private pipeline;
|
|
78
|
+
private isInitialized;
|
|
79
|
+
private initializationPromise;
|
|
80
|
+
constructor(config: LocalCrossEncoderConfig);
|
|
81
|
+
/**
|
|
82
|
+
* Initialize the model pipeline.
|
|
83
|
+
* Call this before first use or let rerank() handle lazy initialization.
|
|
84
|
+
*/
|
|
85
|
+
initialize(modelId?: string): Promise<void>;
|
|
86
|
+
private _doInitialize;
|
|
87
|
+
/**
|
|
88
|
+
* Check if the local reranker is available.
|
|
89
|
+
*/
|
|
90
|
+
isAvailable(): Promise<boolean>;
|
|
91
|
+
/**
|
|
92
|
+
* Get supported local reranker models.
|
|
93
|
+
*/
|
|
94
|
+
getSupportedModels(): string[];
|
|
95
|
+
/**
|
|
96
|
+
* Rerank documents using a local cross-encoder model.
|
|
97
|
+
*/
|
|
98
|
+
rerank(input: RerankerInput, config: RerankerRequestConfig): Promise<RerankerOutput>;
|
|
99
|
+
/**
|
|
100
|
+
* Unload the model from memory.
|
|
101
|
+
* Call this when you're done with the reranker to free resources.
|
|
102
|
+
*/
|
|
103
|
+
dispose(): Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=LocalCrossEncoderReranker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalCrossEncoderReranker.d.ts","sourceRoot":"","sources":["../../../../src/rag/reranking/providers/LocalCrossEncoderReranker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;IACrE,UAAU,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAChC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,mMAMxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,yBAA0B,YAAW,iBAAiB;IACjE,SAAgB,UAAU,EAAG,OAAO,CAAU;IAE9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,qBAAqB,CAA8B;gBAE/C,MAAM,EAAE,uBAAuB;IAU3C;;;OAGG;IACU,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAgB1C,aAAa;IAkC3B;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAU5C;;OAEG;IACI,kBAAkB,IAAI,MAAM,EAAE;IAIrC;;OAEG;IACU,MAAM,CACjB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,cAAc,CAAC;IAwF1B;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAOtC"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Local cross-encoder reranker using transformers.js or ONNX runtime.
|
|
3
|
+
* Runs reranking models locally without external API calls.
|
|
4
|
+
*
|
|
5
|
+
* @module backend/agentos/rag/reranking/providers/LocalCrossEncoderReranker
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Available local cross-encoder models (Hugging Face model IDs).
|
|
9
|
+
*/
|
|
10
|
+
export const LOCAL_RERANKER_MODELS = [
|
|
11
|
+
'cross-encoder/ms-marco-MiniLM-L-6-v2', // Fast, good quality
|
|
12
|
+
'cross-encoder/ms-marco-MiniLM-L-12-v2', // Better quality, slower
|
|
13
|
+
'BAAI/bge-reranker-base', // BGE reranker (smaller)
|
|
14
|
+
'BAAI/bge-reranker-large', // BGE reranker (larger, better)
|
|
15
|
+
'sentence-transformers/ce-ms-marco-TinyBERT-L-4', // Tiny, fastest
|
|
16
|
+
];
|
|
17
|
+
/**
|
|
18
|
+
* Local cross-encoder reranker.
|
|
19
|
+
*
|
|
20
|
+
* Runs cross-encoder models locally using transformers.js for Node.js/browser
|
|
21
|
+
* or ONNX runtime. No API calls, fully offline capable.
|
|
22
|
+
*
|
|
23
|
+
* **Performance**: ~200-500ms for 50 documents on CPU (varies by model/hardware)
|
|
24
|
+
*
|
|
25
|
+
* **Note**: First run downloads the model (~100-500MB depending on model).
|
|
26
|
+
* Subsequent runs use cached model.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const reranker = new LocalCrossEncoderReranker({
|
|
31
|
+
* providerId: 'local',
|
|
32
|
+
* defaultModelId: 'cross-encoder/ms-marco-MiniLM-L-6-v2',
|
|
33
|
+
* device: 'cpu',
|
|
34
|
+
* batchSize: 32
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* await reranker.initialize(); // Downloads model if not cached
|
|
38
|
+
*
|
|
39
|
+
* const result = await reranker.rerank(
|
|
40
|
+
* { query: 'machine learning', documents: [...] },
|
|
41
|
+
* { providerId: 'local', modelId: 'cross-encoder/ms-marco-MiniLM-L-6-v2' }
|
|
42
|
+
* );
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export class LocalCrossEncoderReranker {
|
|
46
|
+
constructor(config) {
|
|
47
|
+
this.providerId = 'local';
|
|
48
|
+
this.pipeline = null;
|
|
49
|
+
this.isInitialized = false;
|
|
50
|
+
this.initializationPromise = null;
|
|
51
|
+
this.config = {
|
|
52
|
+
...config,
|
|
53
|
+
defaultModelId: config.defaultModelId ?? 'cross-encoder/ms-marco-MiniLM-L-6-v2',
|
|
54
|
+
device: config.device ?? 'cpu',
|
|
55
|
+
maxSequenceLength: config.maxSequenceLength ?? 512,
|
|
56
|
+
batchSize: config.batchSize ?? 32,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Initialize the model pipeline.
|
|
61
|
+
* Call this before first use or let rerank() handle lazy initialization.
|
|
62
|
+
*/
|
|
63
|
+
async initialize(modelId) {
|
|
64
|
+
if (this.isInitialized && !modelId) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
// Prevent multiple concurrent initializations
|
|
68
|
+
if (this.initializationPromise) {
|
|
69
|
+
await this.initializationPromise;
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
this.initializationPromise = this._doInitialize(modelId ?? this.config.defaultModelId);
|
|
73
|
+
await this.initializationPromise;
|
|
74
|
+
this.initializationPromise = null;
|
|
75
|
+
}
|
|
76
|
+
async _doInitialize(modelId) {
|
|
77
|
+
try {
|
|
78
|
+
// Dynamic import to avoid bundling issues and allow optional dependency
|
|
79
|
+
const { pipeline, env } = await import('@xenova/transformers');
|
|
80
|
+
// Configure cache directory if specified
|
|
81
|
+
if (this.config.cacheDir) {
|
|
82
|
+
env.cacheDir = this.config.cacheDir;
|
|
83
|
+
}
|
|
84
|
+
// Configure device
|
|
85
|
+
if (this.config.device === 'gpu') {
|
|
86
|
+
env.backends.onnx.wasm.numThreads = 1; // Use GPU
|
|
87
|
+
}
|
|
88
|
+
// Load the cross-encoder pipeline
|
|
89
|
+
// For cross-encoders, we use 'text-classification' pipeline
|
|
90
|
+
// since they output a relevance score
|
|
91
|
+
this.pipeline = await pipeline('text-classification', modelId, {
|
|
92
|
+
quantized: true, // Use quantized model for faster inference
|
|
93
|
+
});
|
|
94
|
+
this.isInitialized = true;
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
if (error instanceof Error && error.message.includes('Cannot find module')) {
|
|
98
|
+
throw new Error('LocalCrossEncoderReranker: @xenova/transformers is not installed. ' +
|
|
99
|
+
'Install it with: pnpm add @xenova/transformers');
|
|
100
|
+
}
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Check if the local reranker is available.
|
|
106
|
+
*/
|
|
107
|
+
async isAvailable() {
|
|
108
|
+
try {
|
|
109
|
+
// Check if transformers.js is available
|
|
110
|
+
await import('@xenova/transformers');
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Get supported local reranker models.
|
|
119
|
+
*/
|
|
120
|
+
getSupportedModels() {
|
|
121
|
+
return [...LOCAL_RERANKER_MODELS];
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Rerank documents using a local cross-encoder model.
|
|
125
|
+
*/
|
|
126
|
+
async rerank(input, config) {
|
|
127
|
+
const modelId = config.modelId || this.config.defaultModelId;
|
|
128
|
+
const startTime = Date.now();
|
|
129
|
+
// Lazy initialization
|
|
130
|
+
if (!this.isInitialized) {
|
|
131
|
+
await this.initialize(modelId);
|
|
132
|
+
}
|
|
133
|
+
// Cross-encoders take query-document pairs and output relevance scores
|
|
134
|
+
// Format: "query [SEP] document" or as separate inputs depending on model
|
|
135
|
+
const pairs = input.documents.map((doc) => ({
|
|
136
|
+
text: input.query,
|
|
137
|
+
text_pair: doc.content,
|
|
138
|
+
}));
|
|
139
|
+
// Process in batches
|
|
140
|
+
const batchSize = this.config.batchSize;
|
|
141
|
+
const scores = [];
|
|
142
|
+
for (let i = 0; i < pairs.length; i += batchSize) {
|
|
143
|
+
const batch = pairs.slice(i, i + batchSize);
|
|
144
|
+
// Run inference
|
|
145
|
+
// Most cross-encoders output a single score (or logits that we convert to score)
|
|
146
|
+
for (const pair of batch) {
|
|
147
|
+
try {
|
|
148
|
+
// transformers.js text-classification returns array of {label, score}
|
|
149
|
+
// For cross-encoders, we typically want the positive class score
|
|
150
|
+
const result = await this.pipeline(`${pair.text} [SEP] ${pair.text_pair}`, {
|
|
151
|
+
truncation: true,
|
|
152
|
+
max_length: this.config.maxSequenceLength,
|
|
153
|
+
});
|
|
154
|
+
// Handle different output formats
|
|
155
|
+
let score;
|
|
156
|
+
if (Array.isArray(result) && result.length > 0) {
|
|
157
|
+
// Standard text-classification output
|
|
158
|
+
// For binary classifiers: find LABEL_1 or positive class
|
|
159
|
+
const positiveResult = result.find((r) => r.label === 'LABEL_1' || r.label === 'POSITIVE' || r.label === '1');
|
|
160
|
+
score = positiveResult?.score ?? result[0].score;
|
|
161
|
+
}
|
|
162
|
+
else if (typeof result === 'number') {
|
|
163
|
+
score = result;
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
score = 0;
|
|
167
|
+
}
|
|
168
|
+
scores.push(score);
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
console.warn(`LocalCrossEncoderReranker: Error scoring document, using 0:`, error);
|
|
172
|
+
scores.push(0);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
const latencyMs = Date.now() - startTime;
|
|
177
|
+
// Combine scores with documents and sort by score descending
|
|
178
|
+
const scoredDocs = input.documents.map((doc, idx) => ({
|
|
179
|
+
id: doc.id,
|
|
180
|
+
content: doc.content,
|
|
181
|
+
relevanceScore: scores[idx],
|
|
182
|
+
originalScore: doc.originalScore,
|
|
183
|
+
metadata: doc.metadata,
|
|
184
|
+
}));
|
|
185
|
+
scoredDocs.sort((a, b) => b.relevanceScore - a.relevanceScore);
|
|
186
|
+
// Apply topN if specified
|
|
187
|
+
const results = config.topN ? scoredDocs.slice(0, config.topN) : scoredDocs;
|
|
188
|
+
return {
|
|
189
|
+
results,
|
|
190
|
+
diagnostics: {
|
|
191
|
+
modelId,
|
|
192
|
+
providerId: this.providerId,
|
|
193
|
+
latencyMs,
|
|
194
|
+
documentsProcessed: input.documents.length,
|
|
195
|
+
providerMetrics: {
|
|
196
|
+
batchSize: this.config.batchSize,
|
|
197
|
+
device: this.config.device,
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Unload the model from memory.
|
|
204
|
+
* Call this when you're done with the reranker to free resources.
|
|
205
|
+
*/
|
|
206
|
+
async dispose() {
|
|
207
|
+
if (this.pipeline && typeof this.pipeline.dispose === 'function') {
|
|
208
|
+
await this.pipeline.dispose();
|
|
209
|
+
}
|
|
210
|
+
this.pipeline = null;
|
|
211
|
+
this.isInitialized = false;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=LocalCrossEncoderReranker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalCrossEncoderReranker.js","sourceRoot":"","sources":["../../../../src/rag/reranking/providers/LocalCrossEncoderReranker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Reranker provider implementations.
|
|
3
|
+
* @module backend/agentos/rag/reranking/providers
|
|
4
|
+
*/
|
|
5
|
+
export { CohereReranker, type CohereRerankerConfig, COHERE_RERANKER_MODELS, type CohereRerankerModel } from './CohereReranker';
|
|
6
|
+
export { LocalCrossEncoderReranker, type LocalCrossEncoderConfig, LOCAL_RERANKER_MODELS, type LocalRerankerModel } from './LocalCrossEncoderReranker';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/rag/reranking/providers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC/H,OAAO,EAAE,yBAAyB,EAAE,KAAK,uBAAuB,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Reranker provider implementations.
|
|
3
|
+
* @module backend/agentos/rag/reranking/providers
|
|
4
|
+
*/
|
|
5
|
+
export { CohereReranker, COHERE_RERANKER_MODELS } from './CohereReranker.js';
|
|
6
|
+
export { LocalCrossEncoderReranker, LOCAL_RERANKER_MODELS } from './LocalCrossEncoderReranker.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rag/reranking/providers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAA6B,sBAAsB,EAA4B,MAAM,kBAAkB,CAAC;AAC/H,OAAO,EAAE,yBAAyB,EAAgC,qBAAqB,EAA2B,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/rag/reranking/tests/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Reranking module test suite index
|
|
3
|
+
* @module backend/agentos/rag/reranking/tests
|
|
4
|
+
*/
|
|
5
|
+
export {};
|
|
6
|
+
// Test utilities and fixtures for reranking tests
|
|
7
|
+
// Import individual test files to run the suite:
|
|
8
|
+
// - RerankerService.test.ts
|
|
9
|
+
// - CohereReranker.test.ts
|
|
10
|
+
// - LocalCrossEncoderReranker.test.ts
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rag/reranking/tests/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAIH,kDAAkD;AAClD,iDAAiD;AACjD,4BAA4B;AAC5B,2BAA2B;AAC3B,sCAAsC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optionalDependencies.d.ts","sourceRoot":"","sources":["../../src/types/optionalDependencies.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,sBAAsB,CAAC;IAE7B,MAAM,GAAG,EAAE,GAAG,CAAC;IACf,MAAM,QAAQ,EAAE,GAAG,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optionalDependencies.js","sourceRoot":"","sources":["../../src/types/optionalDependencies.ts"],"names":[],"mappings":";AAAA,mDAAmD;AACnD,kEAAkE"}
|