@cloudbase/ai 2.8.20-beta.0 → 2.8.22-beta.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/dist/cjs/AI.d.ts +27 -0
- package/dist/cjs/AI.js +154 -0
- package/dist/cjs/index.d.ts +13 -38
- package/dist/cjs/index.js +9 -73
- package/dist/cjs/models/Ark/index.d.ts +4 -18
- package/dist/cjs/models/Ark/index.js +45 -82
- package/dist/cjs/models/Ark/type.d.ts +52 -19
- package/dist/cjs/models/Ark/type.js +1 -1
- package/dist/cjs/models/DashScope/index.d.ts +4 -18
- package/dist/cjs/models/DashScope/index.js +45 -82
- package/dist/cjs/models/DashScope/type.d.ts +55 -24
- package/dist/cjs/models/DashScope/type.js +1 -1
- package/dist/cjs/models/HunYuan/index.d.ts +4 -19
- package/dist/cjs/models/HunYuan/index.js +47 -107
- package/dist/cjs/models/HunYuan/type.d.ts +68 -48
- package/dist/cjs/models/HunYuan/type.js +1 -1
- package/dist/cjs/models/HunYuan/util.d.ts +4 -0
- package/dist/cjs/models/HunYuan/util.js +58 -0
- package/dist/cjs/models/HunYuanBeta/index.d.ts +4 -19
- package/dist/cjs/models/HunYuanBeta/index.js +42 -110
- package/dist/cjs/models/Moonshot/index.d.ts +4 -18
- package/dist/cjs/models/Moonshot/index.js +45 -82
- package/dist/cjs/models/Moonshot/type.d.ts +63 -9
- package/dist/cjs/models/Moonshot/type.js +1 -1
- package/dist/cjs/models/Yi/index.d.ts +4 -18
- package/dist/cjs/models/Yi/index.js +48 -82
- package/dist/cjs/models/Yi/type.d.ts +41 -15
- package/dist/cjs/models/Yi/type.js +1 -1
- package/dist/cjs/models/ZhiPu/index.d.ts +4 -18
- package/dist/cjs/models/ZhiPu/index.js +59 -87
- package/dist/cjs/models/ZhiPu/type.d.ts +19 -19
- package/dist/cjs/models/ZhiPu/type.js +1 -1
- package/dist/cjs/models/index.d.ts +16 -15
- package/dist/cjs/models/index.js +26 -23
- package/dist/cjs/models/model.d.ts +38 -0
- package/dist/cjs/models/model.js +481 -0
- package/dist/cjs/type.d.ts +76 -15
- package/dist/cjs/type.js +6 -12
- package/dist/cjs/utils.d.ts +9 -1
- package/dist/cjs/utils.js +46 -2
- package/dist/esm/AI.d.ts +27 -0
- package/dist/esm/AI.js +128 -0
- package/dist/esm/index.d.ts +13 -38
- package/dist/esm/index.js +4 -70
- package/dist/esm/models/Ark/index.d.ts +4 -18
- package/dist/esm/models/Ark/index.js +45 -82
- package/dist/esm/models/Ark/type.d.ts +52 -19
- package/dist/esm/models/Ark/type.js +1 -1
- package/dist/esm/models/DashScope/index.d.ts +4 -18
- package/dist/esm/models/DashScope/index.js +45 -82
- package/dist/esm/models/DashScope/type.d.ts +55 -24
- package/dist/esm/models/DashScope/type.js +1 -1
- package/dist/esm/models/HunYuan/index.d.ts +4 -19
- package/dist/esm/models/HunYuan/index.js +47 -107
- package/dist/esm/models/HunYuan/type.d.ts +68 -48
- package/dist/esm/models/HunYuan/type.js +1 -1
- package/dist/esm/models/HunYuan/util.d.ts +4 -0
- package/dist/esm/models/HunYuan/util.js +53 -0
- package/dist/esm/models/HunYuanBeta/index.d.ts +4 -19
- package/dist/esm/models/HunYuanBeta/index.js +42 -110
- package/dist/esm/models/Moonshot/index.d.ts +4 -18
- package/dist/esm/models/Moonshot/index.js +45 -82
- package/dist/esm/models/Moonshot/type.d.ts +63 -9
- package/dist/esm/models/Moonshot/type.js +1 -1
- package/dist/esm/models/Yi/index.d.ts +4 -18
- package/dist/esm/models/Yi/index.js +48 -82
- package/dist/esm/models/Yi/type.d.ts +41 -15
- package/dist/esm/models/Yi/type.js +1 -1
- package/dist/esm/models/ZhiPu/index.d.ts +4 -18
- package/dist/esm/models/ZhiPu/index.js +59 -87
- package/dist/esm/models/ZhiPu/type.d.ts +19 -19
- package/dist/esm/models/ZhiPu/type.js +1 -1
- package/dist/esm/models/index.d.ts +16 -15
- package/dist/esm/models/index.js +17 -16
- package/dist/esm/models/model.d.ts +38 -0
- package/dist/esm/models/model.js +478 -0
- package/dist/esm/type.d.ts +76 -15
- package/dist/esm/type.js +5 -11
- package/dist/esm/utils.d.ts +9 -1
- package/dist/esm/utils.js +41 -1
- package/package.json +3 -3
- package/src/AI.ts +77 -0
- package/src/index.ts +3 -60
- package/src/models/Ark/index.ts +52 -54
- package/src/models/Ark/type.ts +60 -19
- package/src/models/DashScope/index.ts +56 -55
- package/src/models/DashScope/type.ts +63 -21
- package/src/models/HunYuan/index.ts +44 -67
- package/src/models/HunYuan/type.ts +68 -46
- package/src/models/HunYuan/util.ts +59 -0
- package/src/models/HunYuanBeta/index.ts +41 -75
- package/src/models/Moonshot/index.ts +52 -54
- package/src/models/Moonshot/type.ts +61 -7
- package/src/models/Yi/index.ts +59 -55
- package/src/models/Yi/type.ts +47 -19
- package/src/models/ZhiPu/index.ts +60 -52
- package/src/models/ZhiPu/type.ts +20 -9
- package/src/models/index.ts +25 -15
- package/src/models/model.ts +415 -0
- package/src/type.ts +100 -13
- package/src/utils.ts +53 -1
- package/dist/cjs/models/HunYuanBeta/type.d.ts +0 -52
- package/dist/cjs/models/HunYuanBeta/type.js +0 -3
- package/dist/esm/models/HunYuanBeta/type.d.ts +0 -52
- package/dist/esm/models/HunYuanBeta/type.js +0 -2
- package/src/models/HunYuanBeta/type.ts +0 -61
package/dist/esm/type.js
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
var
|
|
2
|
-
function
|
|
1
|
+
var SimpleChatModel = (function () {
|
|
2
|
+
function SimpleChatModel() {
|
|
3
3
|
}
|
|
4
|
-
return
|
|
4
|
+
return SimpleChatModel;
|
|
5
5
|
}());
|
|
6
|
-
export {
|
|
7
|
-
|
|
8
|
-
function StreamTextResult() {
|
|
9
|
-
}
|
|
10
|
-
return StreamTextResult;
|
|
11
|
-
}());
|
|
12
|
-
export { StreamTextResult };
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0lBQUE7SUFJQSxDQUFDO0lBQUQsZ0JBQUM7QUFBRCxDQUFDLEFBSkQsSUFJQzs7QUFJRDtJQUFBO0lBSUEsQ0FBQztJQUFELHVCQUFDO0FBQUQsQ0FBQyxBQUpELElBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFBhcnNlZEV2ZW50IH0gZnJvbSAnLi9ldmVudHNvdXJjZV9wYXJzZXInXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDaGF0TW9kZWwge1xuICBwdWJsaWMgYWJzdHJhY3QgZ2VuZXJhdGVUZXh0KGRhdGE6IEJhc2VDaGF0TW9kZWxJbnB1dCk6IFByb21pc2U8eyB0ZXh0OiBzdHJpbmc7IHJhd1Jlc3BvbnNlOiBhbnkgfT5cblxuICBwdWJsaWMgYWJzdHJhY3Qgc3RyZWFtVGV4dChkYXRhOiBCYXNlQ2hhdE1vZGVsSW5wdXQpOiBQcm9taXNlPFN0cmVhbVRleHRSZXN1bHQ+XG59XG5cbmV4cG9ydCB0eXBlIENoYXRNb2RlbENvbnN0cnVjdG9yID0gdHlwZW9mIENoYXRNb2RlbFxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RyZWFtVGV4dFJlc3VsdCB7XG4gIHB1YmxpYyBhYnN0cmFjdCBldmVudFNvdXJjZVN0cmVhbTogQXN5bmNJdGVyYWJsZVJlYWRhYmxlU3RyZWFtPFBhcnNlZEV2ZW50PlxuICBwdWJsaWMgYWJzdHJhY3QgZGF0YVN0cmVhbTogQXN5bmNJdGVyYWJsZVJlYWRhYmxlU3RyZWFtPGFueT5cbiAgcHVibGljIGFic3RyYWN0IHRleHRTdHJlYW06IEFzeW5jSXRlcmFibGVSZWFkYWJsZVN0cmVhbTxzdHJpbmc+XG59XG5cbmV4cG9ydCB0eXBlIEFzeW5jSXRlcmFibGVSZWFkYWJsZVN0cmVhbTxUPiA9IFJlYWRhYmxlU3RyZWFtPFQ+ICYge1xuICBbU3ltYm9sLmFzeW5jSXRlcmF0b3JdOiAoKSA9PiB7IG5leHQoKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxUPj4gfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNb2RlbFJlcUlucHV0IHtcbiAgdXJsOiBzdHJpbmdcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgZGF0YT86IE9iamVjdFxuICBzdHJlYW0/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIE1vZGVsUmVxID0gPFQgZXh0ZW5kcyBJTW9kZWxSZXFJbnB1dD4oXG4gIHByb3BzOiBULFxuKSA9PiBUWydzdHJlYW0nXSBleHRlbmRzIHRydWUgPyBQcm9taXNlPFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+PiA6IFByb21pc2U8T2JqZWN0PlxuXG5leHBvcnQgaW50ZXJmYWNlIElCb3RSZXFJbnB1dCB7XG4gIHVybDogc3RyaW5nXG4gIG1ldGhvZDogc3RyaW5nXG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIGRhdGE/OiBPYmplY3RcbiAgc3RyZWFtPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBCb3RSZXEgPSA8VCBleHRlbmRzIElCb3RSZXFJbnB1dD4oXG4gIHByb3BzOiBULFxuKSA9PiBUWydzdHJlYW0nXSBleHRlbmRzIHRydWUgPyBQcm9taXNlPFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+PiA6IFByb21pc2U8T2JqZWN0PlxuXG50eXBlIENoYXRNb2RlbE1lc3NhZ2UgPSB7XG4gIHJvbGU6ICd1c2VyJyB8ICdzeXN0ZW0nIHwgJ2Fzc2lzdGFudCdcbiAgY29udGVudDogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUNoYXRNb2RlbElucHV0IHtcbiAgbW9kZWw6IHN0cmluZ1xuICBtZXNzYWdlczogQXJyYXk8Q2hhdE1vZGVsTWVzc2FnZT5cbiAgdGVtcGVyYXR1cmU/OiBudW1iZXJcbiAgdG9wX3A/OiBudW1iZXJcbn1cbiJdfQ==
|
|
6
|
+
export { SimpleChatModel };
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQUE7SUFJQSxDQUFDO0lBQUQsc0JBQUM7QUFBRCxDQUFDLEFBSkQsSUFJQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTaW1wbGVDaGF0TW9kZWwge1xuICBwdWJsaWMgYWJzdHJhY3QgZG9HZW5lcmF0ZShkYXRhOiBCYXNlQ2hhdE1vZGVsSW5wdXQpOiBQcm9taXNlPERvR2VuZXJhdGVPdXRwdXQ+XG5cbiAgcHVibGljIGFic3RyYWN0IGRvU3RyZWFtKGRhdGE6IEJhc2VDaGF0TW9kZWxJbnB1dCk6IFByb21pc2U8RG9TdHJlYW1PdXRwdXQ+XG59XG5cbnR5cGUgUmF3UmVzcG9uc2UgPSB7IHJhd1Jlc3BvbnNlPzogYW55IH1cblxuZXhwb3J0IHR5cGUgRG9HZW5lcmF0ZU91dHB1dCA9IEJhc2VEb0dlbmVyYXRlT3V0cHV0ICYgUmF3UmVzcG9uc2VcblxuZXhwb3J0IHR5cGUgRG9TdHJlYW1PdXRwdXQgPSBBc3luY0l0ZXJhYmxlUmVhZGFibGVTdHJlYW08QmFzZURvU3RyZWFtT3V0cHV0Q2h1bmsgJiBSYXdSZXNwb25zZT5cblxuZXhwb3J0IHR5cGUgQ2hhdE1vZGVsQ29uc3RydWN0b3IgPSB0eXBlb2YgU2ltcGxlQ2hhdE1vZGVsXG5cbmV4cG9ydCB0eXBlIEFzeW5jSXRlcmFibGVSZWFkYWJsZVN0cmVhbTxUPiA9IFJlYWRhYmxlU3RyZWFtPFQ+ICYge1xuICBbU3ltYm9sLmFzeW5jSXRlcmF0b3JdOiAoKSA9PiB7IG5leHQoKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxUPj4gfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNb2RlbFJlcUlucHV0IHtcbiAgdXJsOiBzdHJpbmdcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgZGF0YT86IE9iamVjdFxuICBzdHJlYW0/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIE1vZGVsUmVxID0gPFQgZXh0ZW5kcyBJTW9kZWxSZXFJbnB1dD4oXG4gIHByb3BzOiBULFxuKSA9PiBUWydzdHJlYW0nXSBleHRlbmRzIHRydWUgPyBQcm9taXNlPFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+PiA6IFByb21pc2U8T2JqZWN0PlxuXG5leHBvcnQgaW50ZXJmYWNlIElCb3RSZXFJbnB1dCB7XG4gIHVybDogc3RyaW5nXG4gIG1ldGhvZDogc3RyaW5nXG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIGRhdGE/OiBPYmplY3RcbiAgc3RyZWFtPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBCb3RSZXEgPSA8VCBleHRlbmRzIElCb3RSZXFJbnB1dD4oXG4gIHByb3BzOiBULFxuKSA9PiBUWydzdHJlYW0nXSBleHRlbmRzIHRydWUgPyBQcm9taXNlPFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+PiA6IFByb21pc2U8T2JqZWN0PlxuXG5leHBvcnQgdHlwZSBVc2VyTWVzc2FnZSA9IHtcbiAgcm9sZTogJ3VzZXInXG4gIGNvbnRlbnQ6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBTeXN0ZW1NZXNzYWdlID0ge1xuICByb2xlOiAnc3lzdGVtJ1xuICBjb250ZW50OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgQXNzaXN0YW50TWVzc2FnZSA9IFBsYWluQXNzaXN0YW50TWVzc2FnZSB8IFRvb2xDYWxsQXNzaXN0YW50TWVzc2FnZVxuXG5leHBvcnQgdHlwZSBQbGFpbkFzc2lzdGFudE1lc3NhZ2UgPSB7XG4gIHJvbGU6ICdhc3Npc3RhbnQnXG4gIGNvbnRlbnQ6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBUb29sQ2FsbEFzc2lzdGFudE1lc3NhZ2UgPSB7XG4gIHJvbGU6ICdhc3Npc3RhbnQnXG4gIHRvb2xfY2FsbHM6IEFycmF5PFRvb2xDYWxsPlxuICBjb250ZW50Pzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFRvb2xNZXNzYWdlID0ge1xuICByb2xlOiAndG9vbCdcbiAgdG9vbF9jYWxsX2lkOiBzdHJpbmdcbiAgY29udGVudDogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIENoYXRNb2RlbE1lc3NhZ2UgPSBVc2VyTWVzc2FnZSB8IFN5c3RlbU1lc3NhZ2UgfCBBc3Npc3RhbnRNZXNzYWdlIHwgVG9vbE1lc3NhZ2VcblxuZXhwb3J0IHR5cGUgRnVuY3Rpb25Ub29sID0ge1xuICBuYW1lOiBzdHJpbmdcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xuICBmbjogQ2FsbGFibGVGdW5jdGlvblxuICBwYXJhbWV0ZXJzOiBvYmplY3Rcbn1cblxuLy8gI3JlZ2lvbiDlpKfmqKHlnovmoIflh4bovpPlhaXnsbvlnotcbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUNoYXRNb2RlbElucHV0IHtcbiAgbW9kZWw6IHN0cmluZ1xuICBtZXNzYWdlczogQXJyYXk8Q2hhdE1vZGVsTWVzc2FnZT5cbiAgdGVtcGVyYXR1cmU/OiBudW1iZXJcbiAgdG9wX3A/OiBudW1iZXJcbiAgdG9vbHM/OiBBcnJheTxNb2RlbFRvb2w+XG4gIHRvb2xfY2hvaWNlPzogJ25vbmUnIHwgJ2F1dG8nIHwgJ2N1c3RvbSdcbn1cblxuLyoqXG4gKiDnu5kgTExNIOWPkeivt+axguaXtuimgeS8oOeahOW3peWFt1xuICovXG5leHBvcnQgdHlwZSBNb2RlbFRvb2wgPSB7XG4gIHR5cGU6IHN0cmluZ1xuICBmdW5jdGlvbj86IE1vZGVsVG9vbEZ1bmN0aW9uXG59XG5cbi8qKlxuICog57uZIExMTSDlj5Hor7fmsYLml7bopoHkvKDnmoTlt6Xlhbflh73mlbBcbiAqL1xuZXhwb3J0IHR5cGUgTW9kZWxUb29sRnVuY3Rpb24gPSB7XG4gIG5hbWU6IHN0cmluZ1xuICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gIC8qKlxuICAgKiDmj4/ov7Dlh73mlbDlj4LmlbDnmoQgSlNPTiBTY2hlbWEg5a2X56ym5LiyXG4gICAqL1xuICBwYXJhbWV0ZXJzOiBzdHJpbmdcbn1cbi8vICNlbmRyZWdpb25cblxuLy8gI3JlZ2lvbiDlpKfmqKHlnovmoIflh4blk43lupTnsbvlnotcbmV4cG9ydCB0eXBlIFRvb2xDYWxsID0ge1xuICBpZDogc3RyaW5nXG4gIHR5cGU6IHN0cmluZ1xuICBmdW5jdGlvbjogeyBuYW1lOiBzdHJpbmc7IGFyZ3VtZW50czogc3RyaW5nIH1cbn1cblxudHlwZSBGaW5pc2hSZWFzb24gPSAndG9vbF9jYWxscycgfCAoc3RyaW5nICYge30pXG5cbmV4cG9ydCB0eXBlIFVzYWdlID0ge1xuICBjb21wbGV0aW9uX3Rva2VuczogbnVtYmVyXG4gIHByb21wdF90b2tlbnM6IG51bWJlclxuICB0b3RhbF90b2tlbnM6IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VEb0dlbmVyYXRlT3V0cHV0IHtcbiAgY2hvaWNlcz86IEFycmF5PHtcbiAgICBmaW5pc2hfcmVhc29uPzogRmluaXNoUmVhc29uXG4gICAgbWVzc2FnZT86IENoYXRNb2RlbE1lc3NhZ2VcbiAgfT5cbiAgdXNhZ2U/OiBVc2FnZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VEb1N0cmVhbU91dHB1dENodW5rIHtcbiAgY2hvaWNlcz86IEFycmF5PHtcbiAgICBmaW5pc2hfcmVhc29uPzogRmluaXNoUmVhc29uXG4gICAgZGVsdGE/OiBDaGF0TW9kZWxNZXNzYWdlXG4gIH0+XG4gIHVzYWdlPzogVXNhZ2Vcbn1cbi8vICNlbmRyZWdpb25cbiJdfQ==
|
package/dist/esm/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ParsedEvent } from './eventsource_parser';
|
|
2
|
-
import type { AsyncIterableReadableStream } from './type';
|
|
2
|
+
import type { AsyncIterableReadableStream, ChatModelMessage, ToolCallAssistantMessage, ModelTool, FunctionTool } from './type';
|
|
3
3
|
export declare const ReadableStream: {
|
|
4
4
|
new (underlyingSource: UnderlyingByteSource, strategy?: {
|
|
5
5
|
highWaterMark?: number;
|
|
@@ -26,3 +26,11 @@ export declare class TextDecoderStream {
|
|
|
26
26
|
get [Symbol.toStringTag](): string;
|
|
27
27
|
}
|
|
28
28
|
export declare function createAsyncIterable<T>(stream: ReadableStream<T>): AsyncIterableReadableStream<T>;
|
|
29
|
+
export declare function intoStandardStream<T>(stream: ReadableStream<Uint8Array>): ReadableStream<T>;
|
|
30
|
+
export declare function createPromise<T = unknown>(): {
|
|
31
|
+
promise: Promise<T>;
|
|
32
|
+
res: (value: T | PromiseLike<T>) => void;
|
|
33
|
+
rej: (reason?: any) => void;
|
|
34
|
+
};
|
|
35
|
+
export declare function isToolCallAssistantMessage(message: ChatModelMessage): message is ToolCallAssistantMessage;
|
|
36
|
+
export declare function functionToolToModelTool(tool: FunctionTool): ModelTool;
|
package/dist/esm/utils.js
CHANGED
|
@@ -145,4 +145,44 @@ export function createAsyncIterable(stream) {
|
|
|
145
145
|
};
|
|
146
146
|
return _stream;
|
|
147
147
|
}
|
|
148
|
-
|
|
148
|
+
export function intoStandardStream(stream) {
|
|
149
|
+
return createAsyncIterable(stream
|
|
150
|
+
.pipeThrough(new TextDecoderStream())
|
|
151
|
+
.pipeThrough(createEventSourceParserTransformStream())
|
|
152
|
+
.pipeThrough(new TransformStream({
|
|
153
|
+
transform: function (chunk, controller) {
|
|
154
|
+
try {
|
|
155
|
+
var data = JSON.parse(chunk.data);
|
|
156
|
+
controller.enqueue(data);
|
|
157
|
+
}
|
|
158
|
+
catch (e) {
|
|
159
|
+
if (chunk.data !== '[DONE]') {
|
|
160
|
+
console.warn('Error when transforming event source data to json', e);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
})));
|
|
165
|
+
}
|
|
166
|
+
export function createPromise() {
|
|
167
|
+
var res;
|
|
168
|
+
var rej;
|
|
169
|
+
var promise = new Promise(function (resolve, reject) {
|
|
170
|
+
res = resolve;
|
|
171
|
+
rej = reject;
|
|
172
|
+
});
|
|
173
|
+
return { promise: promise, res: res, rej: rej };
|
|
174
|
+
}
|
|
175
|
+
export function isToolCallAssistantMessage(message) {
|
|
176
|
+
return message.role === 'assistant' && 'tool_calls' in message && message.tool_calls[0] != null;
|
|
177
|
+
}
|
|
178
|
+
export function functionToolToModelTool(tool) {
|
|
179
|
+
return {
|
|
180
|
+
type: 'function',
|
|
181
|
+
function: {
|
|
182
|
+
description: tool.description,
|
|
183
|
+
name: tool.name,
|
|
184
|
+
parameters: JSON.stringify(tool.parameters),
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLGVBQWUsSUFBSSxnQkFBZ0IsRUFBRSxjQUFjLElBQUksZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDN0csT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBNEMsTUFBTSxzQkFBc0IsQ0FBQTtBQVE3RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFaEQsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHLGVBVzdCLENBQUE7QUFFRCxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUcsZ0JBUTlCLENBQUE7QUFFRCxNQUFNLENBQUMsSUFBTSxzQ0FBc0MsR0FBRztJQUNwRCxJQUFJLE1BQTBCLENBQUE7SUFFOUIsT0FBTyxJQUFJLGVBQWUsQ0FBc0I7UUFDOUMsS0FBSyxZQUFDLFVBQVU7WUFDZCxNQUFNLEdBQUcsWUFBWSxDQUFDLFVBQUMsS0FBSztnQkFDMUIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtvQkFDMUIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtpQkFDMUI7WUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFDRCxTQUFTLFlBQUMsS0FBSztZQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDcEIsQ0FBQztLQUNGLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLDJCQUEyQixDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRTdFO0lBcUJFLDJCQUFZLFFBQWtCLEVBQUUsT0FBZ0M7UUFBcEQseUJBQUEsRUFBQSxr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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybVN0cmVhbSBhcyBfVHJhbnNmb3JtU3RyZWFtLCBSZWFkYWJsZVN0cmVhbSBhcyBfUmVhZGFibGVTdHJlYW0gfSBmcm9tICd3ZWItc3RyZWFtcy1wb2x5ZmlsbCdcbmltcG9ydCB7IGNyZWF0ZVJlYWRhYmxlU3RyZWFtV3JhcHBlciB9IGZyb20gJ0BtYXR0aWFzYnVlbGVucy93ZWItc3RyZWFtcy1hZGFwdGVyJ1xuaW1wb3J0IHsgY3JlYXRlUGFyc2VyLCB0eXBlIEV2ZW50U291cmNlUGFyc2VyLCB0eXBlIFBhcnNlZEV2ZW50IH0gZnJvbSAnLi9ldmVudHNvdXJjZV9wYXJzZXInXG5pbXBvcnQgdHlwZSB7XG4gIEFzeW5jSXRlcmFibGVSZWFkYWJsZVN0cmVhbSxcbiAgQ2hhdE1vZGVsTWVzc2FnZSxcbiAgVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlLFxuICBNb2RlbFRvb2wsXG4gIEZ1bmN0aW9uVG9vbCxcbn0gZnJvbSAnLi90eXBlJ1xuaW1wb3J0IHsgVGV4dERlY29kZXIgfSBmcm9tICd0ZXh0LWVuY29kaW5nLXNoaW0nXG5cbmV4cG9ydCBjb25zdCBSZWFkYWJsZVN0cmVhbSA9IF9SZWFkYWJsZVN0cmVhbSBhcyB7XG4gIHByb3RvdHlwZTogUmVhZGFibGVTdHJlYW1cblxuICBuZXcgKFxuICAgIHVuZGVybHlpbmdTb3VyY2U6IFVuZGVybHlpbmdCeXRlU291cmNlLFxuICAgIHN0cmF0ZWd5Pzoge1xuICAgICAgaGlnaFdhdGVyTWFyaz86IG51bWJlclxuICAgIH0sXG4gICk6IFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+XG4gIG5ldyA8UiA9IGFueT4odW5kZXJseWluZ1NvdXJjZTogVW5kZXJseWluZ0RlZmF1bHRTb3VyY2U8Uj4sIHN0cmF0ZWd5PzogUXVldWluZ1N0cmF0ZWd5PFI+KTogUmVhZGFibGVTdHJlYW08Uj5cbiAgbmV3IDxSID0gYW55Pih1bmRlcmx5aW5nU291cmNlPzogVW5kZXJseWluZ1NvdXJjZTxSPiwgc3RyYXRlZ3k/OiBRdWV1aW5nU3RyYXRlZ3k8Uj4pOiBSZWFkYWJsZVN0cmVhbTxSPlxufVxuXG5leHBvcnQgY29uc3QgVHJhbnNmb3JtU3RyZWFtID0gX1RyYW5zZm9ybVN0cmVhbSBhcyB7XG4gIHByb3RvdHlwZTogVHJhbnNmb3JtU3RyZWFtXG5cbiAgbmV3IDxJID0gYW55LCBPID0gYW55PihcbiAgICB0cmFuc2Zvcm1lcj86IFRyYW5zZm9ybWVyPEksIE8+LFxuICAgIHdyaXRhYmxlU3RyYXRlZ3k/OiBRdWV1aW5nU3RyYXRlZ3k8ST4sXG4gICAgcmVhZGFibGVTdHJhdGVneT86IFF1ZXVpbmdTdHJhdGVneTxPPixcbiAgKTogVHJhbnNmb3JtU3RyZWFtPEksIE8+XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVFdmVudFNvdXJjZVBhcnNlclRyYW5zZm9ybVN0cmVhbSA9ICgpID0+IHtcbiAgbGV0IHBhcnNlciE6IEV2ZW50U291cmNlUGFyc2VyXG5cbiAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW08c3RyaW5nLCBQYXJzZWRFdmVudD4oe1xuICAgIHN0YXJ0KGNvbnRyb2xsZXIpIHtcbiAgICAgIHBhcnNlciA9IGNyZWF0ZVBhcnNlcigoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdldmVudCcpIHtcbiAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZXZlbnQpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSxcbiAgICB0cmFuc2Zvcm0oY2h1bmspIHtcbiAgICAgIHBhcnNlci5mZWVkKGNodW5rKVxuICAgIH0sXG4gIH0pXG59XG5cbmV4cG9ydCBjb25zdCB0b1BvbHlmaWxsUmVhZGFibGUgPSBjcmVhdGVSZWFkYWJsZVN0cmVhbVdyYXBwZXIoUmVhZGFibGVTdHJlYW0pXG5cbmV4cG9ydCBjbGFzcyBUZXh0RGVjb2RlclN0cmVhbSB7XG4gIHByaXZhdGUgaGFuZGxlOiBUZXh0RGVjb2RlclxuXG4gIHByaXZhdGUgdHJhbnNmb3JtID0gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgdHJhbnNmb3JtOiAoY2h1bmssIGNvbnRyb2xsZXIpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5oYW5kbGUuZGVjb2RlKG5ldyBVaW50OEFycmF5KGNodW5rKSwgeyBzdHJlYW06IHRydWUgfSlcblxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSlcbiAgICAgIH1cbiAgICB9LFxuICAgIGZsdXNoOiAoY29udHJvbGxlcikgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmhhbmRsZS5kZWNvZGUoKVxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSlcbiAgICAgIH1cblxuICAgICAgY29udHJvbGxlci50ZXJtaW5hdGUoKVxuICAgIH0sXG4gIH0pXG5cbiAgY29uc3RydWN0b3IoZW5jb2RpbmcgPSAndXRmLTgnLCBvcHRpb25zOiBUZXh0RGVjb2Rlck9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuaGFuZGxlID0gbmV3IFRleHREZWNvZGVyKGVuY29kaW5nLCBvcHRpb25zKVxuICB9XG5cbiAgZ2V0IGVuY29kaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZS5lbmNvZGluZ1xuICB9XG5cbiAgZ2V0IGZhdGFsKCkge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZS5mYXRhbFxuICB9XG5cbiAgZ2V0IGlnbm9yZUJPTSgpIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGUuaWdub3JlQk9NXG4gIH1cblxuICBnZXQgcmVhZGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtLnJlYWRhYmxlXG4gIH1cblxuICBnZXQgd3JpdGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtLndyaXRhYmxlXG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdUZXh0RGVjb2RlclN0cmVhbSdcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXN5bmNJdGVyYWJsZTxUPihzdHJlYW06IFJlYWRhYmxlU3RyZWFtPFQ+KSB7XG4gIGNvbnN0IF9zdHJlYW0gPSBzdHJlYW0gYXMgQXN5bmNJdGVyYWJsZVJlYWRhYmxlU3RyZWFtPFQ+XG4gIF9zdHJlYW1bU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gKCkgPT4ge1xuICAgIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKVxuICAgIHJldHVybiB7XG4gICAgICBhc3luYyBuZXh0KCk6IFByb21pc2U8SXRlcmF0b3JSZXN1bHQ8VD4+IHtcbiAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKVxuICAgICAgICByZXR1cm4gZG9uZSA/IHsgZG9uZTogdHJ1ZSwgdmFsdWU6IHVuZGVmaW5lZCB9IDogeyBkb25lOiBmYWxzZSwgdmFsdWUgfVxuICAgICAgfSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIF9zdHJlYW1cbn1cblxuLyoqXG4gKiDlsIYgU1NFIOS6jOi/m+WItua1gei9rOaNouS4uiBUIOexu+Wei+eahOa1gVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW50b1N0YW5kYXJkU3RyZWFtPFQ+KHN0cmVhbTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4pOiBSZWFkYWJsZVN0cmVhbTxUPiB7XG4gIHJldHVybiBjcmVhdGVBc3luY0l0ZXJhYmxlKHN0cmVhbVxuICAgIC5waXBlVGhyb3VnaChuZXcgVGV4dERlY29kZXJTdHJlYW0oKSlcbiAgICAucGlwZVRocm91Z2goY3JlYXRlRXZlbnRTb3VyY2VQYXJzZXJUcmFuc2Zvcm1TdHJlYW0oKSlcbiAgICAucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbTxQYXJzZWRFdmVudCwgVD4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoY2h1bmsuZGF0YSkgYXMgVFxuICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShkYXRhKVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGNodW5rLmRhdGEgIT09ICdbRE9ORV0nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0Vycm9yIHdoZW4gdHJhbnNmb3JtaW5nIGV2ZW50IHNvdXJjZSBkYXRhIHRvIGpzb24nLCBlKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KSwpLClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb21pc2U8VCA9IHVua25vd24+KCkge1xuICBsZXQgcmVzOiAodmFsdWU6IFQgfCBQcm9taXNlTGlrZTxUPikgPT4gdm9pZFxuICBsZXQgcmVqOiAocmVhc29uPzogYW55KSA9PiB2b2lkXG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxUPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgcmVzID0gcmVzb2x2ZVxuICAgIHJlaiA9IHJlamVjdFxuICB9KVxuICByZXR1cm4geyBwcm9taXNlLCByZXMsIHJlaiB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Rvb2xDYWxsQXNzaXN0YW50TWVzc2FnZShtZXNzYWdlOiBDaGF0TW9kZWxNZXNzYWdlKTogbWVzc2FnZSBpcyBUb29sQ2FsbEFzc2lzdGFudE1lc3NhZ2Uge1xuICByZXR1cm4gbWVzc2FnZS5yb2xlID09PSAnYXNzaXN0YW50JyAmJiAndG9vbF9jYWxscycgaW4gbWVzc2FnZSAmJiBtZXNzYWdlLnRvb2xfY2FsbHNbMF0gIT0gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZnVuY3Rpb25Ub29sVG9Nb2RlbFRvb2wodG9vbDogRnVuY3Rpb25Ub29sKTogTW9kZWxUb29sIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnZnVuY3Rpb24nLFxuICAgIGZ1bmN0aW9uOiB7XG4gICAgICBkZXNjcmlwdGlvbjogdG9vbC5kZXNjcmlwdGlvbixcbiAgICAgIG5hbWU6IHRvb2wubmFtZSxcbiAgICAgIHBhcmFtZXRlcnM6IEpTT04uc3RyaW5naWZ5KHRvb2wucGFyYW1ldGVycyksXG4gICAgfSxcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudbase/ai",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.22-beta.0",
|
|
4
4
|
"description": "cloudbase js sdk ai module",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"author": "",
|
|
28
28
|
"license": "Apache-2.0",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@cloudbase/types": "^2.8.
|
|
30
|
+
"@cloudbase/types": "^2.8.22-beta.0",
|
|
31
31
|
"@mattiasbuelens/web-streams-adapter": "^0.1.0",
|
|
32
32
|
"text-encoding-shim": "^1.0.5",
|
|
33
33
|
"web-streams-polyfill": "^4.0.0"
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@cloudbase/adapter-interface": "^0.5.0"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "3771e80b46ea5b6f4b138767e94f466b24e1b8f5"
|
|
39
39
|
}
|
package/src/AI.ts
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { SDKRequestInterface } from '@cloudbase/adapter-interface'
|
|
2
|
+
import { Bot } from './bot'
|
|
3
|
+
import * as models from './models'
|
|
4
|
+
import * as types from './type'
|
|
5
|
+
|
|
6
|
+
const { MODELS } = models
|
|
7
|
+
|
|
8
|
+
class AI {
|
|
9
|
+
public aiBaseUrl: string
|
|
10
|
+
public aiBotBaseUrl: string
|
|
11
|
+
public bot: Bot
|
|
12
|
+
|
|
13
|
+
constructor(private req: SDKRequestInterface, public baseUrl: string) {
|
|
14
|
+
this.aiBaseUrl = `${baseUrl}/ai`
|
|
15
|
+
this.aiBotBaseUrl = `${baseUrl}/aibot`
|
|
16
|
+
this.bot = new Bot(this.botRequest, this.aiBotBaseUrl)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
createModel<T extends keyof typeof MODELS>(model: T) {
|
|
20
|
+
const SimpleModelConstructor = MODELS[model]
|
|
21
|
+
const simpleModel: types.SimpleChatModel = new SimpleModelConstructor(this.modelRequest, this.aiBaseUrl)
|
|
22
|
+
const reactModel = new models.ReactModel(simpleModel)
|
|
23
|
+
return reactModel
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
registerModel(name: string, model: types.ChatModelConstructor) {
|
|
27
|
+
if (MODELS[name] != null) {
|
|
28
|
+
console.warn(`AI model ${name} already exists!`)
|
|
29
|
+
return
|
|
30
|
+
}
|
|
31
|
+
MODELS[name] = model
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
modelRequest: types.ModelReq = async ({ url, data, headers, stream }) => (
|
|
35
|
+
await this.req.fetch({
|
|
36
|
+
method: 'post',
|
|
37
|
+
headers: {
|
|
38
|
+
'Content-Type': 'application/json',
|
|
39
|
+
...headers,
|
|
40
|
+
},
|
|
41
|
+
body: JSON.stringify(data),
|
|
42
|
+
url,
|
|
43
|
+
stream,
|
|
44
|
+
})
|
|
45
|
+
).data
|
|
46
|
+
|
|
47
|
+
botRequest: types.BotReq = async ({ method, url, data = {}, headers, stream }) => {
|
|
48
|
+
if (method === 'get') {
|
|
49
|
+
return (await this.req.fetch({ url: `${url}?${objectToParam(data)}`, method, headers, stream })).data
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return (
|
|
53
|
+
await this.req.fetch({
|
|
54
|
+
url,
|
|
55
|
+
body: JSON.stringify(data),
|
|
56
|
+
headers: { 'Content-Type': 'application/json', ...headers },
|
|
57
|
+
stream,
|
|
58
|
+
method,
|
|
59
|
+
})
|
|
60
|
+
).data
|
|
61
|
+
|
|
62
|
+
function objectToParam(obj: Object) {
|
|
63
|
+
return Object.entries(obj)
|
|
64
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
65
|
+
.join('&')
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
registerFunctionTool(functionTool: types.FunctionTool) {
|
|
70
|
+
if (models.toolMap.has(functionTool.name)) {
|
|
71
|
+
console.warn(`AI function tool ${functionTool.name} already exists and will be overwritten!`)
|
|
72
|
+
}
|
|
73
|
+
models.toolMap.set(functionTool.name, functionTool.fn)
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export { AI }
|
package/src/index.ts
CHANGED
|
@@ -1,73 +1,15 @@
|
|
|
1
1
|
import type { IFetchOptions, SDKRequestInterface } from '@cloudbase/adapter-interface'
|
|
2
2
|
import type { ICloudbase } from '@cloudbase/types'
|
|
3
3
|
import type { ICloudbaseComponent } from '@cloudbase/types/component'
|
|
4
|
+
import { AI } from './AI'
|
|
4
5
|
import { Bot } from './bot'
|
|
5
6
|
import * as models from './models'
|
|
6
|
-
import * as types from './type'
|
|
7
7
|
import * as utils from './utils'
|
|
8
8
|
|
|
9
9
|
const COMPONENT_NAME = 'ai'
|
|
10
10
|
|
|
11
11
|
const { MODELS, ...restModels } = models
|
|
12
12
|
|
|
13
|
-
class AI {
|
|
14
|
-
public aiBaseUrl: string
|
|
15
|
-
public aiBotBaseUrl: string
|
|
16
|
-
public bot: Bot
|
|
17
|
-
|
|
18
|
-
constructor(private req: SDKRequestInterface, public baseUrl: string) {
|
|
19
|
-
this.aiBaseUrl = `${baseUrl}/ai`
|
|
20
|
-
this.aiBotBaseUrl = `${baseUrl}/aibot`
|
|
21
|
-
this.bot = new Bot(this.botRequest, this.aiBotBaseUrl)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
createModel<T extends keyof typeof MODELS>(model: T) {
|
|
25
|
-
return new MODELS[model](this.modelRequest, this.aiBaseUrl) as InstanceType<(typeof MODELS)[T]>
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
registerModel(name: string, model: types.ChatModelConstructor) {
|
|
29
|
-
if (MODELS[name] != null) {
|
|
30
|
-
console.warn(`AI model ${name} already exists!`)
|
|
31
|
-
return
|
|
32
|
-
}
|
|
33
|
-
MODELS[name] = model
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
modelRequest: types.ModelReq = async ({ url, data, headers, stream }) => (
|
|
37
|
-
await this.req.fetch({
|
|
38
|
-
method: 'post',
|
|
39
|
-
headers: {
|
|
40
|
-
...headers,
|
|
41
|
-
},
|
|
42
|
-
body: JSON.stringify(data),
|
|
43
|
-
url,
|
|
44
|
-
stream,
|
|
45
|
-
})
|
|
46
|
-
).data
|
|
47
|
-
|
|
48
|
-
botRequest: types.BotReq = async ({ method, url, data = {}, headers, stream }) => {
|
|
49
|
-
if (method === 'get') {
|
|
50
|
-
return (await this.req.fetch({ url: `${url}?${objectToParam(data)}`, method, headers, stream })).data
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return (
|
|
54
|
-
await this.req.fetch({
|
|
55
|
-
url,
|
|
56
|
-
body: JSON.stringify(data),
|
|
57
|
-
headers: { 'Content-Type': 'application/json', ...headers },
|
|
58
|
-
stream,
|
|
59
|
-
method,
|
|
60
|
-
})
|
|
61
|
-
).data
|
|
62
|
-
|
|
63
|
-
function objectToParam(obj: Object) {
|
|
64
|
-
return Object.entries(obj)
|
|
65
|
-
.map(([key, value]) => `${key}=${value}`)
|
|
66
|
-
.join('&')
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
13
|
interface IHandleRequestInstance {
|
|
72
14
|
req: SDKRequestInterface
|
|
73
15
|
}
|
|
@@ -198,4 +140,5 @@ function registerAi(app: ICloudbase) {
|
|
|
198
140
|
}
|
|
199
141
|
}
|
|
200
142
|
|
|
201
|
-
export { AI, Bot, createAi, restModels as models, registerAi,
|
|
143
|
+
export { AI, Bot, createAi, restModels as models, registerAi, utils }
|
|
144
|
+
export * from './type'
|
package/src/models/Ark/index.ts
CHANGED
|
@@ -1,15 +1,37 @@
|
|
|
1
|
-
import { type ParsedEvent } from '../../eventsource_parser'
|
|
2
1
|
import {
|
|
3
2
|
createAsyncIterable,
|
|
4
3
|
TransformStream,
|
|
5
|
-
TextDecoderStream,
|
|
6
|
-
createEventSourceParserTransformStream,
|
|
7
4
|
toPolyfillReadable,
|
|
5
|
+
intoStandardStream,
|
|
6
|
+
isToolCallAssistantMessage,
|
|
8
7
|
} from '../../utils'
|
|
9
|
-
import type {
|
|
10
|
-
import type {
|
|
8
|
+
import type { ArkGenerateTextOutput, ArkInputData, ArkStreamTextOutput } from './type'
|
|
9
|
+
import type {
|
|
10
|
+
ModelReq,
|
|
11
|
+
BaseChatModelInput,
|
|
12
|
+
SimpleChatModel,
|
|
13
|
+
DoGenerateOutput,
|
|
14
|
+
DoStreamOutput,
|
|
15
|
+
BaseDoStreamOutputChunk,
|
|
16
|
+
} from '../../type'
|
|
11
17
|
|
|
12
|
-
|
|
18
|
+
function processInput(input: BaseChatModelInput): ArkInputData {
|
|
19
|
+
const { messages, model, temperature, tools, top_p } = input
|
|
20
|
+
|
|
21
|
+
return {
|
|
22
|
+
...input,
|
|
23
|
+
messages,
|
|
24
|
+
model,
|
|
25
|
+
tools: tools?.map(tool => ({
|
|
26
|
+
...tool,
|
|
27
|
+
function: { ...tool.function, parameters: JSON.parse(tool.function.parameters) },
|
|
28
|
+
})),
|
|
29
|
+
top_p,
|
|
30
|
+
temperature,
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export class ArkSimpleModel implements SimpleChatModel {
|
|
13
35
|
public subUrl = 'ark/api/v3/chat/completions'
|
|
14
36
|
constructor(private req: ModelReq, public baseUrl: string, subUrl?: string) {
|
|
15
37
|
if (subUrl != null) {
|
|
@@ -21,74 +43,50 @@ export class ArkModel implements ChatModel {
|
|
|
21
43
|
return `${this.baseUrl}/${this.subUrl}`
|
|
22
44
|
}
|
|
23
45
|
|
|
24
|
-
async
|
|
46
|
+
public async doGenerate(data: BaseChatModelInput): Promise<DoGenerateOutput> {
|
|
25
47
|
const res = (await this.req({
|
|
26
48
|
url: this.url,
|
|
27
49
|
data: {
|
|
28
|
-
...data,
|
|
50
|
+
...processInput(data),
|
|
29
51
|
stream: false,
|
|
30
52
|
},
|
|
31
53
|
stream: false,
|
|
32
54
|
})) as ArkGenerateTextOutput
|
|
33
|
-
return {
|
|
34
|
-
text: (res?.choices?.[0]?.message?.content as string) ?? '',
|
|
35
|
-
rawResponse: res,
|
|
36
|
-
}
|
|
55
|
+
return { ...res, rawResponse: res }
|
|
37
56
|
}
|
|
38
57
|
|
|
39
|
-
async
|
|
40
|
-
|
|
58
|
+
public async doStream(data: BaseChatModelInput): Promise<DoStreamOutput> {
|
|
59
|
+
let isToolCall: null | boolean = null
|
|
60
|
+
const _stream = await this.req({
|
|
41
61
|
url: this.url,
|
|
42
62
|
data: {
|
|
43
|
-
...data,
|
|
63
|
+
...processInput(data),
|
|
44
64
|
stream: true,
|
|
45
65
|
},
|
|
46
66
|
stream: true,
|
|
47
67
|
})
|
|
48
|
-
return new ArkModelStreamResult(stream)
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
class ArkModelStreamResult implements StreamTextResult {
|
|
53
|
-
private _eventSourceStream: ReadableStream<ParsedEvent>
|
|
54
|
-
|
|
55
|
-
constructor(_stream: ReadableStream<Uint8Array>) {
|
|
56
68
|
const stream = toPolyfillReadable(_stream) as typeof _stream
|
|
57
|
-
this._eventSourceStream = stream
|
|
58
|
-
.pipeThrough(new TextDecoderStream())
|
|
59
|
-
.pipeThrough(createEventSourceParserTransformStream())
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
private get teeedStream() {
|
|
63
|
-
const [s1, s2] = this._eventSourceStream.tee()
|
|
64
|
-
this._eventSourceStream = s2
|
|
65
|
-
return s1
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
get eventSourceStream() {
|
|
69
|
-
return createAsyncIterable(this.teeedStream)
|
|
70
|
-
}
|
|
71
69
|
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
const arkStream = intoStandardStream<ArkStreamTextOutput>(stream)
|
|
71
|
+
const streamWithRaw = arkStream.pipeThrough(new TransformStream<ArkStreamTextOutput, BaseDoStreamOutputChunk & { rawResponse?: any }>({
|
|
74
72
|
transform(chunk, controller) {
|
|
75
|
-
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
73
|
+
const newChoices = chunk.choices.map((choice) => {
|
|
74
|
+
const message = choice.delta
|
|
75
|
+
if (isToolCall == null) isToolCall = isToolCallAssistantMessage(message)
|
|
76
|
+
if (isToolCall) {
|
|
77
|
+
return {
|
|
78
|
+
...choice,
|
|
79
|
+
finish_reason: 'tool_calls' as const,
|
|
80
|
+
delta: message,
|
|
81
|
+
}
|
|
81
82
|
}
|
|
82
|
-
|
|
83
|
+
return choice
|
|
84
|
+
})
|
|
85
|
+
const newChunk = { ...chunk, choices: newChoices }
|
|
86
|
+
controller.enqueue({ ...newChunk, rawResponse: chunk })
|
|
83
87
|
},
|
|
84
|
-
}),)
|
|
85
|
-
}
|
|
88
|
+
}),)
|
|
86
89
|
|
|
87
|
-
|
|
88
|
-
return createAsyncIterable(this.dataStream.pipeThrough(new TransformStream<ArkStreamTextOutput, string>({
|
|
89
|
-
transform(chunk, controller) {
|
|
90
|
-
controller.enqueue(chunk?.choices?.[0]?.message?.content ?? '')
|
|
91
|
-
},
|
|
92
|
-
}),),)
|
|
90
|
+
return createAsyncIterable(streamWithRaw)
|
|
93
91
|
}
|
|
94
92
|
}
|
package/src/models/Ark/type.ts
CHANGED
|
@@ -1,18 +1,41 @@
|
|
|
1
|
-
type
|
|
2
|
-
role: 'user'
|
|
3
|
-
content:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
type UserMessage = {
|
|
2
|
+
role: 'user'
|
|
3
|
+
content: string
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
type SystemMessage = {
|
|
7
|
+
role: 'system'
|
|
8
|
+
content: string
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
type ToolMessage = {
|
|
12
|
+
role: 'tool'
|
|
13
|
+
content: string
|
|
14
|
+
tool_call_id: string
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
type AssistantMessage =
|
|
18
|
+
| {
|
|
19
|
+
role: 'assistant'
|
|
20
|
+
content: string
|
|
21
|
+
}
|
|
22
|
+
| {
|
|
23
|
+
role: 'assistant'
|
|
24
|
+
tool_calls: Array<ToolCall>
|
|
25
|
+
content?: string
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
type ToolCall = {
|
|
29
|
+
id: string
|
|
30
|
+
type: string
|
|
31
|
+
function: {
|
|
32
|
+
name: string
|
|
33
|
+
arguments: string
|
|
34
|
+
}
|
|
13
35
|
}
|
|
14
36
|
|
|
15
|
-
|
|
37
|
+
type ArkMessage = UserMessage | SystemMessage | AssistantMessage | ToolMessage
|
|
38
|
+
|
|
16
39
|
export type ArkInputData = {
|
|
17
40
|
model: string
|
|
18
41
|
messages: Array<ArkMessage>
|
|
@@ -21,21 +44,39 @@ export type ArkInputData = {
|
|
|
21
44
|
frequency_penalty?: number
|
|
22
45
|
temperature?: number
|
|
23
46
|
top_p?: number
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
47
|
+
tools?: Array<Tool>
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
type Tool = {
|
|
51
|
+
type: string
|
|
52
|
+
function: {
|
|
53
|
+
name: string
|
|
54
|
+
description?: string
|
|
55
|
+
parameters?: object
|
|
56
|
+
}
|
|
27
57
|
}
|
|
28
58
|
|
|
29
|
-
// todo: more precise
|
|
30
59
|
export type ArkGenerateTextOutput = {
|
|
31
60
|
choices?: Array<{
|
|
32
|
-
|
|
61
|
+
finish_reason: string
|
|
62
|
+
message?: AssistantMessage
|
|
33
63
|
}>
|
|
64
|
+
usage?: {
|
|
65
|
+
prompt_tokens: number
|
|
66
|
+
completion_tokens: number
|
|
67
|
+
total_tokens: number
|
|
68
|
+
}
|
|
34
69
|
}
|
|
35
70
|
|
|
36
71
|
// todo: more precise
|
|
37
72
|
export type ArkStreamTextOutput = {
|
|
38
73
|
choices?: Array<{
|
|
39
|
-
|
|
74
|
+
finish_reason: string
|
|
75
|
+
delta: AssistantMessage
|
|
40
76
|
}>
|
|
77
|
+
usage?: {
|
|
78
|
+
prompt_tokens: number
|
|
79
|
+
completion_tokens: number
|
|
80
|
+
total_tokens: number
|
|
81
|
+
}
|
|
41
82
|
}
|