@cloudbase/ai 2.7.3-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.
Files changed (96) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc.js +15 -0
  3. package/LICENSE +202 -0
  4. package/dist/cjs/index.d.ts +40 -0
  5. package/dist/cjs/index.js +171 -0
  6. package/dist/cjs/models/HunYuan/index.d.ts +25 -0
  7. package/dist/cjs/models/HunYuan/index.js +191 -0
  8. package/dist/cjs/models/HunYuan/type.d.ts +52 -0
  9. package/dist/cjs/models/HunYuan/type.js +3 -0
  10. package/dist/cjs/models/HunYuanPreview/index.d.ts +25 -0
  11. package/dist/cjs/models/HunYuanPreview/index.js +191 -0
  12. package/dist/cjs/models/HunYuanPreview/type.d.ts +52 -0
  13. package/dist/cjs/models/HunYuanPreview/type.js +3 -0
  14. package/dist/cjs/models/HuoShan/index.d.ts +24 -0
  15. package/dist/cjs/models/HuoShan/index.js +163 -0
  16. package/dist/cjs/models/HuoShan/type.d.ts +38 -0
  17. package/dist/cjs/models/HuoShan/type.js +3 -0
  18. package/dist/cjs/models/LingJi/index.d.ts +24 -0
  19. package/dist/cjs/models/LingJi/index.js +163 -0
  20. package/dist/cjs/models/LingJi/type.d.ts +43 -0
  21. package/dist/cjs/models/LingJi/type.js +3 -0
  22. package/dist/cjs/models/LingYi/index.d.ts +24 -0
  23. package/dist/cjs/models/LingYi/index.js +163 -0
  24. package/dist/cjs/models/LingYi/type.d.ts +49 -0
  25. package/dist/cjs/models/LingYi/type.js +3 -0
  26. package/dist/cjs/models/YueZhi/index.d.ts +24 -0
  27. package/dist/cjs/models/YueZhi/index.js +163 -0
  28. package/dist/cjs/models/YueZhi/type.d.ts +31 -0
  29. package/dist/cjs/models/YueZhi/type.js +3 -0
  30. package/dist/cjs/models/ZhiPu/index.d.ts +24 -0
  31. package/dist/cjs/models/ZhiPu/index.js +163 -0
  32. package/dist/cjs/models/ZhiPu/type.d.ts +71 -0
  33. package/dist/cjs/models/ZhiPu/type.js +3 -0
  34. package/dist/cjs/models/index.d.ts +17 -0
  35. package/dist/cjs/models/index.js +27 -0
  36. package/dist/cjs/type.d.ts +37 -0
  37. package/dist/cjs/type.js +16 -0
  38. package/dist/cjs/utils.d.ts +28 -0
  39. package/dist/cjs/utils.js +152 -0
  40. package/dist/esm/index.d.ts +40 -0
  41. package/dist/esm/index.js +141 -0
  42. package/dist/esm/models/HunYuan/index.d.ts +25 -0
  43. package/dist/esm/models/HunYuan/index.js +188 -0
  44. package/dist/esm/models/HunYuan/type.d.ts +52 -0
  45. package/dist/esm/models/HunYuan/type.js +2 -0
  46. package/dist/esm/models/HunYuanPreview/index.d.ts +25 -0
  47. package/dist/esm/models/HunYuanPreview/index.js +188 -0
  48. package/dist/esm/models/HunYuanPreview/type.d.ts +52 -0
  49. package/dist/esm/models/HunYuanPreview/type.js +2 -0
  50. package/dist/esm/models/HuoShan/index.d.ts +24 -0
  51. package/dist/esm/models/HuoShan/index.js +160 -0
  52. package/dist/esm/models/HuoShan/type.d.ts +38 -0
  53. package/dist/esm/models/HuoShan/type.js +2 -0
  54. package/dist/esm/models/LingJi/index.d.ts +24 -0
  55. package/dist/esm/models/LingJi/index.js +160 -0
  56. package/dist/esm/models/LingJi/type.d.ts +43 -0
  57. package/dist/esm/models/LingJi/type.js +2 -0
  58. package/dist/esm/models/LingYi/index.d.ts +24 -0
  59. package/dist/esm/models/LingYi/index.js +160 -0
  60. package/dist/esm/models/LingYi/type.d.ts +49 -0
  61. package/dist/esm/models/LingYi/type.js +2 -0
  62. package/dist/esm/models/YueZhi/index.d.ts +24 -0
  63. package/dist/esm/models/YueZhi/index.js +160 -0
  64. package/dist/esm/models/YueZhi/type.d.ts +31 -0
  65. package/dist/esm/models/YueZhi/type.js +2 -0
  66. package/dist/esm/models/ZhiPu/index.d.ts +24 -0
  67. package/dist/esm/models/ZhiPu/index.js +160 -0
  68. package/dist/esm/models/ZhiPu/type.d.ts +71 -0
  69. package/dist/esm/models/ZhiPu/type.js +2 -0
  70. package/dist/esm/models/index.d.ts +17 -0
  71. package/dist/esm/models/index.js +18 -0
  72. package/dist/esm/type.d.ts +37 -0
  73. package/dist/esm/type.js +13 -0
  74. package/dist/esm/utils.d.ts +28 -0
  75. package/dist/esm/utils.js +147 -0
  76. package/package.json +36 -0
  77. package/src/index.ts +77 -0
  78. package/src/models/HunYuan/index.ts +110 -0
  79. package/src/models/HunYuan/type.ts +61 -0
  80. package/src/models/HunYuanPreview/index.ts +110 -0
  81. package/src/models/HunYuanPreview/type.ts +61 -0
  82. package/src/models/HuoShan/index.ts +92 -0
  83. package/src/models/HuoShan/type.ts +41 -0
  84. package/src/models/LingJi/index.ts +92 -0
  85. package/src/models/LingJi/type.ts +34 -0
  86. package/src/models/LingYi/index.ts +92 -0
  87. package/src/models/LingYi/type.ts +49 -0
  88. package/src/models/YueZhi/index.ts +92 -0
  89. package/src/models/YueZhi/type.ts +28 -0
  90. package/src/models/ZhiPu/index.ts +92 -0
  91. package/src/models/ZhiPu/type.ts +60 -0
  92. package/src/models/index.ts +19 -0
  93. package/src/type.ts +42 -0
  94. package/src/utils.ts +110 -0
  95. package/tsconfig.esm.json +16 -0
  96. package/tsconfig.json +16 -0
package/src/type.ts ADDED
@@ -0,0 +1,42 @@
1
+ import { type ParsedEvent } from 'eventsource-parser/stream'
2
+
3
+ export abstract class ChatModel {
4
+ public abstract generateText(data: BaseChatModelInput): Promise<{ text: string; rawResponse: any }>
5
+
6
+ public abstract streamText(data: BaseChatModelInput): Promise<StreamTextResult>
7
+ }
8
+
9
+ export type ChatModelConstructor = typeof ChatModel
10
+
11
+ export abstract class StreamTextResult {
12
+ public abstract eventSourceStream: AsyncIterableReadableStream<ParsedEvent>
13
+ public abstract dataStream: AsyncIterableReadableStream<any>
14
+ public abstract textStream: AsyncIterableReadableStream<string>
15
+ }
16
+
17
+ export type AsyncIterableReadableStream<T> = ReadableStream<T> & {
18
+ [Symbol.asyncIterator]: () => { next(): Promise<IteratorResult<T>> }
19
+ }
20
+
21
+ export interface IModelReqInput {
22
+ url: string
23
+ headers?: Record<string, string>
24
+ data?: Object
25
+ stream?: boolean
26
+ }
27
+
28
+ export type ModelReq = <T extends IModelReqInput>(
29
+ props: T,
30
+ ) => T['stream'] extends true ? Promise<ReadableStream<Uint8Array>> : Promise<Object>
31
+
32
+ type ChatModelMessage = {
33
+ role: 'user' | 'system' | 'assistant'
34
+ content: string
35
+ }
36
+
37
+ export interface BaseChatModelInput {
38
+ model: string
39
+ messages: Array<ChatModelMessage>
40
+ temperature?: number
41
+ top_p?: number
42
+ }
package/src/utils.ts ADDED
@@ -0,0 +1,110 @@
1
+ import { TransformStream as _TransformStream, ReadableStream as _ReadableStream } from 'web-streams-polyfill'
2
+ import { createReadableStreamWrapper } from '@mattiasbuelens/web-streams-adapter'
3
+ import { createParser, type EventSourceParser, type ParsedEvent } from 'eventsource-parser'
4
+ import type { AsyncIterableReadableStream } from './type'
5
+
6
+ export const ReadableStream = _ReadableStream as {
7
+ prototype: ReadableStream
8
+
9
+ new (
10
+ underlyingSource: UnderlyingByteSource,
11
+ strategy?: {
12
+ highWaterMark?: number
13
+ },
14
+ ): ReadableStream<Uint8Array>
15
+ new <R = any>(underlyingSource: UnderlyingDefaultSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>
16
+ new <R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>
17
+ }
18
+
19
+ export const TransformStream = _TransformStream as {
20
+ prototype: TransformStream
21
+
22
+ new <I = any, O = any>(
23
+ transformer?: Transformer<I, O>,
24
+ writableStrategy?: QueuingStrategy<I>,
25
+ readableStrategy?: QueuingStrategy<O>,
26
+ ): TransformStream<I, O>
27
+ }
28
+
29
+ export const createEventSourceParserTransformStream = () => {
30
+ let parser!: EventSourceParser
31
+
32
+ return new TransformStream<string, ParsedEvent>({
33
+ start(controller) {
34
+ parser = createParser((event) => {
35
+ if (event.type === 'event') {
36
+ controller.enqueue(event)
37
+ }
38
+ })
39
+ },
40
+ transform(chunk) {
41
+ parser.feed(chunk)
42
+ },
43
+ })
44
+ }
45
+
46
+ export const toPolyfillReadable = createReadableStreamWrapper(ReadableStream)
47
+
48
+ export class TextDecoderStream {
49
+ private handle: TextDecoder
50
+
51
+ private transform = new TransformStream({
52
+ transform: (chunk, controller) => {
53
+ const value = this.handle.decode(chunk, { stream: true })
54
+
55
+ if (value) {
56
+ controller.enqueue(value)
57
+ }
58
+ },
59
+ flush: (controller) => {
60
+ const value = this.handle.decode()
61
+ if (value) {
62
+ controller.enqueue(value)
63
+ }
64
+
65
+ controller.terminate()
66
+ },
67
+ })
68
+
69
+ constructor(encoding = 'utf-8', options: TextDecoderOptions = {}) {
70
+ this.handle = new TextDecoder(encoding, options)
71
+ }
72
+
73
+ get encoding() {
74
+ return this.handle.encoding
75
+ }
76
+
77
+ get fatal() {
78
+ return this.handle.fatal
79
+ }
80
+
81
+ get ignoreBOM() {
82
+ return this.handle.ignoreBOM
83
+ }
84
+
85
+ get readable() {
86
+ return this.transform.readable
87
+ }
88
+
89
+ get writable() {
90
+ return this.transform.writable
91
+ }
92
+
93
+ get [Symbol.toStringTag]() {
94
+ return 'TextDecoderStream'
95
+ }
96
+ }
97
+
98
+ export function createAsyncIterable<T>(stream: ReadableStream<T>) {
99
+ const _stream = stream as AsyncIterableReadableStream<T>
100
+ _stream[Symbol.asyncIterator] = () => {
101
+ const reader = stream.getReader()
102
+ return {
103
+ async next(): Promise<IteratorResult<T>> {
104
+ const { done, value } = await reader.read()
105
+ return done ? { done: true, value: undefined } : { done: false, value }
106
+ },
107
+ }
108
+ }
109
+ return _stream
110
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "module": "es6",
5
+ "outDir": "dist/esm",
6
+ "rootDir": "src",
7
+ },
8
+ "include": [
9
+ "src/**/*.ts",
10
+ "package.json"
11
+ ],
12
+ "exclude": [
13
+ "node_modules",
14
+ "dist"
15
+ ]
16
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "module": "commonjs",
5
+ "outDir": "dist/cjs",
6
+ "rootDir": "src",
7
+ },
8
+ "include": [
9
+ "src/**/*.ts",
10
+ "package.json"
11
+ ],
12
+ "exclude": [
13
+ "node_modules",
14
+ "dist"
15
+ ]
16
+ }