Compare commits

..

No commits in common. "main" and "v0.1.7" have entirely different histories.
main ... v0.1.7

4 changed files with 7 additions and 28 deletions

View File

@ -99,4 +99,4 @@ bun dist/run.js <command> [options]
- [Bun](https://bun.sh) 运行时 - [Bun](https://bun.sh) 运行时
- 系统 PATH 中包含 `ffmpeg` / `ffprobe`(帧提取) - 系统 PATH 中包含 `ffmpeg` / `ffprobe`(帧提取)
- `auth-rt` CLI鉴权/API 调用`install.sh` 自动安装 - 系统 PATH 中包含 `auth-rt` CLI鉴权/API 调用)

View File

@ -67,7 +67,7 @@ bun dist/run.js <command> [args] [--dry-run]
## 结果展示格式 ## 结果展示格式
`rerank.results`(优先)或 `searchBody.data.items.item` 格式化为 markdown 表格,**最多 5 条** `rerank.results`(优先)或 `searchBody.data.items.item` 格式化为 markdown 表格,**每页 5 行**
| # | 商品名称 | 价格 | 销量 | 链接 | | # | 商品名称 | 价格 | 销量 | 链接 |
|---|----------|------|------|------| |---|----------|------|------|------|

View File

@ -55,20 +55,6 @@ export interface SessionResponse {
hookToken?: string; hookToken?: string;
} }
export interface ClientConfig {
clientId: string;
name: string;
status: string;
metadata: {
provider?: {
api_key?: string;
base_url?: string;
model?: string;
};
[key: string]: unknown;
};
}
export interface SkillClientOptions { export interface SkillClientOptions {
apiBase?: string; apiBase?: string;
dryRun?: boolean; dryRun?: boolean;
@ -105,13 +91,6 @@ export class SkillClient {
return JSON.parse(runCli('session')); return JSON.parse(runCli('session'));
} }
async clientConfig(): Promise<ClientConfig> {
if (this.dryRun) {
return { clientId: '<dry-run>', name: '<dry-run>', status: 'active', metadata: {} };
}
return JSON.parse(runCli('client-config'));
}
async get(urlPath: string): Promise<ApiResponse> { async get(urlPath: string): Promise<ApiResponse> {
return this.request('GET', urlPath); return this.request('GET', urlPath);
} }

View File

@ -212,7 +212,7 @@ async function runDetectBestAndSearch(args: string[], dryRun: boolean): Promise<
// Otherwise fall back to the keyword-intersection rerank. // Otherwise fall back to the keyword-intersection rerank.
if (!dryRun && postFilter && !postFilter.error && postFilter.keptCount > 0) { if (!dryRun && postFilter && !postFilter.error && postFilter.keptCount > 0) {
const items: SearchItem[] = (searchResult.searchBody as any)?.data?.items?.item ?? []; const items: SearchItem[] = (searchResult.searchBody as any)?.data?.items?.item ?? [];
const sorted = [...items].sort((a, b) => (b.sales ?? 0) - (a.sales ?? 0)).slice(0, 5); const sorted = [...items].sort((a, b) => (b.sales ?? 0) - (a.sales ?? 0)).slice(0, 10);
rerankResult = { rerankResult = {
source: 'post-filter', source: 'post-filter',
results: sorted, results: sorted,
@ -225,7 +225,7 @@ async function runDetectBestAndSearch(args: string[], dryRun: boolean): Promise<
rerankResult = await runRerank([ rerankResult = await runRerank([
`--image-results=${tmpFile}`, `--image-results=${tmpFile}`,
`--description=${best.description}`, `--description=${best.description}`,
'--top=5', '--top=10',
], dryRun); ], dryRun);
} catch (e: any) { } catch (e: any) {
rerankResult = { error: e.message }; rerankResult = { error: e.message };
@ -360,7 +360,7 @@ async function runDetectAndSearch(args: string[], dryRun: boolean): Promise<Outp
// Otherwise fall back to the keyword-intersection rerank. // Otherwise fall back to the keyword-intersection rerank.
if (!dryRun && postFilter && !postFilter.error && postFilter.keptCount > 0) { if (!dryRun && postFilter && !postFilter.error && postFilter.keptCount > 0) {
const items: SearchItem[] = (searchResult.searchBody as any)?.data?.items?.item ?? []; const items: SearchItem[] = (searchResult.searchBody as any)?.data?.items?.item ?? [];
const sorted = [...items].sort((a, b) => (b.sales ?? 0) - (a.sales ?? 0)).slice(0, 5); const sorted = [...items].sort((a, b) => (b.sales ?? 0) - (a.sales ?? 0)).slice(0, 10);
rerankResult = { rerankResult = {
source: 'post-filter', source: 'post-filter',
results: sorted, results: sorted,
@ -373,7 +373,7 @@ async function runDetectAndSearch(args: string[], dryRun: boolean): Promise<Outp
rerankResult = await runRerank([ rerankResult = await runRerank([
`--image-results=${tmpFile}`, `--image-results=${tmpFile}`,
`--description=${best.description}`, `--description=${best.description}`,
'--top=5', '--top=10',
], dryRun); ], dryRun);
} catch (e: any) { } catch (e: any) {
rerankResult = { error: e.message }; rerankResult = { error: e.message };
@ -493,7 +493,7 @@ async function runRerank(args: string[], dryRun: boolean): Promise<OutputResult>
const positionals = args.filter((a) => !a.startsWith('--')); const positionals = args.filter((a) => !a.startsWith('--'));
const imageResultsArg = getFlag(args, '--image-results') || positionals[0]; const imageResultsArg = getFlag(args, '--image-results') || positionals[0];
const keywordArg = getFlag(args, '--keyword') || positionals[1]; const keywordArg = getFlag(args, '--keyword') || positionals[1];
const topN = parseInt(getFlag(args, '--top') || '5', 10); const topN = parseInt(getFlag(args, '--top') || '10', 10);
const description = getFlag(args, '--description') || ''; const description = getFlag(args, '--description') || '';