ai-functions 0.2.10 → 0.2.13
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/db/mongo.ts +3 -3
- package/dist/cjs/db/cache.d.ts +1 -0
- package/dist/cjs/db/cache.js +12 -0
- package/dist/cjs/db/mongo.d.ts +31 -0
- package/dist/cjs/db/mongo.js +47 -0
- package/dist/cjs/examples/data.d.ts +1105 -0
- package/dist/cjs/examples/data.js +1108 -0
- package/dist/cjs/functions/ai.d.ts +18 -0
- package/dist/cjs/functions/ai.js +99 -0
- package/dist/cjs/functions/ai.test.d.ts +1 -0
- package/dist/cjs/functions/ai.test.js +40 -0
- package/dist/cjs/functions/gpt.d.ts +4 -0
- package/dist/cjs/functions/gpt.js +24 -0
- package/dist/cjs/functions/list.d.ts +7 -0
- package/dist/cjs/functions/list.js +134 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.js +19 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/queue/kafka.d.ts +0 -0
- package/dist/cjs/queue/kafka.js +1 -0
- package/dist/cjs/queue/memory.d.ts +0 -0
- package/dist/cjs/queue/memory.js +1 -0
- package/dist/cjs/queue/mongo.d.ts +30 -0
- package/dist/cjs/queue/mongo.js +69 -0
- package/dist/cjs/streams/kafka.d.ts +0 -0
- package/dist/cjs/streams/kafka.js +1 -0
- package/dist/cjs/streams/memory.d.ts +0 -0
- package/dist/cjs/streams/memory.js +1 -0
- package/dist/cjs/streams/mongo.d.ts +0 -0
- package/dist/cjs/streams/mongo.js +1 -0
- package/dist/cjs/streams/types.d.ts +0 -0
- package/dist/cjs/streams/types.js +1 -0
- package/dist/cjs/types.d.ts +11 -0
- package/dist/cjs/types.js +2 -0
- package/dist/cjs/utils/completion.d.ts +9 -0
- package/dist/cjs/utils/completion.js +45 -0
- package/dist/cjs/utils/schema.d.ts +10 -0
- package/dist/cjs/utils/schema.js +64 -0
- package/dist/cjs/utils/schema.test.d.ts +1 -0
- package/dist/cjs/utils/schema.test.js +62 -0
- package/dist/cjs/utils/state.d.ts +1 -0
- package/dist/cjs/utils/state.js +21 -0
- package/dist/mjs/db/cache.d.ts +1 -0
- package/dist/mjs/db/cache.js +5 -0
- package/dist/mjs/db/mongo.d.ts +31 -0
- package/dist/mjs/db/mongo.js +48 -0
- package/dist/mjs/examples/data.d.ts +1105 -0
- package/dist/mjs/examples/data.js +1105 -0
- package/dist/mjs/functions/ai.d.ts +18 -0
- package/dist/mjs/functions/ai.js +79 -0
- package/dist/mjs/functions/ai.test.d.ts +1 -0
- package/dist/mjs/functions/ai.test.js +29 -0
- package/dist/mjs/functions/gpt.d.ts +4 -0
- package/dist/mjs/functions/gpt.js +10 -0
- package/dist/mjs/functions/list.d.ts +7 -0
- package/dist/mjs/functions/list.js +72 -0
- package/dist/mjs/index.d.ts +3 -0
- package/dist/mjs/index.js +3 -0
- package/dist/mjs/package.json +3 -0
- package/dist/mjs/queue/kafka.d.ts +0 -0
- package/dist/mjs/queue/kafka.js +1 -0
- package/dist/mjs/queue/memory.d.ts +0 -0
- package/dist/mjs/queue/memory.js +1 -0
- package/dist/mjs/queue/mongo.d.ts +30 -0
- package/dist/mjs/queue/mongo.js +42 -0
- package/dist/mjs/streams/kafka.d.ts +0 -0
- package/dist/mjs/streams/kafka.js +1 -0
- package/dist/mjs/streams/memory.d.ts +0 -0
- package/dist/mjs/streams/memory.js +1 -0
- package/dist/mjs/streams/mongo.d.ts +0 -0
- package/dist/mjs/streams/mongo.js +1 -0
- package/dist/mjs/streams/types.d.ts +0 -0
- package/dist/mjs/streams/types.js +1 -0
- package/dist/mjs/types.d.ts +11 -0
- package/dist/mjs/types.js +1 -0
- package/dist/mjs/utils/completion.d.ts +9 -0
- package/dist/mjs/utils/completion.js +20 -0
- package/dist/mjs/utils/schema.d.ts +10 -0
- package/dist/mjs/utils/schema.js +59 -0
- package/dist/mjs/utils/schema.test.d.ts +1 -0
- package/dist/mjs/utils/schema.test.js +60 -0
- package/dist/mjs/utils/state.d.ts +1 -0
- package/dist/mjs/utils/state.js +19 -0
- package/fixup +11 -0
- package/functions/ai.ts +1 -1
- package/functions/list.ts +1 -1
- package/package.json +10 -3
- package/tsconfig-backup.json +105 -0
- package/tsconfig-base.json +26 -0
- package/tsconfig-cjs.json +8 -0
- package/tsconfig.json +5 -102
- package/types.ts +1 -1
- package/utils/completion.ts +1 -1
package/db/mongo.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MongoClient, Db, Collection, InsertOneResult, BSON } from 'mongodb'
|
|
2
|
-
import type { ChatCompletion, ChatCompletionCreateParamsNonStreaming } from 'openai/resources
|
|
2
|
+
import type { ChatCompletion, ChatCompletionCreateParamsNonStreaming } from 'openai/resources'
|
|
3
3
|
import { QueueInput } from '../queue/mongo'
|
|
4
4
|
|
|
5
5
|
export let client: MongoClient
|
|
@@ -49,8 +49,8 @@ export const AIDB = (args: AIDBConfig | MongoClient) => {
|
|
|
49
49
|
// Array.isArray(input) ? queue.insertMany(input) : queue.insertOne(input)
|
|
50
50
|
|
|
51
51
|
const log = (prompt: ChatCompletionCreateParamsNonStreaming, completion: ChatCompletion) => {
|
|
52
|
-
const system = prompt.messages.find((message) => message.role === 'system')?.content
|
|
53
|
-
const userMessages = prompt.messages.filter((message) => message.role === 'user').map((message) => message.content)
|
|
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
54
|
const user = userMessages.length === 1 ? userMessages[0] : userMessages
|
|
55
55
|
const content = completion.choices?.[0].message.content
|
|
56
56
|
const tool = completion.choices?.[0].message.tool_calls?.[0].function
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const md5: (data: string | object) => string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.md5 = void 0;
|
|
7
|
+
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
8
|
+
const md5 = (data) => {
|
|
9
|
+
const input = typeof data === 'string' ? data : JSON.stringify(data);
|
|
10
|
+
return node_crypto_1.default.createHash('md5').update(input).digest('hex');
|
|
11
|
+
};
|
|
12
|
+
exports.md5 = md5;
|
|
@@ -0,0 +1,31 @@
|
|
|
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;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AIDB = exports.actors = exports.queue = exports.events = exports.cacheTTL = exports.cache = exports.db = exports.client = void 0;
|
|
4
|
+
const AIDB = (args) => {
|
|
5
|
+
var _a, _b, _c, _d;
|
|
6
|
+
const config = args.client ? args : { client: args };
|
|
7
|
+
exports.client = config.client;
|
|
8
|
+
exports.db = typeof config.db === 'string' ? exports.client.db(config.db) : (_a = config.db) !== null && _a !== void 0 ? _a : exports.client.db();
|
|
9
|
+
exports.cache = typeof config.cache === 'string' ? exports.db.collection(config.cache) : (_b = config.cache) !== null && _b !== void 0 ? _b : exports.db.collection('ai-cache');
|
|
10
|
+
exports.cacheTTL = (_c = config.cacheTTL) !== null && _c !== void 0 ? _c : 1000 * 60 * 60 * 24 * 30;
|
|
11
|
+
exports.events =
|
|
12
|
+
typeof config.events === 'string' ? exports.db.collection(config.events) : (_d = config.events) !== null && _d !== void 0 ? _d : exports.db.collection('ai-events');
|
|
13
|
+
// queue = typeof config.queue === 'string' ? db.collection(config.queue) : config.queue ?? db.collection('ai-queue')
|
|
14
|
+
// actors = typeof config.queue === 'string' ? db.collection(config.queue) : config.queue ?? db.collection('ai-actors')
|
|
15
|
+
return { client: exports.client, db: exports.db, cache: exports.cache, actors: exports.actors, events: exports.events, queue: exports.queue, log }; // , send } as AIDB
|
|
16
|
+
};
|
|
17
|
+
exports.AIDB = AIDB;
|
|
18
|
+
// const send = (input: QueueInput | QueueInput[]) =>
|
|
19
|
+
// Array.isArray(input) ? queue.insertMany(input) : queue.insertOne(input)
|
|
20
|
+
const log = (prompt, completion) => {
|
|
21
|
+
var _a, _b, _c, _d;
|
|
22
|
+
const system = (_a = prompt.messages.find((message) => message.role === 'system')) === null || _a === void 0 ? void 0 : _a.content;
|
|
23
|
+
const userMessages = prompt.messages.filter((message) => message.role === 'user').map((message) => message.content);
|
|
24
|
+
const user = userMessages.length === 1 ? userMessages[0] : userMessages;
|
|
25
|
+
const content = (_b = completion.choices) === null || _b === void 0 ? void 0 : _b[0].message.content;
|
|
26
|
+
const tool = (_d = (_c = completion.choices) === null || _c === void 0 ? void 0 : _c[0].message.tool_calls) === null || _d === void 0 ? void 0 : _d[0].function;
|
|
27
|
+
let functionData;
|
|
28
|
+
try {
|
|
29
|
+
if (tool)
|
|
30
|
+
functionData = JSON.parse(tool.arguments);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
functionData = tool === null || tool === void 0 ? void 0 : tool.arguments;
|
|
34
|
+
}
|
|
35
|
+
const timestamp = new Date();
|
|
36
|
+
const event = {
|
|
37
|
+
timestamp,
|
|
38
|
+
user,
|
|
39
|
+
system,
|
|
40
|
+
content,
|
|
41
|
+
functionName: tool === null || tool === void 0 ? void 0 : tool.name,
|
|
42
|
+
functionData,
|
|
43
|
+
prompt,
|
|
44
|
+
completion,
|
|
45
|
+
};
|
|
46
|
+
return exports.events.insertOne(event, { ignoreUndefined: true });
|
|
47
|
+
};
|