Skip to content

Commit 883058c

Browse files
committed
feat: script to dump KB contents
1 parent 79b3f0b commit 883058c

File tree

3 files changed

+64
-0
lines changed

3 files changed

+64
-0
lines changed

agent/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"twitter:reply": "tsx --watch --env-file=.env ./src/temp/reply-twitter.ts",
1818
"twitter:tag": "tsx --watch --env-file=.env ./src/temp/tag-twitter.ts",
1919
"twitter:engage": "tsx --watch --env-file=.env ./src/temp/engage-twitter.ts",
20+
"dump-kb": "tsx --watch --env-file=.env ./src/temp/dump-kb-csv.ts",
2021
"dev:chat": "tsx --watch --env-file=.env ./src/chat-server.ts | pino-pretty",
2122
"dev:server": "tsx --watch --env-file=.env ./src/server.ts | pino-pretty",
2223
"dev:inngest": "inngest dev -u http://localhost:3000/api/inngest",
@@ -53,6 +54,7 @@
5354
"inngest": "^3.40.3",
5455
"ioredis": "^5.6.1",
5556
"jose": "^6.0.13",
57+
"json-2-csv": "^5.5.9",
5658
"lodash-es": "^4.17.21",
5759
"p-map": "^7.0.3",
5860
"pino": "^9.7.0",

agent/src/temp/dump-kb-csv.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { manualKbDb } from 'database';
2+
import { getKbDbInstance } from '../controlplane-api/utils';
3+
import { logger } from '../logger';
4+
import { json2csv } from 'json-2-csv';
5+
import { writeFile } from 'node:fs/promises';
6+
7+
const log = logger.child({ module: 'dump-kb-csv' });
8+
9+
async function main() {
10+
// Provide empty orgId to connect to default kb database
11+
12+
const dbInstance = await getKbDbInstance({
13+
orgId: '',
14+
log,
15+
});
16+
17+
const content = await dbInstance
18+
.select({
19+
title: manualKbDb.ManualKbDocument.title,
20+
content: manualKbDb.ManualKbDocument.content,
21+
})
22+
.from(manualKbDb.ManualKbDocument)
23+
.orderBy(manualKbDb.ManualKbDocument.createdAt);
24+
25+
const values = content.map(r => ({
26+
...r,
27+
// @ts-expect-error ignore type
28+
content: Buffer.from(r.content).toString(),
29+
}));
30+
31+
await writeFile('kb.json', JSON.stringify(values, null, 2), {
32+
encoding: 'utf-8',
33+
});
34+
35+
await writeFile('kb.csv', json2csv(values), { encoding: 'utf-8' });
36+
}
37+
38+
main().catch(console.error);

pnpm-lock.yaml

Lines changed: 24 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)