search-test/starred/create.ts
2025-08-09 23:09:01 +08:00

71 lines
1.8 KiB
TypeScript

import { client } from './common';
import fs from 'node:fs';
const getStarred = async () => {
const file = fs.readFileSync('./starred-repos.json', 'utf-8');
const starredRepos = JSON.parse(file);
return starredRepos;
};
const createData = async () => {
const starredRepos = await getStarred();
const index = client.index('starred_repos');
await index.addDocuments(starredRepos);
console.log('Data created successfully');
};
// await createData();
const searchJob = async () => {
const index = client.index('starred_repos');
const results = await index.search(`'ai'+'collaborative'`, {
showRankingScore: true,
});
console.log('Search results:', results);
};
// searchJob();
const updateEmbedder = async () => {
const index = client.index('starred_repos');
const res = await index.updateEmbedders({
siliconflow: {
source: 'rest',
apiKey: process.env.SILICONFLOW_API_KEY,
url: 'https://api.siliconflow.cn/v1/embeddings',
// model: 'Qwen/Qwen3-Embedding-8B',
request: {
input: '{{text}}',
model: 'Qwen/Qwen3-Embedding-8B',
// "encoding_format": "float"
},
response: {
data: [
{
embedding: '{{embedding}}',
},
],
},
},
});
console.log('Update embedders response:', res);
await index.getEmbedders().then((embedders) => {
console.log(embedders);
});
};
// updateEmbedder();
const searchByEmbedder = async () => {
const index = client.index('starred_repos');
const results = await index.search(`material design for free`, {
showRankingScore: true, // 可选,显示排序分数
limit: 5,
hybrid: {
embedder: 'siliconflow', // 指定使用 siliconflow embedder
},
});
console.log('Search results:', results);
};
searchByEmbedder();