@cloudbase/ai 2.8.35 → 2.9.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 CHANGED
@@ -12,6 +12,7 @@ declare const MODELS: {
12
12
  zhipu: typeof models.ZhiPuSimpleModel;
13
13
  'hunyuan-exp': typeof models.HunYuanExpSimpleModel;
14
14
  'hunyuan-open': typeof models.HunYuanOpenSimpleModel;
15
+ deepseek: typeof import("./models/DeepSeek").DeepSeekSimpleModel;
15
16
  };
16
17
  declare class AI {
17
18
  private req;
@@ -0,0 +1,10 @@
1
+ import type { ModelReq, BaseChatModelInput, SimpleChatModel, DoStreamOutput, DoGenerateOutput } from '../../type';
2
+ export declare class DeepSeekSimpleModel implements SimpleChatModel {
3
+ private req;
4
+ baseUrl: string;
5
+ subUrl: string;
6
+ constructor(req: ModelReq, baseUrl: string, subUrl?: string);
7
+ private get url();
8
+ doGenerate(data: BaseChatModelInput): Promise<DoGenerateOutput>;
9
+ doStream(data: BaseChatModelInput): Promise<DoStreamOutput>;
10
+ }
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.DeepSeekSimpleModel = void 0;
51
+ var utils_1 = require("../../utils");
52
+ var DeepSeekSimpleModel = (function () {
53
+ function DeepSeekSimpleModel(req, baseUrl, subUrl) {
54
+ this.req = req;
55
+ this.baseUrl = baseUrl;
56
+ this.subUrl = 'deepseek/v1/chat/completions';
57
+ if (subUrl != null) {
58
+ this.subUrl = subUrl;
59
+ }
60
+ }
61
+ Object.defineProperty(DeepSeekSimpleModel.prototype, "url", {
62
+ get: function () {
63
+ return "".concat(this.baseUrl, "/").concat(this.subUrl);
64
+ },
65
+ enumerable: false,
66
+ configurable: true
67
+ });
68
+ DeepSeekSimpleModel.prototype.doGenerate = function (data) {
69
+ return __awaiter(this, void 0, void 0, function () {
70
+ var res;
71
+ return __generator(this, function (_a) {
72
+ switch (_a.label) {
73
+ case 0: return [4, this.req({
74
+ url: this.url,
75
+ data: __assign(__assign({}, data), { stream: false }),
76
+ stream: false,
77
+ })];
78
+ case 1:
79
+ res = (_a.sent());
80
+ return [2, __assign(__assign({}, res), { rawResponse: res })];
81
+ }
82
+ });
83
+ });
84
+ };
85
+ DeepSeekSimpleModel.prototype.doStream = function (data) {
86
+ return __awaiter(this, void 0, void 0, function () {
87
+ var isToolCall, _stream, stream, standardStream, streamWithRaw;
88
+ return __generator(this, function (_a) {
89
+ switch (_a.label) {
90
+ case 0:
91
+ isToolCall = null;
92
+ return [4, this.req({
93
+ url: this.url,
94
+ data: __assign(__assign({}, data), { stream: true }),
95
+ stream: true,
96
+ })];
97
+ case 1:
98
+ _stream = _a.sent();
99
+ stream = (0, utils_1.toPolyfillReadable)(_stream);
100
+ standardStream = (0, utils_1.intoStandardStream)(stream);
101
+ streamWithRaw = standardStream.pipeThrough(new utils_1.TransformStream({
102
+ transform: function (chunk, controller) {
103
+ var newChoices = chunk.choices.map(function (choice) {
104
+ var message = choice.delta;
105
+ if (isToolCall == null)
106
+ isToolCall = (0, utils_1.isToolCallAssistantMessage)(message);
107
+ if (isToolCall) {
108
+ return __assign(__assign({}, choice), { finish_reason: 'tool_calls', delta: message });
109
+ }
110
+ return choice;
111
+ });
112
+ var newChunk = __assign(__assign({}, chunk), { choices: newChoices });
113
+ controller.enqueue(__assign(__assign({}, newChunk), { rawResponse: chunk }));
114
+ },
115
+ }));
116
+ return [2, (0, utils_1.createAsyncIterable)(streamWithRaw)];
117
+ }
118
+ });
119
+ });
120
+ };
121
+ return DeepSeekSimpleModel;
122
+ }());
123
+ exports.DeepSeekSimpleModel = DeepSeekSimpleModel;
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWxzL0RlZXBTZWVrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBTW9CO0FBVXBCO0lBRUUsNkJBQW9CLEdBQWEsRUFBUyxPQUFlLEVBQUUsTUFBZTtRQUF0RCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQURsRCxXQUFNLEdBQUcsOEJBQThCLENBQUE7UUFFNUMsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELHNCQUFZLG9DQUFHO2FBQWY7WUFDRSxPQUFPLFVBQUcsSUFBSSxDQUFDLE9BQU8sY0FBSSxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUE7UUFDekMsQ0FBQzs7O09BQUE7SUFFWSx3Q0FBVSxHQUF2QixVQUF3QixJQUF3Qjs7Ozs7NEJBQ2pDLFdBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQzs0QkFDMUIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHOzRCQUNiLElBQUksd0JBQ0MsSUFBSSxLQUNQLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7NEJBQ0QsTUFBTSxFQUFFLEtBQUs7eUJBQ2QsQ0FBQyxFQUFBOzt3QkFQSSxHQUFHLEdBQUcsQ0FBQyxTQU9YLENBQXFCO3dCQUN2QixpQ0FBWSxHQUFHLEtBQUUsV0FBVyxFQUFFLEdBQUcsS0FBRTs7OztLQUNwQztJQUVZLHNDQUFRLEdBQXJCLFVBQXNCLElBQXdCOzs7Ozs7d0JBQ3hDLFVBQVUsR0FBbUIsSUFBSSxDQUFBO3dCQUNyQixXQUFNLElBQUksQ0FBQyxHQUFHLENBQUM7Z0NBQzdCLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztnQ0FDYixJQUFJLHdCQUNDLElBQUksS0FDUCxNQUFNLEVBQUUsSUFBSSxHQUNiO2dDQUNELE1BQU0sRUFBRSxJQUFJOzZCQUNiLENBQUMsRUFBQTs7d0JBUEksT0FBTyxHQUFHLFNBT2Q7d0JBQ0ksTUFBTSxHQUFHLElBQUEsMEJBQWtCLEVBQUMsT0FBTyxDQUFtQixDQUFBO3dCQUV0RCxjQUFjLEdBQUcsSUFBQSwwQkFBa0IsRUFBMEIsTUFBTSxDQUFDLENBQUE7d0JBQ3BFLGFBQWEsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksdUJBQWUsQ0FBMkU7NEJBQzdJLFNBQVMsWUFBQyxLQUFLLEVBQUUsVUFBVTtnQ0FDekIsSUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQyxNQUFNO29DQUMxQyxJQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFBO29DQUM1QixJQUFJLFVBQVUsSUFBSSxJQUFJO3dDQUFFLFVBQVUsR0FBRyxJQUFBLGtDQUEwQixFQUFDLE9BQU8sQ0FBQyxDQUFBO29DQUN4RSxJQUFJLFVBQVUsRUFBRTt3Q0FDZCw2QkFDSyxNQUFNLEtBQ1QsYUFBYSxFQUFFLFlBQXFCLEVBQ3BDLEtBQUssRUFBRSxPQUFPLElBQ2Y7cUNBQ0Y7b0NBQ0QsT0FBTyxNQUFNLENBQUE7Z0NBQ2YsQ0FBQyxDQUFDLENBQUE7Z0NBQ0YsSUFBTSxRQUFRLHlCQUFRLEtBQUssS0FBRSxPQUFPLEVBQUUsVUFBVSxHQUFFLENBQUE7Z0NBQ2xELFVBQVUsQ0FBQyxPQUFPLHVCQUFNLFFBQVEsS0FBRSxXQUFXLEVBQUUsS0FBSyxJQUFHLENBQUE7NEJBQ3pELENBQUM7eUJBQ0YsQ0FBQyxDQUFFLENBQUE7d0JBRUosV0FBTyxJQUFBLDJCQUFtQixFQUFDLGFBQWEsQ0FBQyxFQUFBOzs7O0tBQzFDO0lBQ0gsMEJBQUM7QUFBRCxDQUFDLEFBMURELElBMERDO0FBMURZLGtEQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUFzeW5jSXRlcmFibGUsXG4gIFRyYW5zZm9ybVN0cmVhbSxcbiAgdG9Qb2x5ZmlsbFJlYWRhYmxlLFxuICBpbnRvU3RhbmRhcmRTdHJlYW0sXG4gIGlzVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB0eXBlIHtcbiAgTW9kZWxSZXEsXG4gIEJhc2VDaGF0TW9kZWxJbnB1dCxcbiAgU2ltcGxlQ2hhdE1vZGVsLFxuICBEb1N0cmVhbU91dHB1dCxcbiAgQmFzZURvU3RyZWFtT3V0cHV0Q2h1bmssXG4gIERvR2VuZXJhdGVPdXRwdXQsXG59IGZyb20gJy4uLy4uL3R5cGUnXG5cbmV4cG9ydCBjbGFzcyBEZWVwU2Vla1NpbXBsZU1vZGVsIGltcGxlbWVudHMgU2ltcGxlQ2hhdE1vZGVsIHtcbiAgcHVibGljIHN1YlVybCA9ICdkZWVwc2Vlay92MS9jaGF0L2NvbXBsZXRpb25zJ1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcTogTW9kZWxSZXEsIHB1YmxpYyBiYXNlVXJsOiBzdHJpbmcsIHN1YlVybD86IHN0cmluZykge1xuICAgIGlmIChzdWJVcmwgIT0gbnVsbCkge1xuICAgICAgdGhpcy5zdWJVcmwgPSBzdWJVcmxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldCB1cmwoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYmFzZVVybH0vJHt0aGlzLnN1YlVybH1gXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG9HZW5lcmF0ZShkYXRhOiBCYXNlQ2hhdE1vZGVsSW5wdXQpOiBQcm9taXNlPERvR2VuZXJhdGVPdXRwdXQ+IHtcbiAgICBjb25zdCByZXMgPSAoYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgc3RyZWFtOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBzdHJlYW06IGZhbHNlLFxuICAgIH0pKSBhcyBEb0dlbmVyYXRlT3V0cHV0XG4gICAgcmV0dXJuIHsgLi4ucmVzLCByYXdSZXNwb25zZTogcmVzIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb1N0cmVhbShkYXRhOiBCYXNlQ2hhdE1vZGVsSW5wdXQpOiBQcm9taXNlPERvU3RyZWFtT3V0cHV0PiB7XG4gICAgbGV0IGlzVG9vbENhbGw6IG51bGwgfCBib29sZWFuID0gbnVsbFxuICAgIGNvbnN0IF9zdHJlYW0gPSBhd2FpdCB0aGlzLnJlcSh7XG4gICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgZGF0YToge1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICBzdHJlYW06IHRydWUsXG4gICAgICB9LFxuICAgICAgc3RyZWFtOiB0cnVlLFxuICAgIH0pXG4gICAgY29uc3Qgc3RyZWFtID0gdG9Qb2x5ZmlsbFJlYWRhYmxlKF9zdHJlYW0pIGFzIHR5cGVvZiBfc3RyZWFtXG5cbiAgICBjb25zdCBzdGFuZGFyZFN0cmVhbSA9IGludG9TdGFuZGFyZFN0cmVhbTxCYXNlRG9TdHJlYW1PdXRwdXRDaHVuaz4oc3RyZWFtKVxuICAgIGNvbnN0IHN0cmVhbVdpdGhSYXcgPSBzdGFuZGFyZFN0cmVhbS5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtPEJhc2VEb1N0cmVhbU91dHB1dENodW5rLCBCYXNlRG9TdHJlYW1PdXRwdXRDaHVuayAmIHsgcmF3UmVzcG9uc2U/OiBhbnkgfT4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIGNvbnN0IG5ld0Nob2ljZXMgPSBjaHVuay5jaG9pY2VzLm1hcCgoY2hvaWNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGNob2ljZS5kZWx0YVxuICAgICAgICAgIGlmIChpc1Rvb2xDYWxsID09IG51bGwpIGlzVG9vbENhbGwgPSBpc1Rvb2xDYWxsQXNzaXN0YW50TWVzc2FnZShtZXNzYWdlKVxuICAgICAgICAgIGlmIChpc1Rvb2xDYWxsKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5jaG9pY2UsXG4gICAgICAgICAgICAgIGZpbmlzaF9yZWFzb246ICd0b29sX2NhbGxzJyBhcyBjb25zdCxcbiAgICAgICAgICAgICAgZGVsdGE6IG1lc3NhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjaG9pY2VcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgbmV3Q2h1bmsgPSB7IC4uLmNodW5rLCBjaG9pY2VzOiBuZXdDaG9pY2VzIH1cbiAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKHsgLi4ubmV3Q2h1bmssIHJhd1Jlc3BvbnNlOiBjaHVuayB9KVxuICAgICAgfSxcbiAgICB9KSwpXG5cbiAgICByZXR1cm4gY3JlYXRlQXN5bmNJdGVyYWJsZShzdHJlYW1XaXRoUmF3KVxuICB9XG59XG4iXX0=
@@ -7,6 +7,7 @@ import { YiSimpleModel } from './Yi/index';
7
7
  import { MoonshotSimpleModel } from './Moonshot/index';
8
8
  import { HunYuanExpSimpleModel } from './HunYuanExp/index';
9
9
  import { HunYuanOpenSimpleModel } from './HunYuanOpen/index';
10
+ import { DeepSeekSimpleModel } from './DeepSeek';
10
11
  export declare const MODELS: {
11
12
  hunyuan: typeof HunYuanSimpleModel;
12
13
  'hunyuan-beta': typeof HunYuanBetaSimpleModel;
@@ -17,6 +18,7 @@ export declare const MODELS: {
17
18
  zhipu: typeof ZhiPuSimpleModel;
18
19
  'hunyuan-exp': typeof HunYuanExpSimpleModel;
19
20
  'hunyuan-open': typeof HunYuanOpenSimpleModel;
21
+ deepseek: typeof DeepSeekSimpleModel;
20
22
  };
21
23
  export { ZhiPuSimpleModel, HunYuanBetaSimpleModel, HunYuanSimpleModel, ArkSimpleModel, DSSimpleModel, YiSimpleModel, MoonshotSimpleModel, HunYuanExpSimpleModel, HunYuanOpenSimpleModel, };
22
24
  export { ReactModel, toolMap } from './model';
@@ -19,6 +19,7 @@ var index_8 = require("./HunYuanExp/index");
19
19
  Object.defineProperty(exports, "HunYuanExpSimpleModel", { enumerable: true, get: function () { return index_8.HunYuanExpSimpleModel; } });
20
20
  var index_9 = require("./HunYuanOpen/index");
21
21
  Object.defineProperty(exports, "HunYuanOpenSimpleModel", { enumerable: true, get: function () { return index_9.HunYuanOpenSimpleModel; } });
22
+ var DeepSeek_1 = require("./DeepSeek");
22
23
  exports.MODELS = {
23
24
  hunyuan: index_3.HunYuanSimpleModel,
24
25
  'hunyuan-beta': index_2.HunYuanBetaSimpleModel,
@@ -29,8 +30,9 @@ exports.MODELS = {
29
30
  zhipu: index_1.ZhiPuSimpleModel,
30
31
  'hunyuan-exp': index_8.HunYuanExpSimpleModel,
31
32
  'hunyuan-open': index_9.HunYuanOpenSimpleModel,
33
+ deepseek: DeepSeek_1.DeepSeekSimpleModel,
32
34
  };
33
35
  var model_1 = require("./model");
34
36
  Object.defineProperty(exports, "ReactModel", { enumerable: true, get: function () { return model_1.ReactModel; } });
35
37
  Object.defineProperty(exports, "toolMap", { enumerable: true, get: function () { return model_1.toolMap; } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUFnRDtBQXVCOUMsaUdBdkJPLHdCQUFnQixPQXVCUDtBQXRCbEIsNkNBQTREO0FBdUIxRCx1R0F2Qk8sOEJBQXNCLE9BdUJQO0FBdEJ4Qix5Q0FBb0Q7QUF1QmxELG1HQXZCTywwQkFBa0IsT0F1QlA7QUF0QnBCLHFDQUE0QztBQXVCMUMsK0ZBdkJPLHNCQUFjLE9BdUJQO0FBdEJoQiwyQ0FBaUQ7QUF1Qi9DLDhGQXZCTyxxQkFBYSxPQXVCUDtBQXRCZixvQ0FBMEM7QUF1QnhDLDhGQXZCTyxxQkFBYSxPQXVCUDtBQXRCZiwwQ0FBc0Q7QUF1QnBELG9HQXZCTywyQkFBbUIsT0F1QlA7QUF0QnJCLDRDQUEwRDtBQXVCeEQsc0dBdkJPLDZCQUFxQixPQXVCUDtBQXRCdkIsNkNBQTREO0FBdUIxRCx1R0F2Qk8sOEJBQXNCLE9BdUJQO0FBckJYLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLE9BQU8sRUFBRSwwQkFBa0I7SUFDM0IsY0FBYyxFQUFFLDhCQUFzQjtJQUN0QyxHQUFHLEVBQUUsc0JBQWM7SUFDbkIsU0FBUyxFQUFFLHFCQUFhO0lBQ3hCLE9BQU8sRUFBRSxxQkFBYTtJQUN0QixRQUFRLEVBQUUsMkJBQW1CO0lBQzdCLEtBQUssRUFBRSx3QkFBZ0I7SUFDdkIsYUFBYSxFQUFFLDZCQUFxQjtJQUNwQyxjQUFjLEVBQUUsOEJBQXNCO0NBQ3ZDLENBQUE7QUFjRCxpQ0FBNkM7QUFBcEMsbUdBQUEsVUFBVSxPQUFBO0FBQUUsZ0dBQUEsT0FBTyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWmhpUHVTaW1wbGVNb2RlbCB9IGZyb20gJy4vWmhpUHUvaW5kZXgnXG5pbXBvcnQgeyBIdW5ZdWFuQmV0YVNpbXBsZU1vZGVsIH0gZnJvbSAnLi9IdW5ZdWFuQmV0YS9pbmRleCdcbmltcG9ydCB7IEh1bll1YW5TaW1wbGVNb2RlbCB9IGZyb20gJy4vSHVuWXVhbi9pbmRleCdcbmltcG9ydCB7IEFya1NpbXBsZU1vZGVsIH0gZnJvbSAnLi9BcmsvaW5kZXgnXG5pbXBvcnQgeyBEU1NpbXBsZU1vZGVsIH0gZnJvbSAnLi9EYXNoU2NvcGUvaW5kZXgnXG5pbXBvcnQgeyBZaVNpbXBsZU1vZGVsIH0gZnJvbSAnLi9ZaS9pbmRleCdcbmltcG9ydCB7IE1vb25zaG90U2ltcGxlTW9kZWwgfSBmcm9tICcuL01vb25zaG90L2luZGV4J1xuaW1wb3J0IHsgSHVuWXVhbkV4cFNpbXBsZU1vZGVsIH0gZnJvbSAnLi9IdW5ZdWFuRXhwL2luZGV4J1xuaW1wb3J0IHsgSHVuWXVhbk9wZW5TaW1wbGVNb2RlbCB9IGZyb20gJy4vSHVuWXVhbk9wZW4vaW5kZXgnXG5cbmV4cG9ydCBjb25zdCBNT0RFTFMgPSB7XG4gIGh1bnl1YW46IEh1bll1YW5TaW1wbGVNb2RlbCxcbiAgJ2h1bnl1YW4tYmV0YSc6IEh1bll1YW5CZXRhU2ltcGxlTW9kZWwsXG4gIGFyazogQXJrU2ltcGxlTW9kZWwsXG4gIGRhc2hzY29wZTogRFNTaW1wbGVNb2RlbCxcbiAgJzAxLWFpJzogWWlTaW1wbGVNb2RlbCxcbiAgbW9vbnNob3Q6IE1vb25zaG90U2ltcGxlTW9kZWwsXG4gIHpoaXB1OiBaaGlQdVNpbXBsZU1vZGVsLFxuICAnaHVueXVhbi1leHAnOiBIdW5ZdWFuRXhwU2ltcGxlTW9kZWwsXG4gICdodW55dWFuLW9wZW4nOiBIdW5ZdWFuT3BlblNpbXBsZU1vZGVsLFxufVxuXG5leHBvcnQge1xuICBaaGlQdVNpbXBsZU1vZGVsLFxuICBIdW5ZdWFuQmV0YVNpbXBsZU1vZGVsLFxuICBIdW5ZdWFuU2ltcGxlTW9kZWwsXG4gIEFya1NpbXBsZU1vZGVsLFxuICBEU1NpbXBsZU1vZGVsLFxuICBZaVNpbXBsZU1vZGVsLFxuICBNb29uc2hvdFNpbXBsZU1vZGVsLFxuICBIdW5ZdWFuRXhwU2ltcGxlTW9kZWwsXG4gIEh1bll1YW5PcGVuU2ltcGxlTW9kZWwsXG59XG5cbmV4cG9ydCB7IFJlYWN0TW9kZWwsIHRvb2xNYXAgfSBmcm9tICcuL21vZGVsJ1xuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUFnRDtBQXlCOUMsaUdBekJPLHdCQUFnQixPQXlCUDtBQXhCbEIsNkNBQTREO0FBeUIxRCx1R0F6Qk8sOEJBQXNCLE9BeUJQO0FBeEJ4Qix5Q0FBb0Q7QUF5QmxELG1HQXpCTywwQkFBa0IsT0F5QlA7QUF4QnBCLHFDQUE0QztBQXlCMUMsK0ZBekJPLHNCQUFjLE9BeUJQO0FBeEJoQiwyQ0FBaUQ7QUF5Qi9DLDhGQXpCTyxxQkFBYSxPQXlCUDtBQXhCZixvQ0FBMEM7QUF5QnhDLDhGQXpCTyxxQkFBYSxPQXlCUDtBQXhCZiwwQ0FBc0Q7QUF5QnBELG9HQXpCTywyQkFBbUIsT0F5QlA7QUF4QnJCLDRDQUEwRDtBQXlCeEQsc0dBekJPLDZCQUFxQixPQXlCUDtBQXhCdkIsNkNBQTREO0FBeUIxRCx1R0F6Qk8sOEJBQXNCLE9BeUJQO0FBeEJ4Qix1Q0FBZ0Q7QUFFbkMsUUFBQSxNQUFNLEdBQUc7SUFDcEIsT0FBTyxFQUFFLDBCQUFrQjtJQUMzQixjQUFjLEVBQUUsOEJBQXNCO0lBQ3RDLEdBQUcsRUFBRSxzQkFBYztJQUNuQixTQUFTLEVBQUUscUJBQWE7SUFDeEIsT0FBTyxFQUFFLHFCQUFhO0lBQ3RCLFFBQVEsRUFBRSwyQkFBbUI7SUFDN0IsS0FBSyxFQUFFLHdCQUFnQjtJQUN2QixhQUFhLEVBQUUsNkJBQXFCO0lBQ3BDLGNBQWMsRUFBRSw4QkFBc0I7SUFDdEMsUUFBUSxFQUFFLDhCQUFtQjtDQUM5QixDQUFBO0FBY0QsaUNBQTZDO0FBQXBDLG1HQUFBLFVBQVUsT0FBQTtBQUFFLGdHQUFBLE9BQU8sT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFpoaVB1U2ltcGxlTW9kZWwgfSBmcm9tICcuL1poaVB1L2luZGV4J1xuaW1wb3J0IHsgSHVuWXVhbkJldGFTaW1wbGVNb2RlbCB9IGZyb20gJy4vSHVuWXVhbkJldGEvaW5kZXgnXG5pbXBvcnQgeyBIdW5ZdWFuU2ltcGxlTW9kZWwgfSBmcm9tICcuL0h1bll1YW4vaW5kZXgnXG5pbXBvcnQgeyBBcmtTaW1wbGVNb2RlbCB9IGZyb20gJy4vQXJrL2luZGV4J1xuaW1wb3J0IHsgRFNTaW1wbGVNb2RlbCB9IGZyb20gJy4vRGFzaFNjb3BlL2luZGV4J1xuaW1wb3J0IHsgWWlTaW1wbGVNb2RlbCB9IGZyb20gJy4vWWkvaW5kZXgnXG5pbXBvcnQgeyBNb29uc2hvdFNpbXBsZU1vZGVsIH0gZnJvbSAnLi9Nb29uc2hvdC9pbmRleCdcbmltcG9ydCB7IEh1bll1YW5FeHBTaW1wbGVNb2RlbCB9IGZyb20gJy4vSHVuWXVhbkV4cC9pbmRleCdcbmltcG9ydCB7IEh1bll1YW5PcGVuU2ltcGxlTW9kZWwgfSBmcm9tICcuL0h1bll1YW5PcGVuL2luZGV4J1xuaW1wb3J0IHsgRGVlcFNlZWtTaW1wbGVNb2RlbCB9IGZyb20gJy4vRGVlcFNlZWsnXG5cbmV4cG9ydCBjb25zdCBNT0RFTFMgPSB7XG4gIGh1bnl1YW46IEh1bll1YW5TaW1wbGVNb2RlbCxcbiAgJ2h1bnl1YW4tYmV0YSc6IEh1bll1YW5CZXRhU2ltcGxlTW9kZWwsXG4gIGFyazogQXJrU2ltcGxlTW9kZWwsXG4gIGRhc2hzY29wZTogRFNTaW1wbGVNb2RlbCxcbiAgJzAxLWFpJzogWWlTaW1wbGVNb2RlbCxcbiAgbW9vbnNob3Q6IE1vb25zaG90U2ltcGxlTW9kZWwsXG4gIHpoaXB1OiBaaGlQdVNpbXBsZU1vZGVsLFxuICAnaHVueXVhbi1leHAnOiBIdW5ZdWFuRXhwU2ltcGxlTW9kZWwsXG4gICdodW55dWFuLW9wZW4nOiBIdW5ZdWFuT3BlblNpbXBsZU1vZGVsLFxuICBkZWVwc2VlazogRGVlcFNlZWtTaW1wbGVNb2RlbCxcbn1cblxuZXhwb3J0IHtcbiAgWmhpUHVTaW1wbGVNb2RlbCxcbiAgSHVuWXVhbkJldGFTaW1wbGVNb2RlbCxcbiAgSHVuWXVhblNpbXBsZU1vZGVsLFxuICBBcmtTaW1wbGVNb2RlbCxcbiAgRFNTaW1wbGVNb2RlbCxcbiAgWWlTaW1wbGVNb2RlbCxcbiAgTW9vbnNob3RTaW1wbGVNb2RlbCxcbiAgSHVuWXVhbkV4cFNpbXBsZU1vZGVsLFxuICBIdW5ZdWFuT3BlblNpbXBsZU1vZGVsLFxufVxuXG5leHBvcnQgeyBSZWFjdE1vZGVsLCB0b29sTWFwIH0gZnJvbSAnLi9tb2RlbCdcbiJdfQ==
package/dist/esm/AI.d.ts CHANGED
@@ -12,6 +12,7 @@ declare const MODELS: {
12
12
  zhipu: typeof models.ZhiPuSimpleModel;
13
13
  'hunyuan-exp': typeof models.HunYuanExpSimpleModel;
14
14
  'hunyuan-open': typeof models.HunYuanOpenSimpleModel;
15
+ deepseek: typeof import("./models/DeepSeek").DeepSeekSimpleModel;
15
16
  };
16
17
  declare class AI {
17
18
  private req;
@@ -0,0 +1,10 @@
1
+ import type { ModelReq, BaseChatModelInput, SimpleChatModel, DoStreamOutput, DoGenerateOutput } from '../../type';
2
+ export declare class DeepSeekSimpleModel implements SimpleChatModel {
3
+ private req;
4
+ baseUrl: string;
5
+ subUrl: string;
6
+ constructor(req: ModelReq, baseUrl: string, subUrl?: string);
7
+ private get url();
8
+ doGenerate(data: BaseChatModelInput): Promise<DoGenerateOutput>;
9
+ doStream(data: BaseChatModelInput): Promise<DoStreamOutput>;
10
+ }
@@ -0,0 +1,121 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import { createAsyncIterable, TransformStream, toPolyfillReadable, intoStandardStream, isToolCallAssistantMessage, } from '../../utils';
49
+ var DeepSeekSimpleModel = (function () {
50
+ function DeepSeekSimpleModel(req, baseUrl, subUrl) {
51
+ this.req = req;
52
+ this.baseUrl = baseUrl;
53
+ this.subUrl = 'deepseek/v1/chat/completions';
54
+ if (subUrl != null) {
55
+ this.subUrl = subUrl;
56
+ }
57
+ }
58
+ Object.defineProperty(DeepSeekSimpleModel.prototype, "url", {
59
+ get: function () {
60
+ return "".concat(this.baseUrl, "/").concat(this.subUrl);
61
+ },
62
+ enumerable: false,
63
+ configurable: true
64
+ });
65
+ DeepSeekSimpleModel.prototype.doGenerate = function (data) {
66
+ return __awaiter(this, void 0, void 0, function () {
67
+ var res;
68
+ return __generator(this, function (_a) {
69
+ switch (_a.label) {
70
+ case 0: return [4, this.req({
71
+ url: this.url,
72
+ data: __assign(__assign({}, data), { stream: false }),
73
+ stream: false,
74
+ })];
75
+ case 1:
76
+ res = (_a.sent());
77
+ return [2, __assign(__assign({}, res), { rawResponse: res })];
78
+ }
79
+ });
80
+ });
81
+ };
82
+ DeepSeekSimpleModel.prototype.doStream = function (data) {
83
+ return __awaiter(this, void 0, void 0, function () {
84
+ var isToolCall, _stream, stream, standardStream, streamWithRaw;
85
+ return __generator(this, function (_a) {
86
+ switch (_a.label) {
87
+ case 0:
88
+ isToolCall = null;
89
+ return [4, this.req({
90
+ url: this.url,
91
+ data: __assign(__assign({}, data), { stream: true }),
92
+ stream: true,
93
+ })];
94
+ case 1:
95
+ _stream = _a.sent();
96
+ stream = toPolyfillReadable(_stream);
97
+ standardStream = intoStandardStream(stream);
98
+ streamWithRaw = standardStream.pipeThrough(new TransformStream({
99
+ transform: function (chunk, controller) {
100
+ var newChoices = chunk.choices.map(function (choice) {
101
+ var message = choice.delta;
102
+ if (isToolCall == null)
103
+ isToolCall = isToolCallAssistantMessage(message);
104
+ if (isToolCall) {
105
+ return __assign(__assign({}, choice), { finish_reason: 'tool_calls', delta: message });
106
+ }
107
+ return choice;
108
+ });
109
+ var newChunk = __assign(__assign({}, chunk), { choices: newChoices });
110
+ controller.enqueue(__assign(__assign({}, newChunk), { rawResponse: chunk }));
111
+ },
112
+ }));
113
+ return [2, createAsyncIterable(streamWithRaw)];
114
+ }
115
+ });
116
+ });
117
+ };
118
+ return DeepSeekSimpleModel;
119
+ }());
120
+ export { DeepSeekSimpleModel };
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWxzL0RlZXBTZWVrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQiwwQkFBMEIsR0FDM0IsTUFBTSxhQUFhLENBQUE7QUFVcEI7SUFFRSw2QkFBb0IsR0FBYSxFQUFTLE9BQWUsRUFBRSxNQUFlO1FBQXRELFFBQUcsR0FBSCxHQUFHLENBQVU7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBRGxELFdBQU0sR0FBRyw4QkFBOEIsQ0FBQTtRQUU1QyxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7U0FDckI7SUFDSCxDQUFDO0lBRUQsc0JBQVksb0NBQUc7YUFBZjtZQUNFLE9BQU8sVUFBRyxJQUFJLENBQUMsT0FBTyxjQUFJLElBQUksQ0FBQyxNQUFNLENBQUUsQ0FBQTtRQUN6QyxDQUFDOzs7T0FBQTtJQUVZLHdDQUFVLEdBQXZCLFVBQXdCLElBQXdCOzs7Ozs0QkFDakMsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDOzRCQUMxQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7NEJBQ2IsSUFBSSx3QkFDQyxJQUFJLEtBQ1AsTUFBTSxFQUFFLEtBQUssR0FDZDs0QkFDRCxNQUFNLEVBQUUsS0FBSzt5QkFDZCxDQUFDLEVBQUE7O3dCQVBJLEdBQUcsR0FBRyxDQUFDLFNBT1gsQ0FBcUI7d0JBQ3ZCLGlDQUFZLEdBQUcsS0FBRSxXQUFXLEVBQUUsR0FBRyxLQUFFOzs7O0tBQ3BDO0lBRVksc0NBQVEsR0FBckIsVUFBc0IsSUFBd0I7Ozs7Ozt3QkFDeEMsVUFBVSxHQUFtQixJQUFJLENBQUE7d0JBQ3JCLFdBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQztnQ0FDN0IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2dDQUNiLElBQUksd0JBQ0MsSUFBSSxLQUNQLE1BQU0sRUFBRSxJQUFJLEdBQ2I7Z0NBQ0QsTUFBTSxFQUFFLElBQUk7NkJBQ2IsQ0FBQyxFQUFBOzt3QkFQSSxPQUFPLEdBQUcsU0FPZDt3QkFDSSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFtQixDQUFBO3dCQUV0RCxjQUFjLEdBQUcsa0JBQWtCLENBQTBCLE1BQU0sQ0FBQyxDQUFBO3dCQUNwRSxhQUFhLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLGVBQWUsQ0FBMkU7NEJBQzdJLFNBQVMsWUFBQyxLQUFLLEVBQUUsVUFBVTtnQ0FDekIsSUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQyxNQUFNO29DQUMxQyxJQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFBO29DQUM1QixJQUFJLFVBQVUsSUFBSSxJQUFJO3dDQUFFLFVBQVUsR0FBRywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtvQ0FDeEUsSUFBSSxVQUFVLEVBQUU7d0NBQ2QsNkJBQ0ssTUFBTSxLQUNULGFBQWEsRUFBRSxZQUFxQixFQUNwQyxLQUFLLEVBQUUsT0FBTyxJQUNmO3FDQUNGO29DQUNELE9BQU8sTUFBTSxDQUFBO2dDQUNmLENBQUMsQ0FBQyxDQUFBO2dDQUNGLElBQU0sUUFBUSx5QkFBUSxLQUFLLEtBQUUsT0FBTyxFQUFFLFVBQVUsR0FBRSxDQUFBO2dDQUNsRCxVQUFVLENBQUMsT0FBTyx1QkFBTSxRQUFRLEtBQUUsV0FBVyxFQUFFLEtBQUssSUFBRyxDQUFBOzRCQUN6RCxDQUFDO3lCQUNGLENBQUMsQ0FBRSxDQUFBO3dCQUVKLFdBQU8sbUJBQW1CLENBQUMsYUFBYSxDQUFDLEVBQUE7Ozs7S0FDMUM7SUFDSCwwQkFBQztBQUFELENBQUMsQUExREQsSUEwREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjcmVhdGVBc3luY0l0ZXJhYmxlLFxuICBUcmFuc2Zvcm1TdHJlYW0sXG4gIHRvUG9seWZpbGxSZWFkYWJsZSxcbiAgaW50b1N0YW5kYXJkU3RyZWFtLFxuICBpc1Rvb2xDYWxsQXNzaXN0YW50TWVzc2FnZSxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIE1vZGVsUmVxLFxuICBCYXNlQ2hhdE1vZGVsSW5wdXQsXG4gIFNpbXBsZUNoYXRNb2RlbCxcbiAgRG9TdHJlYW1PdXRwdXQsXG4gIEJhc2VEb1N0cmVhbU91dHB1dENodW5rLFxuICBEb0dlbmVyYXRlT3V0cHV0LFxufSBmcm9tICcuLi8uLi90eXBlJ1xuXG5leHBvcnQgY2xhc3MgRGVlcFNlZWtTaW1wbGVNb2RlbCBpbXBsZW1lbnRzIFNpbXBsZUNoYXRNb2RlbCB7XG4gIHB1YmxpYyBzdWJVcmwgPSAnZGVlcHNlZWsvdjEvY2hhdC9jb21wbGV0aW9ucydcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXE6IE1vZGVsUmVxLCBwdWJsaWMgYmFzZVVybDogc3RyaW5nLCBzdWJVcmw/OiBzdHJpbmcpIHtcbiAgICBpZiAoc3ViVXJsICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc3ViVXJsID0gc3ViVXJsXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdXJsKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmJhc2VVcmx9LyR7dGhpcy5zdWJVcmx9YFxuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvR2VuZXJhdGUoZGF0YTogQmFzZUNoYXRNb2RlbElucHV0KTogUHJvbWlzZTxEb0dlbmVyYXRlT3V0cHV0PiB7XG4gICAgY29uc3QgcmVzID0gKGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIHN0cmVhbTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc3RyZWFtOiBmYWxzZSxcbiAgICB9KSkgYXMgRG9HZW5lcmF0ZU91dHB1dFxuICAgIHJldHVybiB7IC4uLnJlcywgcmF3UmVzcG9uc2U6IHJlcyB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG9TdHJlYW0oZGF0YTogQmFzZUNoYXRNb2RlbElucHV0KTogUHJvbWlzZTxEb1N0cmVhbU91dHB1dD4ge1xuICAgIGxldCBpc1Rvb2xDYWxsOiBudWxsIHwgYm9vbGVhbiA9IG51bGxcbiAgICBjb25zdCBfc3RyZWFtID0gYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHN0cmVhbTogdHJ1ZSxcbiAgICB9KVxuICAgIGNvbnN0IHN0cmVhbSA9IHRvUG9seWZpbGxSZWFkYWJsZShfc3RyZWFtKSBhcyB0eXBlb2YgX3N0cmVhbVxuXG4gICAgY29uc3Qgc3RhbmRhcmRTdHJlYW0gPSBpbnRvU3RhbmRhcmRTdHJlYW08QmFzZURvU3RyZWFtT3V0cHV0Q2h1bms+KHN0cmVhbSlcbiAgICBjb25zdCBzdHJlYW1XaXRoUmF3ID0gc3RhbmRhcmRTdHJlYW0ucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbTxCYXNlRG9TdHJlYW1PdXRwdXRDaHVuaywgQmFzZURvU3RyZWFtT3V0cHV0Q2h1bmsgJiB7IHJhd1Jlc3BvbnNlPzogYW55IH0+KHtcbiAgICAgIHRyYW5zZm9ybShjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICBjb25zdCBuZXdDaG9pY2VzID0gY2h1bmsuY2hvaWNlcy5tYXAoKGNob2ljZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBjaG9pY2UuZGVsdGFcbiAgICAgICAgICBpZiAoaXNUb29sQ2FsbCA9PSBudWxsKSBpc1Rvb2xDYWxsID0gaXNUb29sQ2FsbEFzc2lzdGFudE1lc3NhZ2UobWVzc2FnZSlcbiAgICAgICAgICBpZiAoaXNUb29sQ2FsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uY2hvaWNlLFxuICAgICAgICAgICAgICBmaW5pc2hfcmVhc29uOiAndG9vbF9jYWxscycgYXMgY29uc3QsXG4gICAgICAgICAgICAgIGRlbHRhOiBtZXNzYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gY2hvaWNlXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IG5ld0NodW5rID0geyAuLi5jaHVuaywgY2hvaWNlczogbmV3Q2hvaWNlcyB9XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh7IC4uLm5ld0NodW5rLCByYXdSZXNwb25zZTogY2h1bmsgfSlcbiAgICAgIH0sXG4gICAgfSksKVxuXG4gICAgcmV0dXJuIGNyZWF0ZUFzeW5jSXRlcmFibGUoc3RyZWFtV2l0aFJhdylcbiAgfVxufVxuIl19
@@ -7,6 +7,7 @@ import { YiSimpleModel } from './Yi/index';
7
7
  import { MoonshotSimpleModel } from './Moonshot/index';
8
8
  import { HunYuanExpSimpleModel } from './HunYuanExp/index';
9
9
  import { HunYuanOpenSimpleModel } from './HunYuanOpen/index';
10
+ import { DeepSeekSimpleModel } from './DeepSeek';
10
11
  export declare const MODELS: {
11
12
  hunyuan: typeof HunYuanSimpleModel;
12
13
  'hunyuan-beta': typeof HunYuanBetaSimpleModel;
@@ -17,6 +18,7 @@ export declare const MODELS: {
17
18
  zhipu: typeof ZhiPuSimpleModel;
18
19
  'hunyuan-exp': typeof HunYuanExpSimpleModel;
19
20
  'hunyuan-open': typeof HunYuanOpenSimpleModel;
21
+ deepseek: typeof DeepSeekSimpleModel;
20
22
  };
21
23
  export { ZhiPuSimpleModel, HunYuanBetaSimpleModel, HunYuanSimpleModel, ArkSimpleModel, DSSimpleModel, YiSimpleModel, MoonshotSimpleModel, HunYuanExpSimpleModel, HunYuanOpenSimpleModel, };
22
24
  export { ReactModel, toolMap } from './model';
@@ -7,6 +7,7 @@ import { YiSimpleModel } from './Yi/index';
7
7
  import { MoonshotSimpleModel } from './Moonshot/index';
8
8
  import { HunYuanExpSimpleModel } from './HunYuanExp/index';
9
9
  import { HunYuanOpenSimpleModel } from './HunYuanOpen/index';
10
+ import { DeepSeekSimpleModel } from './DeepSeek';
10
11
  export var MODELS = {
11
12
  hunyuan: HunYuanSimpleModel,
12
13
  'hunyuan-beta': HunYuanBetaSimpleModel,
@@ -17,7 +18,8 @@ export var MODELS = {
17
18
  zhipu: ZhiPuSimpleModel,
18
19
  'hunyuan-exp': HunYuanExpSimpleModel,
19
20
  'hunyuan-open': HunYuanOpenSimpleModel,
21
+ deepseek: DeepSeekSimpleModel,
20
22
  };
21
23
  export { ZhiPuSimpleModel, HunYuanBetaSimpleModel, HunYuanSimpleModel, ArkSimpleModel, DSSimpleModel, YiSimpleModel, MoonshotSimpleModel, HunYuanExpSimpleModel, HunYuanOpenSimpleModel, };
22
24
  export { ReactModel, toolMap } from './model';
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRTVELE1BQU0sQ0FBQyxJQUFNLE1BQU0sR0FBRztJQUNwQixPQUFPLEVBQUUsa0JBQWtCO0lBQzNCLGNBQWMsRUFBRSxzQkFBc0I7SUFDdEMsR0FBRyxFQUFFLGNBQWM7SUFDbkIsU0FBUyxFQUFFLGFBQWE7SUFDeEIsT0FBTyxFQUFFLGFBQWE7SUFDdEIsUUFBUSxFQUFFLG1CQUFtQjtJQUM3QixLQUFLLEVBQUUsZ0JBQWdCO0lBQ3ZCLGFBQWEsRUFBRSxxQkFBcUI7SUFDcEMsY0FBYyxFQUFFLHNCQUFzQjtDQUN2QyxDQUFBO0FBRUQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsc0JBQXNCLEdBQ3ZCLENBQUE7QUFFRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFpoaVB1U2ltcGxlTW9kZWwgfSBmcm9tICcuL1poaVB1L2luZGV4J1xuaW1wb3J0IHsgSHVuWXVhbkJldGFTaW1wbGVNb2RlbCB9IGZyb20gJy4vSHVuWXVhbkJldGEvaW5kZXgnXG5pbXBvcnQgeyBIdW5ZdWFuU2ltcGxlTW9kZWwgfSBmcm9tICcuL0h1bll1YW4vaW5kZXgnXG5pbXBvcnQgeyBBcmtTaW1wbGVNb2RlbCB9IGZyb20gJy4vQXJrL2luZGV4J1xuaW1wb3J0IHsgRFNTaW1wbGVNb2RlbCB9IGZyb20gJy4vRGFzaFNjb3BlL2luZGV4J1xuaW1wb3J0IHsgWWlTaW1wbGVNb2RlbCB9IGZyb20gJy4vWWkvaW5kZXgnXG5pbXBvcnQgeyBNb29uc2hvdFNpbXBsZU1vZGVsIH0gZnJvbSAnLi9Nb29uc2hvdC9pbmRleCdcbmltcG9ydCB7IEh1bll1YW5FeHBTaW1wbGVNb2RlbCB9IGZyb20gJy4vSHVuWXVhbkV4cC9pbmRleCdcbmltcG9ydCB7IEh1bll1YW5PcGVuU2ltcGxlTW9kZWwgfSBmcm9tICcuL0h1bll1YW5PcGVuL2luZGV4J1xuXG5leHBvcnQgY29uc3QgTU9ERUxTID0ge1xuICBodW55dWFuOiBIdW5ZdWFuU2ltcGxlTW9kZWwsXG4gICdodW55dWFuLWJldGEnOiBIdW5ZdWFuQmV0YVNpbXBsZU1vZGVsLFxuICBhcms6IEFya1NpbXBsZU1vZGVsLFxuICBkYXNoc2NvcGU6IERTU2ltcGxlTW9kZWwsXG4gICcwMS1haSc6IFlpU2ltcGxlTW9kZWwsXG4gIG1vb25zaG90OiBNb29uc2hvdFNpbXBsZU1vZGVsLFxuICB6aGlwdTogWmhpUHVTaW1wbGVNb2RlbCxcbiAgJ2h1bnl1YW4tZXhwJzogSHVuWXVhbkV4cFNpbXBsZU1vZGVsLFxuICAnaHVueXVhbi1vcGVuJzogSHVuWXVhbk9wZW5TaW1wbGVNb2RlbCxcbn1cblxuZXhwb3J0IHtcbiAgWmhpUHVTaW1wbGVNb2RlbCxcbiAgSHVuWXVhbkJldGFTaW1wbGVNb2RlbCxcbiAgSHVuWXVhblNpbXBsZU1vZGVsLFxuICBBcmtTaW1wbGVNb2RlbCxcbiAgRFNTaW1wbGVNb2RlbCxcbiAgWWlTaW1wbGVNb2RlbCxcbiAgTW9vbnNob3RTaW1wbGVNb2RlbCxcbiAgSHVuWXVhbkV4cFNpbXBsZU1vZGVsLFxuICBIdW5ZdWFuT3BlblNpbXBsZU1vZGVsLFxufVxuXG5leHBvcnQgeyBSZWFjdE1vZGVsLCB0b29sTWFwIH0gZnJvbSAnLi9tb2RlbCdcbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVoRCxNQUFNLENBQUMsSUFBTSxNQUFNLEdBQUc7SUFDcEIsT0FBTyxFQUFFLGtCQUFrQjtJQUMzQixjQUFjLEVBQUUsc0JBQXNCO0lBQ3RDLEdBQUcsRUFBRSxjQUFjO0lBQ25CLFNBQVMsRUFBRSxhQUFhO0lBQ3hCLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFFBQVEsRUFBRSxtQkFBbUI7SUFDN0IsS0FBSyxFQUFFLGdCQUFnQjtJQUN2QixhQUFhLEVBQUUscUJBQXFCO0lBQ3BDLGNBQWMsRUFBRSxzQkFBc0I7SUFDdEMsUUFBUSxFQUFFLG1CQUFtQjtDQUM5QixDQUFBO0FBRUQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsc0JBQXNCLEdBQ3ZCLENBQUE7QUFFRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFpoaVB1U2ltcGxlTW9kZWwgfSBmcm9tICcuL1poaVB1L2luZGV4J1xuaW1wb3J0IHsgSHVuWXVhbkJldGFTaW1wbGVNb2RlbCB9IGZyb20gJy4vSHVuWXVhbkJldGEvaW5kZXgnXG5pbXBvcnQgeyBIdW5ZdWFuU2ltcGxlTW9kZWwgfSBmcm9tICcuL0h1bll1YW4vaW5kZXgnXG5pbXBvcnQgeyBBcmtTaW1wbGVNb2RlbCB9IGZyb20gJy4vQXJrL2luZGV4J1xuaW1wb3J0IHsgRFNTaW1wbGVNb2RlbCB9IGZyb20gJy4vRGFzaFNjb3BlL2luZGV4J1xuaW1wb3J0IHsgWWlTaW1wbGVNb2RlbCB9IGZyb20gJy4vWWkvaW5kZXgnXG5pbXBvcnQgeyBNb29uc2hvdFNpbXBsZU1vZGVsIH0gZnJvbSAnLi9Nb29uc2hvdC9pbmRleCdcbmltcG9ydCB7IEh1bll1YW5FeHBTaW1wbGVNb2RlbCB9IGZyb20gJy4vSHVuWXVhbkV4cC9pbmRleCdcbmltcG9ydCB7IEh1bll1YW5PcGVuU2ltcGxlTW9kZWwgfSBmcm9tICcuL0h1bll1YW5PcGVuL2luZGV4J1xuaW1wb3J0IHsgRGVlcFNlZWtTaW1wbGVNb2RlbCB9IGZyb20gJy4vRGVlcFNlZWsnXG5cbmV4cG9ydCBjb25zdCBNT0RFTFMgPSB7XG4gIGh1bnl1YW46IEh1bll1YW5TaW1wbGVNb2RlbCxcbiAgJ2h1bnl1YW4tYmV0YSc6IEh1bll1YW5CZXRhU2ltcGxlTW9kZWwsXG4gIGFyazogQXJrU2ltcGxlTW9kZWwsXG4gIGRhc2hzY29wZTogRFNTaW1wbGVNb2RlbCxcbiAgJzAxLWFpJzogWWlTaW1wbGVNb2RlbCxcbiAgbW9vbnNob3Q6IE1vb25zaG90U2ltcGxlTW9kZWwsXG4gIHpoaXB1OiBaaGlQdVNpbXBsZU1vZGVsLFxuICAnaHVueXVhbi1leHAnOiBIdW5ZdWFuRXhwU2ltcGxlTW9kZWwsXG4gICdodW55dWFuLW9wZW4nOiBIdW5ZdWFuT3BlblNpbXBsZU1vZGVsLFxuICBkZWVwc2VlazogRGVlcFNlZWtTaW1wbGVNb2RlbCxcbn1cblxuZXhwb3J0IHtcbiAgWmhpUHVTaW1wbGVNb2RlbCxcbiAgSHVuWXVhbkJldGFTaW1wbGVNb2RlbCxcbiAgSHVuWXVhblNpbXBsZU1vZGVsLFxuICBBcmtTaW1wbGVNb2RlbCxcbiAgRFNTaW1wbGVNb2RlbCxcbiAgWWlTaW1wbGVNb2RlbCxcbiAgTW9vbnNob3RTaW1wbGVNb2RlbCxcbiAgSHVuWXVhbkV4cFNpbXBsZU1vZGVsLFxuICBIdW5ZdWFuT3BlblNpbXBsZU1vZGVsLFxufVxuXG5leHBvcnQgeyBSZWFjdE1vZGVsLCB0b29sTWFwIH0gZnJvbSAnLi9tb2RlbCdcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/ai",
3
- "version": "2.8.35",
3
+ "version": "2.9.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.35",
30
+ "@cloudbase/types": "^2.9.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.6.0"
37
37
  },
38
- "gitHead": "98ebde944c599ed0e90f84aaf1477c958fe0a251"
38
+ "gitHead": "aff66120b898725227d9b451bff736ca1dac9cfc"
39
39
  }
@@ -0,0 +1,75 @@
1
+ import {
2
+ createAsyncIterable,
3
+ TransformStream,
4
+ toPolyfillReadable,
5
+ intoStandardStream,
6
+ isToolCallAssistantMessage,
7
+ } from '../../utils'
8
+ import type {
9
+ ModelReq,
10
+ BaseChatModelInput,
11
+ SimpleChatModel,
12
+ DoStreamOutput,
13
+ BaseDoStreamOutputChunk,
14
+ DoGenerateOutput,
15
+ } from '../../type'
16
+
17
+ export class DeepSeekSimpleModel implements SimpleChatModel {
18
+ public subUrl = 'deepseek/v1/chat/completions'
19
+ constructor(private req: ModelReq, public baseUrl: string, subUrl?: string) {
20
+ if (subUrl != null) {
21
+ this.subUrl = subUrl
22
+ }
23
+ }
24
+
25
+ private get url() {
26
+ return `${this.baseUrl}/${this.subUrl}`
27
+ }
28
+
29
+ public async doGenerate(data: BaseChatModelInput): Promise<DoGenerateOutput> {
30
+ const res = (await this.req({
31
+ url: this.url,
32
+ data: {
33
+ ...data,
34
+ stream: false,
35
+ },
36
+ stream: false,
37
+ })) as DoGenerateOutput
38
+ return { ...res, rawResponse: res }
39
+ }
40
+
41
+ public async doStream(data: BaseChatModelInput): Promise<DoStreamOutput> {
42
+ let isToolCall: null | boolean = null
43
+ const _stream = await this.req({
44
+ url: this.url,
45
+ data: {
46
+ ...data,
47
+ stream: true,
48
+ },
49
+ stream: true,
50
+ })
51
+ const stream = toPolyfillReadable(_stream) as typeof _stream
52
+
53
+ const standardStream = intoStandardStream<BaseDoStreamOutputChunk>(stream)
54
+ const streamWithRaw = standardStream.pipeThrough(new TransformStream<BaseDoStreamOutputChunk, BaseDoStreamOutputChunk & { rawResponse?: any }>({
55
+ transform(chunk, controller) {
56
+ const newChoices = chunk.choices.map((choice) => {
57
+ const message = choice.delta
58
+ if (isToolCall == null) isToolCall = isToolCallAssistantMessage(message)
59
+ if (isToolCall) {
60
+ return {
61
+ ...choice,
62
+ finish_reason: 'tool_calls' as const,
63
+ delta: message,
64
+ }
65
+ }
66
+ return choice
67
+ })
68
+ const newChunk = { ...chunk, choices: newChoices }
69
+ controller.enqueue({ ...newChunk, rawResponse: chunk })
70
+ },
71
+ }),)
72
+
73
+ return createAsyncIterable(streamWithRaw)
74
+ }
75
+ }
@@ -7,6 +7,7 @@ import { YiSimpleModel } from './Yi/index'
7
7
  import { MoonshotSimpleModel } from './Moonshot/index'
8
8
  import { HunYuanExpSimpleModel } from './HunYuanExp/index'
9
9
  import { HunYuanOpenSimpleModel } from './HunYuanOpen/index'
10
+ import { DeepSeekSimpleModel } from './DeepSeek'
10
11
 
11
12
  export const MODELS = {
12
13
  hunyuan: HunYuanSimpleModel,
@@ -18,6 +19,7 @@ export const MODELS = {
18
19
  zhipu: ZhiPuSimpleModel,
19
20
  'hunyuan-exp': HunYuanExpSimpleModel,
20
21
  'hunyuan-open': HunYuanOpenSimpleModel,
22
+ deepseek: DeepSeekSimpleModel,
21
23
  }
22
24
 
23
25
  export {