Skip to content

Commit ab8234b

Browse files
committed
perf: get metadata from vectorize
1 parent df71d06 commit ab8234b

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

server/api/similarity/[owner]/[repo]/[number].get.ts

+8-13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { defineCachedCorsEventHandler } from '~~/server/utils/cached-cors'
2-
import { getStoredMetadataForIssue, storageKeyForIssue, type IssueMetadata } from '~~/server/utils/embeddings'
2+
import { storageKeyForIssue } from '~~/server/utils/embeddings'
3+
import type { IssueMetadata } from '~~/server/utils/embeddings'
34

45
export default defineCachedCorsEventHandler(async (event) => {
56
const { owner, repo, number } = getRouterParams(event)
@@ -17,36 +18,30 @@ export default defineCachedCorsEventHandler(async (event) => {
1718
const issueVector = await vectorize?.getByIds([storageKeyForIssue(owner, repo, number)])
1819
const results = issueVector?.[0]
1920
? await vectorize?.query(issueVector[0].values, {
21+
returnMetadata: 'all',
22+
topK: 10,
2023
filter: {
2124
owner,
2225
},
2326
})
2427
: undefined
2528

26-
return await Promise.all(results?.matches.map(async (m) => {
29+
return results?.matches.map((m) => {
2730
const issueMetadata = m.metadata as IssueMetadata
28-
const groups = m.id.match(/^issue:(?<owner>[^:]+):(?<repo>[^:]+):(?<number>\d+)$/)?.groups
29-
if (!groups) {
30-
console.error('Invalid match', m.id)
31-
return
32-
}
33-
34-
const issue = await getStoredMetadataForIssue(groups.owner!, groups.repo!, parseInt(groups.number!))
3531

3632
return {
37-
...issue,
38-
labels: issue?.labels?.map((l) => {
33+
...issueMetadata,
34+
labels: issueMetadata?.labels?.map((l) => {
3935
try {
4036
return l.startsWith('{') ? JSON.parse(l) as { name: string, color?: string } : l
4137
}
4238
catch {
4339
return l
4440
}
4541
}),
46-
...issueMetadata,
4742
score: m.score,
4843
}
49-
}) || [])
44+
}) || []
5045
}, {
5146
swr: true,
5247
getKey(event) {

0 commit comments

Comments
 (0)