diff --git a/apps/web/inngest/functions/index.ts b/apps/web/inngest/functions/index.ts index dd0648b..9c92303 100644 --- a/apps/web/inngest/functions/index.ts +++ b/apps/web/inngest/functions/index.ts @@ -1,6 +1,7 @@ import prisma from "@super/db"; import { inngest } from "../client"; import { getRepoFileContents } from "@/modules/github/lib/github"; +import { indexCodebase } from "@/modules/pinecone/rag"; export const helloWorld = inngest.createFunction( { id: "hello-world" }, @@ -34,7 +35,9 @@ export const indexRepo = inngest.createFunction( }) await step.run("index-codebase", async()=>{ - + await indexCodebase(`${owner}/${repo}`, files) }) + + return {success:true, indexedFiles: files.length} } ) \ No newline at end of file diff --git a/apps/web/lib/pinecone/pinecone.ts b/apps/web/lib/pinecone/pinecone.ts index da0168e..8ec501d 100644 --- a/apps/web/lib/pinecone/pinecone.ts +++ b/apps/web/lib/pinecone/pinecone.ts @@ -5,5 +5,5 @@ export const pinecone = new Pinecone({ }) export const pineconeIndex = pinecone.index({ - name: "supercode-vector-embeddings-v1", + name: "supercode-vector-embeddings-v2", }) \ No newline at end of file diff --git a/apps/web/modules/pinecone/rag/index.ts b/apps/web/modules/pinecone/rag/index.ts index 01b4b3f..d9420a6 100644 --- a/apps/web/modules/pinecone/rag/index.ts +++ b/apps/web/modules/pinecone/rag/index.ts @@ -49,4 +49,19 @@ export async function indexCodebase(repoId: string, files: {path:string, content } console.log("File indexed") +} + +export async function retrieveContext(query: string, repoId: string, topK:number=5){ + + const embedding = await generateEmbedding(query); + + const results = await pineconeIndex.query({ + vector: embedding, + filter: {repoId}, + topK, + includeMetadata:true + }) + + return results.matches.map(match=>match.metadata?.content as string).filter(Boolean) + } \ No newline at end of file diff --git a/apps/web/modules/repository/action/index.ts b/apps/web/modules/repository/action/index.ts index 36c4e13..9be960c 100644 --- a/apps/web/modules/repository/action/index.ts +++ b/apps/web/modules/repository/action/index.ts @@ -59,7 +59,7 @@ export const connectRepository = async (owner: string, repo: string, githubId: n try { await inngest.send({ - name: "repository.connected", + name: "repository-connected", data:{ owner, repo,