This commit is contained in:
Ofer Mendelevitch 2023-12-31 18:59:49 -08:00
parent 467e71ba1f
commit e5f0ca0c0a
2 changed files with 8 additions and 6 deletions

View File

@ -249,18 +249,20 @@ class VectaraChain_Chains implements INode {
})) }))
const mmrRerankerId = 272725718 // Vectara reranker ID for MMR const mmrRerankerId = 272725718 // Vectara reranker ID for MMR
const mmrEnabled = vectaraFilter?.mmrConfig?.mmrDiversityBias > 0
const data = { const data = {
query: [ query: [
{ {
query: input, query: input,
start: 0, start: 0,
numResults: vectaraFilter?.mmrConfig?.mmrK > 0 ? vectaraFilter?.mmrK : topK, numResults: mmrEnabled ? vectaraFilter?.mmrK : topK,
corpusKey: corpusKeys, corpusKey: corpusKeys,
contextConfig: { contextConfig: {
sentencesAfter: vectaraFilter?.contextConfig?.sentencesAfter ?? 2, sentencesAfter: vectaraFilter?.contextConfig?.sentencesAfter ?? 2,
sentencesBefore: vectaraFilter?.contextConfig?.sentencesBefore ?? 2 sentencesBefore: vectaraFilter?.contextConfig?.sentencesBefore ?? 2
}, },
...(vectaraFilter?.mmrConfig?.mmrK > 0 ...(mmrEnabled
? { ? {
rerankingConfig: { rerankingConfig: {
rerankerId: mmrRerankerId, rerankerId: mmrRerankerId,
@ -299,7 +301,7 @@ class VectaraChain_Chains implements INode {
// remove responses that are not in the topK (in case of MMR) // remove responses that are not in the topK (in case of MMR)
// Note that this does not really matter functionally due to the reorder citations, but it is more efficient // Note that this does not really matter functionally due to the reorder citations, but it is more efficient
const maxResponses = vectaraFilter?.mmrConfig?.mmrK > 0 ? Math.min(responses.length, topK) : responses.length const maxResponses = mmrEnabled ? Math.min(responses.length, topK) : responses.length
if (responses.length > maxResponses) { if (responses.length > maxResponses) {
responses.splice(0, maxResponses) responses.splice(0, maxResponses)
} }

View File

@ -110,8 +110,8 @@ class Vectara_VectorStores implements INode {
{ {
label: 'MMR diversity bias', label: 'MMR diversity bias',
name: 'mmrDiversityBias', name: 'mmrDiversityBias',
description: 'The diversity bias to use for MMR. Defaults to 0.3', description: 'The diversity bias to use for MMR. Defaults to 0 (MMR disabled)',
placeholder: '0.3', placeholder: '0.0',
type: 'number', type: 'number',
additionalParams: true, additionalParams: true,
optional: true optional: true
@ -230,7 +230,7 @@ class Vectara_VectorStores implements INode {
if (sentencesBefore) vectaraContextConfig.sentencesBefore = sentencesBefore if (sentencesBefore) vectaraContextConfig.sentencesBefore = sentencesBefore
if (sentencesAfter) vectaraContextConfig.sentencesAfter = sentencesAfter if (sentencesAfter) vectaraContextConfig.sentencesAfter = sentencesAfter
vectaraFilter.contextConfig = vectaraContextConfig vectaraFilter.contextConfig = vectaraContextConfig
if (mmrK) vectaraFilter.mmrConfig = { mmrK: mmrK, diversityBias: mmrDiversityBias } vectaraFilter.mmrConfig = { mmrK: mmrK, diversityBias: mmrDiversityBias }
const vectorStore = new VectaraStore(vectaraArgs) const vectorStore = new VectaraStore(vectaraArgs)