From f9520d937463f076a24c8740566ccde6518d5c63 Mon Sep 17 00:00:00 2001
From: Sourabh Desai <sourabhdesai@gmail.com>
Date: Mon, 10 Jul 2023 08:14:32 +0000
Subject: [PATCH] small bugs

---
 apps/simple/listIndex.ts                    | 4 ++--
 packages/core/src/index/list/ListIndex.ts   | 9 ++++++---
 packages/core/src/index/list/utils.ts       | 4 ++--
 packages/core/src/storage/docStore/utils.ts | 2 +-
 4 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/apps/simple/listIndex.ts b/apps/simple/listIndex.ts
index 5b7a5203b..8ada0b32d 100644
--- a/apps/simple/listIndex.ts
+++ b/apps/simple/listIndex.ts
@@ -1,11 +1,11 @@
 import { Document } from "@llamaindex/core/src/Node";
-import { ListIndex } from "@llamaindex/core/src/index/list";
+import { ListIndex, ListRetrieverMode } from "@llamaindex/core/src/index/list";
 import essay from "./essay";
 
 async function main() {
   const document = new Document({ text: essay });
   const index = await ListIndex.fromDocuments([document]);
-  const queryEngine = index.asQueryEngine();
+  const queryEngine = index.asQueryEngine(ListRetrieverMode.LLM);
   const response = await queryEngine.aquery(
     "What did the author do growing up?"
   );
diff --git a/packages/core/src/index/list/ListIndex.ts b/packages/core/src/index/list/ListIndex.ts
index dcf7925c9..1b9026b9d 100644
--- a/packages/core/src/index/list/ListIndex.ts
+++ b/packages/core/src/index/list/ListIndex.ts
@@ -6,7 +6,10 @@ import {
   storageContextFromDefaults,
 } from "../../storage/StorageContext";
 import { BaseRetriever } from "../../Retriever";
-import { ListIndexRetriever } from "./ListIndexRetriever";
+import {
+  ListIndexRetriever,
+  ListIndexLLMRetriever,
+} from "./ListIndexRetriever";
 import {
   ServiceContext,
   serviceContextFromDefaults,
@@ -98,7 +101,7 @@ export class ListIndex extends BaseIndex<IndexList> {
       case ListRetrieverMode.DEFAULT:
         return new ListIndexRetriever(this);
       case ListRetrieverMode.LLM:
-        throw new Error(`Support for LLM retriever mode is not implemented`);
+        return new ListIndexLLMRetriever(this);
       default:
         throw new Error(`Unknown retriever mode: ${mode}`);
     }
@@ -107,7 +110,7 @@ export class ListIndex extends BaseIndex<IndexList> {
   asQueryEngine(
     mode: ListRetrieverMode = ListRetrieverMode.DEFAULT
   ): BaseQueryEngine {
-    return new RetrieverQueryEngine(this.asRetriever());
+    return new RetrieverQueryEngine(this.asRetriever(mode));
   }
 
   static async _buildIndexFromNodes(
diff --git a/packages/core/src/index/list/utils.ts b/packages/core/src/index/list/utils.ts
index b7a1d3f8f..ec248514b 100644
--- a/packages/core/src/index/list/utils.ts
+++ b/packages/core/src/index/list/utils.ts
@@ -57,9 +57,9 @@ export const defaultParseChoiceSelectAnswerFn: ChoiceSelectParserFunction = (
             throw new Error(
               `Invalid answer number: ${docNum}. Answer number must be between 1 and ${numChoices}`
             );
-          } else {
-            parseResult[docNum] = answerRelevance;
           }
+        } else {
+          parseResult[docNum] = answerRelevance;
         }
       } catch (e) {
         if (raiseErr) {
diff --git a/packages/core/src/storage/docStore/utils.ts b/packages/core/src/storage/docStore/utils.ts
index 3df1c1b30..273420026 100644
--- a/packages/core/src/storage/docStore/utils.ts
+++ b/packages/core/src/storage/docStore/utils.ts
@@ -12,7 +12,7 @@ export function docToJson(doc: BaseNode): Record<string, any> {
 
 export function jsonToDoc(docDict: Record<string, any>): BaseNode {
   let docType = docDict[TYPE_KEY];
-  let dataDict = docDict[DATA_KEY];
+  let dataDict = JSON.parse(docDict[DATA_KEY]);
   let doc: BaseNode;
 
   if (docType === ObjectType.DOCUMENT) {
-- 
GitLab