Skip to content

Commit 59676ea

Browse files
committed
Merge branch 'kl/scrum-132-refine-ai-outputs' of https://github.com/UTSC-CSCC01-Software-Engineering-I/term-group-project-c01w25-project-course-matrix into kl/scrum-132-refine-ai-outputs
2 parents a708687 + f06912f commit 59676ea

File tree

2 files changed

+17
-17
lines changed

2 files changed

+17
-17
lines changed

course-matrix/backend/src/controllers/aiController.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ const pinecone = new Pinecone({
3535
});
3636

3737
const index: Index<RecordMetadata> = pinecone.Index(
38-
process.env.PINECONE_INDEX_NAME!
38+
process.env.PINECONE_INDEX_NAME!,
3939
);
4040

4141
console.log("Connected to OpenAI API");
@@ -92,7 +92,7 @@ function analyzeQuery(query: string): {
9292
"prerequisites",
9393
"corequisites",
9494
"departments",
95-
"programs"
95+
"programs",
9696
);
9797
}
9898

@@ -110,7 +110,7 @@ async function searchSelectedNamespaces(
110110
query: string,
111111
k: number,
112112
namespaces: string[],
113-
filters?: Object
113+
filters?: Object,
114114
): Promise<Document[]> {
115115
let allResults: Document[] = [];
116116

@@ -132,7 +132,7 @@ async function searchSelectedNamespaces(
132132
const results = await namespaceStore.similaritySearch(
133133
query,
134134
Math.max(k, namespaceToMinResults.get(namespace)),
135-
namespace === "courses_v3" ? filters : undefined
135+
namespace === "courses_v3" ? filters : undefined,
136136
);
137137
console.log(`Found ${results.length} results in namespace: ${namespace}`);
138138
allResults = [...allResults, ...results];
@@ -153,7 +153,7 @@ async function searchSelectedNamespaces(
153153
// Reformulate user query to make more concise query to database, taking into consideration context
154154
async function reformulateQuery(
155155
latestQuery: string,
156-
conversationHistory: any[]
156+
conversationHistory: any[],
157157
): Promise<string> {
158158
try {
159159
const openai = new OpenAI({
@@ -251,7 +251,7 @@ function includeFilters(query: string) {
251251
if (keywords.some((keyword) => lowerQuery.includes(keyword))) {
252252
relaventBreadthRequirements.push(convertBreadthRequirement(namespace));
253253
}
254-
}
254+
},
255255
);
256256

257257
Object.entries(YEAR_LEVEL_KEYWORDS).forEach(([namespace, keywords]) => {
@@ -316,7 +316,7 @@ export const chat = asyncHandler(async (req: Request, res: Response) => {
316316
// Use GPT-4o to reformulate the query based on conversation history
317317
const reformulatedQuery = await reformulateQuery(
318318
latestMessage,
319-
conversationHistory.slice(-CHATBOT_MEMORY_THRESHOLD) // last K messages
319+
conversationHistory.slice(-CHATBOT_MEMORY_THRESHOLD), // last K messages
320320
);
321321
console.log(">>>> Original query:", latestMessage);
322322
console.log(">>>> Reformulated query:", reformulatedQuery);
@@ -330,8 +330,8 @@ export const chat = asyncHandler(async (req: Request, res: Response) => {
330330
if (requiresSearch) {
331331
console.log(
332332
`Query requires knowledge retrieval, searching namespaces: ${relevantNamespaces.join(
333-
", "
334-
)}`
333+
", ",
334+
)}`,
335335
);
336336

337337
const filters = includeFilters(reformulatedQuery);
@@ -342,7 +342,7 @@ export const chat = asyncHandler(async (req: Request, res: Response) => {
342342
reformulatedQuery,
343343
3,
344344
relevantNamespaces,
345-
Object.keys(filters).length === 0 ? undefined : filters
345+
Object.keys(filters).length === 0 ? undefined : filters,
346346
);
347347
// console.log("Search Results: ", searchResults);
348348

@@ -410,15 +410,15 @@ export const testSimilaritySearch = asyncHandler(
410410
if (requiresSearch) {
411411
console.log(
412412
`Query requires knowledge retrieval, searching namespaces: ${relevantNamespaces.join(
413-
", "
414-
)}`
413+
", ",
414+
)}`,
415415
);
416416

417417
// Search only the relevant namespaces
418418
const searchResults = await searchSelectedNamespaces(
419419
message,
420420
3,
421-
relevantNamespaces
421+
relevantNamespaces,
422422
);
423423
console.log("Search Results: ", searchResults);
424424

@@ -428,11 +428,11 @@ export const testSimilaritySearch = asyncHandler(
428428
}
429429
} else {
430430
console.log(
431-
"Query does not require knowledge retrieval, skipping search"
431+
"Query does not require knowledge retrieval, skipping search",
432432
);
433433
}
434434

435435
console.log("CONTEXT: ", context);
436436
res.status(200).send(context);
437-
}
437+
},
438438
);

course-matrix/backend/src/utils/embeddings.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ async function processCoursesCSV(filePath: string, namespace: string) {
5151
source: fileName,
5252
row: index + 1,
5353
breadth_requirement: convertBreadthRequirement(
54-
doc.pageContent.split("\n")[1].split(": ")[1]
54+
doc.pageContent.split("\n")[1].split(": ")[1],
5555
),
5656
year_level: doc.pageContent.split("\n")[10].split(": ")[1],
5757
},
@@ -101,7 +101,7 @@ async function processPDF(filePath: string, namespace: string) {
101101
// console.log("Sample split docs: ", splitDocs.slice(0, 6))
102102

103103
console.log(
104-
`Split into ${splitDocs.length} sections by "Calendar Section:" delimiter`
104+
`Split into ${splitDocs.length} sections by "Calendar Section:" delimiter`,
105105
);
106106

107107
// Store the split documents as embeddings

0 commit comments

Comments
 (0)