ai-functions 0.2.18 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +112 -21
- package/bin/cli.js +5 -0
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +38 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/index.test.d.ts +2 -0
- package/dist/cli/index.test.d.ts.map +1 -0
- package/dist/cli/index.test.js +35 -0
- package/dist/cli/index.test.js.map +1 -0
- package/dist/constants/models.d.ts +10 -0
- package/dist/constants/models.d.ts.map +1 -0
- package/dist/constants/models.js +12 -0
- package/dist/constants/models.js.map +1 -0
- package/dist/converters/index.d.ts +3 -0
- package/dist/converters/index.d.ts.map +1 -0
- package/dist/converters/index.js +3 -0
- package/dist/converters/index.js.map +1 -0
- package/dist/converters/model.d.ts +4 -0
- package/dist/converters/model.d.ts.map +1 -0
- package/dist/converters/model.js +19 -0
- package/dist/converters/model.js.map +1 -0
- package/dist/converters/schema.d.ts +4 -0
- package/dist/converters/schema.d.ts.map +1 -0
- package/dist/converters/schema.js +25 -0
- package/dist/converters/schema.js.map +1 -0
- package/dist/core/responses.d.ts +5 -0
- package/dist/core/responses.d.ts.map +1 -0
- package/dist/core/responses.js +16 -0
- package/dist/core/responses.js.map +1 -0
- package/dist/core/responses.test.d.ts +2 -0
- package/dist/core/responses.test.d.ts.map +1 -0
- package/dist/core/responses.test.js +31 -0
- package/dist/core/responses.test.js.map +1 -0
- package/dist/errors.d.ts +6 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +9 -0
- package/dist/errors.js.map +1 -0
- package/dist/examples/streaming.test.d.ts +2 -0
- package/dist/examples/streaming.test.d.ts.map +1 -0
- package/dist/examples/streaming.test.js +176 -0
- package/dist/examples/streaming.test.js.map +1 -0
- package/dist/factory/__tests__/index.test.d.ts +2 -0
- package/dist/factory/__tests__/index.test.d.ts.map +1 -0
- package/dist/factory/__tests__/index.test.js +430 -0
- package/dist/factory/__tests__/index.test.js.map +1 -0
- package/dist/factory/__tests__/list.test.d.ts +2 -0
- package/dist/factory/__tests__/list.test.d.ts.map +1 -0
- package/dist/factory/__tests__/list.test.js +92 -0
- package/dist/factory/__tests__/list.test.js.map +1 -0
- package/dist/factory/index.d.ts +20 -0
- package/dist/factory/index.d.ts.map +1 -0
- package/dist/factory/index.js +287 -0
- package/dist/factory/index.js.map +1 -0
- package/dist/factory/index.test.d.ts +2 -0
- package/dist/factory/index.test.d.ts.map +1 -0
- package/dist/factory/index.test.js +287 -0
- package/dist/factory/index.test.js.map +1 -0
- package/dist/factory/list.d.ts +3 -0
- package/dist/factory/list.d.ts.map +1 -0
- package/dist/factory/list.js +221 -0
- package/dist/factory/list.js.map +1 -0
- package/dist/factory/list.test.d.ts +2 -0
- package/dist/factory/list.test.d.ts.map +1 -0
- package/dist/factory/list.test.js +84 -0
- package/dist/factory/list.test.js.map +1 -0
- package/dist/generate/index.d.ts +5 -0
- package/dist/generate/index.d.ts.map +1 -0
- package/dist/generate/index.js +17 -0
- package/dist/generate/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/index.test.js +59 -0
- package/dist/index.test.js.map +1 -0
- package/dist/list/await.d.ts +3 -0
- package/dist/list/await.d.ts.map +1 -0
- package/dist/list/await.js +28 -0
- package/dist/list/await.js.map +1 -0
- package/dist/list/constants.d.ts +4 -0
- package/dist/list/constants.d.ts.map +1 -0
- package/dist/list/constants.js +5 -0
- package/dist/list/constants.js.map +1 -0
- package/dist/list/create-function.d.ts +3 -0
- package/dist/list/create-function.d.ts.map +1 -0
- package/dist/list/create-function.js +11 -0
- package/dist/list/create-function.js.map +1 -0
- package/dist/list/index.d.ts +4 -0
- package/dist/list/index.d.ts.map +1 -0
- package/dist/list/index.js +5 -0
- package/dist/list/index.js.map +1 -0
- package/dist/list/prompt.d.ts +3 -0
- package/dist/list/prompt.d.ts.map +1 -0
- package/dist/list/prompt.js +6 -0
- package/dist/list/prompt.js.map +1 -0
- package/dist/list/schemas.d.ts +4 -0
- package/dist/list/schemas.d.ts.map +1 -0
- package/dist/list/schemas.js +8 -0
- package/dist/list/schemas.js.map +1 -0
- package/dist/list/stream.d.ts +3 -0
- package/dist/list/stream.d.ts.map +1 -0
- package/dist/list/stream.js +33 -0
- package/dist/list/stream.js.map +1 -0
- package/dist/list/types.d.ts +11 -0
- package/dist/list/types.d.ts.map +1 -0
- package/dist/list/types.js +2 -0
- package/dist/list/types.js.map +1 -0
- package/dist/list/validation.d.ts +3 -0
- package/dist/list/validation.d.ts.map +1 -0
- package/dist/list/validation.js +12 -0
- package/dist/list/validation.js.map +1 -0
- package/dist/providers/config.d.ts +4 -0
- package/dist/providers/config.d.ts.map +1 -0
- package/dist/providers/config.js +21 -0
- package/dist/providers/config.js.map +1 -0
- package/dist/providers/config.test.d.ts +2 -0
- package/dist/providers/config.test.d.ts.map +1 -0
- package/dist/providers/config.test.js +37 -0
- package/dist/providers/config.test.js.map +1 -0
- package/dist/proxy/constants.d.ts +4 -0
- package/dist/proxy/constants.d.ts.map +1 -0
- package/dist/proxy/constants.js +5 -0
- package/dist/proxy/constants.js.map +1 -0
- package/dist/proxy/create-function.d.ts +4 -0
- package/dist/proxy/create-function.d.ts.map +1 -0
- package/dist/proxy/create-function.js +24 -0
- package/dist/proxy/create-function.js.map +1 -0
- package/dist/proxy/create-proxy.d.ts +2 -0
- package/dist/proxy/create-proxy.d.ts.map +1 -0
- package/dist/proxy/create-proxy.js +11 -0
- package/dist/proxy/create-proxy.js.map +1 -0
- package/dist/proxy/function-generator.d.ts +9 -0
- package/dist/proxy/function-generator.d.ts.map +1 -0
- package/dist/proxy/function-generator.js +29 -0
- package/dist/proxy/function-generator.js.map +1 -0
- package/dist/proxy/index.d.ts +4 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +4 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/prompt.d.ts +2 -0
- package/dist/proxy/prompt.d.ts.map +1 -0
- package/dist/proxy/prompt.js +6 -0
- package/dist/proxy/prompt.js.map +1 -0
- package/dist/proxy/types.d.ts +7 -0
- package/dist/proxy/types.d.ts.map +1 -0
- package/dist/proxy/types.js +2 -0
- package/dist/proxy/types.js.map +1 -0
- package/dist/queue/manager.d.ts +5 -0
- package/dist/queue/manager.d.ts.map +1 -0
- package/dist/queue/manager.js +37 -0
- package/dist/queue/manager.js.map +1 -0
- package/dist/queue/manager.test.d.ts +2 -0
- package/dist/queue/manager.test.d.ts.map +1 -0
- package/dist/queue/manager.test.js +52 -0
- package/dist/queue/manager.test.js.map +1 -0
- package/dist/schema-converter.d.ts +4 -0
- package/dist/schema-converter.d.ts.map +1 -0
- package/dist/schema-converter.js +30 -0
- package/dist/schema-converter.js.map +1 -0
- package/dist/stream/index.d.ts +7 -0
- package/dist/stream/index.d.ts.map +1 -0
- package/dist/stream/index.js +23 -0
- package/dist/stream/index.js.map +1 -0
- package/dist/streaming/utils.d.ts +4 -0
- package/dist/streaming/utils.d.ts.map +1 -0
- package/dist/streaming/utils.js +131 -0
- package/dist/streaming/utils.js.map +1 -0
- package/dist/streaming/utils.test.d.ts +2 -0
- package/dist/streaming/utils.test.d.ts.map +1 -0
- package/dist/streaming/utils.test.js +84 -0
- package/dist/streaming/utils.test.js.map +1 -0
- package/dist/templates/result.d.ts +7 -0
- package/dist/templates/result.d.ts.map +1 -0
- package/dist/templates/result.js +40 -0
- package/dist/templates/result.js.map +1 -0
- package/dist/templates/result.test.d.ts +2 -0
- package/dist/templates/result.test.d.ts.map +1 -0
- package/dist/templates/result.test.js +75 -0
- package/dist/templates/result.test.js.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/test/setup.js +21 -0
- package/dist/test/setup.js.map +1 -0
- package/dist/test-types.d.ts +13 -0
- package/dist/test-types.d.ts.map +1 -0
- package/dist/test-types.js +55 -0
- package/dist/test-types.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/list.d.ts +10 -0
- package/dist/types/list.d.ts.map +1 -0
- package/dist/types/list.js +2 -0
- package/dist/types/list.js.map +1 -0
- package/dist/types/model.d.ts +7 -0
- package/dist/types/model.d.ts.map +1 -0
- package/dist/types/model.js +2 -0
- package/dist/types/model.js.map +1 -0
- package/dist/types/options.d.ts +25 -0
- package/dist/types/options.d.ts.map +1 -0
- package/dist/types/options.js +2 -0
- package/dist/types/options.js.map +1 -0
- package/dist/types/schema.d.ts +5 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/schema.js +2 -0
- package/dist/types/schema.js.map +1 -0
- package/dist/types.d.ts +113 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/__tests__/request-handler.test.d.ts +2 -0
- package/dist/utils/__tests__/request-handler.test.d.ts.map +1 -0
- package/dist/utils/__tests__/request-handler.test.js +134 -0
- package/dist/utils/__tests__/request-handler.test.js.map +1 -0
- package/dist/utils/__tests__/schema.test.d.ts +2 -0
- package/dist/utils/__tests__/schema.test.d.ts.map +1 -0
- package/dist/utils/__tests__/schema.test.js +49 -0
- package/dist/utils/__tests__/schema.test.js.map +1 -0
- package/dist/utils/__tests__/stream-progress.test.d.ts +2 -0
- package/dist/utils/__tests__/stream-progress.test.d.ts.map +1 -0
- package/dist/utils/__tests__/stream-progress.test.js +85 -0
- package/dist/utils/__tests__/stream-progress.test.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/request-handler.d.ts +17 -0
- package/dist/utils/request-handler.d.ts.map +1 -0
- package/dist/utils/request-handler.js +105 -0
- package/dist/utils/request-handler.js.map +1 -0
- package/dist/utils/schema.d.ts +11 -0
- package/dist/utils/schema.d.ts.map +1 -0
- package/dist/utils/schema.js +51 -0
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/stream-progress.d.ts +17 -0
- package/dist/utils/stream-progress.d.ts.map +1 -0
- package/dist/utils/stream-progress.js +86 -0
- package/dist/utils/stream-progress.js.map +1 -0
- package/dist/utils/validation.d.ts +3 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +30 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +56 -40
- package/db/cache.ts +0 -6
- package/db/mongo.ts +0 -75
- package/dist/mjs/db/cache.d.ts +0 -1
- package/dist/mjs/db/cache.js +0 -5
- package/dist/mjs/db/mongo.d.ts +0 -31
- package/dist/mjs/db/mongo.js +0 -48
- package/dist/mjs/examples/data.d.ts +0 -1105
- package/dist/mjs/examples/data.js +0 -1105
- package/dist/mjs/functions/ai.d.ts +0 -20
- package/dist/mjs/functions/ai.js +0 -83
- package/dist/mjs/functions/ai.test.d.ts +0 -1
- package/dist/mjs/functions/ai.test.js +0 -29
- package/dist/mjs/functions/gpt.d.ts +0 -4
- package/dist/mjs/functions/gpt.js +0 -10
- package/dist/mjs/functions/list.d.ts +0 -7
- package/dist/mjs/functions/list.js +0 -72
- package/dist/mjs/index.d.ts +0 -3
- package/dist/mjs/index.js +0 -3
- package/dist/mjs/queue/kafka.d.ts +0 -0
- package/dist/mjs/queue/kafka.js +0 -1
- package/dist/mjs/queue/memory.d.ts +0 -0
- package/dist/mjs/queue/memory.js +0 -1
- package/dist/mjs/queue/mongo.d.ts +0 -30
- package/dist/mjs/queue/mongo.js +0 -42
- package/dist/mjs/streams/kafka.d.ts +0 -0
- package/dist/mjs/streams/kafka.js +0 -1
- package/dist/mjs/streams/memory.d.ts +0 -0
- package/dist/mjs/streams/memory.js +0 -1
- package/dist/mjs/streams/mongo.d.ts +0 -0
- package/dist/mjs/streams/mongo.js +0 -1
- package/dist/mjs/streams/types.d.ts +0 -0
- package/dist/mjs/streams/types.js +0 -1
- package/dist/mjs/types.d.ts +0 -11
- package/dist/mjs/types.js +0 -1
- package/dist/mjs/utils/completion.d.ts +0 -9
- package/dist/mjs/utils/completion.js +0 -20
- package/dist/mjs/utils/schema.d.ts +0 -10
- package/dist/mjs/utils/schema.js +0 -72
- package/dist/mjs/utils/schema.test.d.ts +0 -1
- package/dist/mjs/utils/schema.test.js +0 -60
- package/dist/mjs/utils/state.d.ts +0 -1
- package/dist/mjs/utils/state.js +0 -19
- package/examples/data.ts +0 -1105
- package/fixup +0 -11
- package/functions/ai.test.ts +0 -41
- package/functions/ai.ts +0 -115
- package/functions/gpt.ts +0 -12
- package/functions/list.ts +0 -84
- package/index.ts +0 -3
- package/queue/kafka.ts +0 -0
- package/queue/memory.ts +0 -0
- package/queue/mongo.ts +0 -88
- package/streams/kafka.ts +0 -0
- package/streams/memory.ts +0 -0
- package/streams/mongo.ts +0 -0
- package/streams/types.ts +0 -0
- package/tsconfig-backup.json +0 -105
- package/tsconfig-base.json +0 -26
- package/tsconfig-cjs.json +0 -8
- package/tsconfig.json +0 -8
- package/types.ts +0 -12
- package/utils/completion.ts +0 -28
- package/utils/schema.test.ts +0 -69
- package/utils/schema.ts +0 -74
- package/utils/state.ts +0 -23
package/package.json
CHANGED
|
@@ -1,56 +1,72 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-functions",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "A powerful TypeScript library for building AI-powered applications with template literals and structured outputs",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"bin": {
|
|
10
|
+
"ai-functions": "bin/cli.js"
|
|
12
11
|
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist",
|
|
14
|
+
"bin"
|
|
15
|
+
],
|
|
13
16
|
"scripts": {
|
|
14
17
|
"build": "tsc",
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
+
"test": "vitest run",
|
|
19
|
+
"test:watch": "vitest",
|
|
20
|
+
"lint": "eslint src",
|
|
21
|
+
"format": "prettier --write \"src/**/*.{ts,tsx,js,jsx}\" \"*.{md,mdx}\"",
|
|
22
|
+
"prepublishOnly": "pnpm run build",
|
|
23
|
+
"semantic-release": "semantic-release"
|
|
18
24
|
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"ai",
|
|
27
|
+
"openai",
|
|
28
|
+
"template-literals",
|
|
29
|
+
"typescript",
|
|
30
|
+
"structured-output",
|
|
31
|
+
"cli"
|
|
32
|
+
],
|
|
33
|
+
"author": "AI Primitives",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"homepage": "https://github.com/ai-primitives/ai-functions#readme",
|
|
19
36
|
"repository": {
|
|
20
37
|
"type": "git",
|
|
21
|
-
"url": "git+https://github.com/
|
|
38
|
+
"url": "git+https://github.com/ai-primitives/ai-functions.git"
|
|
22
39
|
},
|
|
23
|
-
"keywords": [],
|
|
24
|
-
"author": "",
|
|
25
|
-
"license": "MIT",
|
|
26
40
|
"bugs": {
|
|
27
|
-
"url": "https://github.com/
|
|
28
|
-
},
|
|
29
|
-
"homepage": "https://github.com/nathanclevenger/ai-functions#readme",
|
|
30
|
-
"prettier": {
|
|
31
|
-
"semi": false,
|
|
32
|
-
"singleQuote": true,
|
|
33
|
-
"trailingComma": "es5",
|
|
34
|
-
"tabWidth": 2,
|
|
35
|
-
"printWidth": 120
|
|
41
|
+
"url": "https://github.com/ai-primitives/ai-functions/issues"
|
|
36
42
|
},
|
|
37
43
|
"devDependencies": {
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
+
"@ai-sdk/provider": "^1.0.2",
|
|
45
|
+
"@ai-sdk/provider-utils": "^2.0.4",
|
|
46
|
+
"@ai-sdk/ui-utils": "^1.0.5",
|
|
47
|
+
"@eslint/js": "^9.17.0",
|
|
48
|
+
"@opentelemetry/api": "^1.9.0",
|
|
49
|
+
"@semantic-release/commit-analyzer": "^13.0.0",
|
|
50
|
+
"@semantic-release/github": "^11.0.1",
|
|
51
|
+
"@semantic-release/npm": "^12.0.1",
|
|
52
|
+
"@semantic-release/release-notes-generator": "^14.0.1",
|
|
53
|
+
"@types/node": "^22.10.2",
|
|
54
|
+
"@typescript-eslint/eslint-plugin": "^8.18.0",
|
|
55
|
+
"@typescript-eslint/parser": "^8.18.0",
|
|
56
|
+
"dotenv": "^16.4.7",
|
|
57
|
+
"eslint": "^9.17.0",
|
|
58
|
+
"prettier": "^3.4.2",
|
|
59
|
+
"semantic-release": "^24.2.0",
|
|
60
|
+
"typescript": "^5.7.2",
|
|
61
|
+
"undici": "^7.2.0",
|
|
62
|
+
"vitest": "^2.1.8",
|
|
63
|
+
"web-streams-polyfill": "^4.0.0"
|
|
44
64
|
},
|
|
45
65
|
"dependencies": {
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"openai": "^4.26.0",
|
|
52
|
-
"p-queue": "^7.4.1",
|
|
53
|
-
"partial-json-parser": "^1.2.2",
|
|
54
|
-
"xstate": "^5.0.0-beta.40"
|
|
66
|
+
"@ai-sdk/openai": "^1.0.10",
|
|
67
|
+
"@ai-sdk/openai-compatible": "^0.0.9",
|
|
68
|
+
"ai": "^4.0.20",
|
|
69
|
+
"p-queue": "^8.0.1",
|
|
70
|
+
"zod": "^3.24.1"
|
|
55
71
|
}
|
|
56
72
|
}
|
package/db/cache.ts
DELETED
package/db/mongo.ts
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import type { MongoClient, Db, Collection, InsertOneResult, BSON } from 'mongodb'
|
|
2
|
-
import type { ChatCompletion, ChatCompletionCreateParamsNonStreaming } from 'openai/resources'
|
|
3
|
-
import { QueueInput } from '../queue/mongo'
|
|
4
|
-
|
|
5
|
-
export let client: MongoClient
|
|
6
|
-
export let db: Db
|
|
7
|
-
export let cache: Collection
|
|
8
|
-
export let cacheTTL: number
|
|
9
|
-
export let events: Collection
|
|
10
|
-
export let queue: Collection
|
|
11
|
-
export let actors: Collection
|
|
12
|
-
|
|
13
|
-
export type AIDBConfig = {
|
|
14
|
-
client: MongoClient
|
|
15
|
-
db?: Db | string
|
|
16
|
-
cache?: Collection | string
|
|
17
|
-
cacheTTL?: number
|
|
18
|
-
actors?: Collection | string
|
|
19
|
-
events?: Collection | string
|
|
20
|
-
queue?: Collection | string
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export type AIDB = {
|
|
24
|
-
client: MongoClient
|
|
25
|
-
db: Db
|
|
26
|
-
cache: Collection
|
|
27
|
-
cacheTTL: number
|
|
28
|
-
actors: Collection
|
|
29
|
-
events: Collection
|
|
30
|
-
queue: Collection
|
|
31
|
-
log: (prompt: ChatCompletionCreateParamsNonStreaming, completion: ChatCompletion) => Promise<InsertOneResult<any>>
|
|
32
|
-
send: (input: QueueInput | QueueInput[]) => Promise<InsertOneResult<any>>
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export const AIDB = (args: AIDBConfig | MongoClient) => {
|
|
36
|
-
const config = (args as AIDBConfig).client ? (args as AIDBConfig) : { client: args as MongoClient }
|
|
37
|
-
client = config.client
|
|
38
|
-
db = typeof config.db === 'string' ? client.db(config.db) : config.db ?? client.db()
|
|
39
|
-
cache = typeof config.cache === 'string' ? db.collection(config.cache) : config.cache ?? db.collection('ai-cache')
|
|
40
|
-
cacheTTL = config.cacheTTL ?? 1000 * 60 * 60 * 24 * 30
|
|
41
|
-
events =
|
|
42
|
-
typeof config.events === 'string' ? db.collection(config.events) : config.events ?? db.collection('ai-events')
|
|
43
|
-
// queue = typeof config.queue === 'string' ? db.collection(config.queue) : config.queue ?? db.collection('ai-queue')
|
|
44
|
-
// actors = typeof config.queue === 'string' ? db.collection(config.queue) : config.queue ?? db.collection('ai-actors')
|
|
45
|
-
return { client, db, cache, actors, events, queue, log } as AIDB // , send } as AIDB
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// const send = (input: QueueInput | QueueInput[]) =>
|
|
49
|
-
// Array.isArray(input) ? queue.insertMany(input) : queue.insertOne(input)
|
|
50
|
-
|
|
51
|
-
const log = (prompt: ChatCompletionCreateParamsNonStreaming, completion: ChatCompletion) => {
|
|
52
|
-
const system = prompt.messages.find((message: any) => message.role === 'system')?.content
|
|
53
|
-
const userMessages = prompt.messages.filter((message: any) => message.role === 'user').map((message) => message.content)
|
|
54
|
-
const user = userMessages.length === 1 ? userMessages[0] : userMessages
|
|
55
|
-
const content = completion.choices?.[0].message.content
|
|
56
|
-
const tool = completion.choices?.[0].message.tool_calls?.[0].function
|
|
57
|
-
let functionData: object | string | undefined
|
|
58
|
-
try {
|
|
59
|
-
if (tool) functionData = JSON.parse(tool.arguments)
|
|
60
|
-
} catch (err) {
|
|
61
|
-
functionData = tool?.arguments
|
|
62
|
-
}
|
|
63
|
-
const timestamp = new Date()
|
|
64
|
-
const event = {
|
|
65
|
-
timestamp,
|
|
66
|
-
user,
|
|
67
|
-
system,
|
|
68
|
-
content,
|
|
69
|
-
functionName: tool?.name,
|
|
70
|
-
functionData,
|
|
71
|
-
prompt,
|
|
72
|
-
completion,
|
|
73
|
-
}
|
|
74
|
-
return events.insertOne(event, { ignoreUndefined: true })
|
|
75
|
-
}
|
package/dist/mjs/db/cache.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const md5: (data: string | object) => string;
|
package/dist/mjs/db/cache.js
DELETED
package/dist/mjs/db/mongo.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { MongoClient, Db, Collection, InsertOneResult } from 'mongodb';
|
|
2
|
-
import type { ChatCompletion, ChatCompletionCreateParamsNonStreaming } from 'openai/resources';
|
|
3
|
-
import { QueueInput } from '../queue/mongo';
|
|
4
|
-
export declare let client: MongoClient;
|
|
5
|
-
export declare let db: Db;
|
|
6
|
-
export declare let cache: Collection;
|
|
7
|
-
export declare let cacheTTL: number;
|
|
8
|
-
export declare let events: Collection;
|
|
9
|
-
export declare let queue: Collection;
|
|
10
|
-
export declare let actors: Collection;
|
|
11
|
-
export type AIDBConfig = {
|
|
12
|
-
client: MongoClient;
|
|
13
|
-
db?: Db | string;
|
|
14
|
-
cache?: Collection | string;
|
|
15
|
-
cacheTTL?: number;
|
|
16
|
-
actors?: Collection | string;
|
|
17
|
-
events?: Collection | string;
|
|
18
|
-
queue?: Collection | string;
|
|
19
|
-
};
|
|
20
|
-
export type AIDB = {
|
|
21
|
-
client: MongoClient;
|
|
22
|
-
db: Db;
|
|
23
|
-
cache: Collection;
|
|
24
|
-
cacheTTL: number;
|
|
25
|
-
actors: Collection;
|
|
26
|
-
events: Collection;
|
|
27
|
-
queue: Collection;
|
|
28
|
-
log: (prompt: ChatCompletionCreateParamsNonStreaming, completion: ChatCompletion) => Promise<InsertOneResult<any>>;
|
|
29
|
-
send: (input: QueueInput | QueueInput[]) => Promise<InsertOneResult<any>>;
|
|
30
|
-
};
|
|
31
|
-
export declare const AIDB: (args: AIDBConfig | MongoClient) => AIDB;
|
package/dist/mjs/db/mongo.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
export let client;
|
|
2
|
-
export let db;
|
|
3
|
-
export let cache;
|
|
4
|
-
export let cacheTTL;
|
|
5
|
-
export let events;
|
|
6
|
-
export let queue;
|
|
7
|
-
export let actors;
|
|
8
|
-
export const AIDB = (args) => {
|
|
9
|
-
const config = args.client ? args : { client: args };
|
|
10
|
-
client = config.client;
|
|
11
|
-
db = typeof config.db === 'string' ? client.db(config.db) : config.db ?? client.db();
|
|
12
|
-
cache = typeof config.cache === 'string' ? db.collection(config.cache) : config.cache ?? db.collection('ai-cache');
|
|
13
|
-
cacheTTL = config.cacheTTL ?? 1000 * 60 * 60 * 24 * 30;
|
|
14
|
-
events =
|
|
15
|
-
typeof config.events === 'string' ? db.collection(config.events) : config.events ?? db.collection('ai-events');
|
|
16
|
-
// queue = typeof config.queue === 'string' ? db.collection(config.queue) : config.queue ?? db.collection('ai-queue')
|
|
17
|
-
// actors = typeof config.queue === 'string' ? db.collection(config.queue) : config.queue ?? db.collection('ai-actors')
|
|
18
|
-
return { client, db, cache, actors, events, queue, log }; // , send } as AIDB
|
|
19
|
-
};
|
|
20
|
-
// const send = (input: QueueInput | QueueInput[]) =>
|
|
21
|
-
// Array.isArray(input) ? queue.insertMany(input) : queue.insertOne(input)
|
|
22
|
-
const log = (prompt, completion) => {
|
|
23
|
-
const system = prompt.messages.find((message) => message.role === 'system')?.content;
|
|
24
|
-
const userMessages = prompt.messages.filter((message) => message.role === 'user').map((message) => message.content);
|
|
25
|
-
const user = userMessages.length === 1 ? userMessages[0] : userMessages;
|
|
26
|
-
const content = completion.choices?.[0].message.content;
|
|
27
|
-
const tool = completion.choices?.[0].message.tool_calls?.[0].function;
|
|
28
|
-
let functionData;
|
|
29
|
-
try {
|
|
30
|
-
if (tool)
|
|
31
|
-
functionData = JSON.parse(tool.arguments);
|
|
32
|
-
}
|
|
33
|
-
catch (err) {
|
|
34
|
-
functionData = tool?.arguments;
|
|
35
|
-
}
|
|
36
|
-
const timestamp = new Date();
|
|
37
|
-
const event = {
|
|
38
|
-
timestamp,
|
|
39
|
-
user,
|
|
40
|
-
system,
|
|
41
|
-
content,
|
|
42
|
-
functionName: tool?.name,
|
|
43
|
-
functionData,
|
|
44
|
-
prompt,
|
|
45
|
-
completion,
|
|
46
|
-
};
|
|
47
|
-
return events.insertOne(event, { ignoreUndefined: true });
|
|
48
|
-
};
|