@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.
- package/.eslintignore +2 -0
- package/.eslintrc.js +15 -0
- package/LICENSE +202 -0
- package/dist/cjs/index.d.ts +40 -0
- package/dist/cjs/index.js +171 -0
- package/dist/cjs/models/HunYuan/index.d.ts +25 -0
- package/dist/cjs/models/HunYuan/index.js +191 -0
- package/dist/cjs/models/HunYuan/type.d.ts +52 -0
- package/dist/cjs/models/HunYuan/type.js +3 -0
- package/dist/cjs/models/HunYuanPreview/index.d.ts +25 -0
- package/dist/cjs/models/HunYuanPreview/index.js +191 -0
- package/dist/cjs/models/HunYuanPreview/type.d.ts +52 -0
- package/dist/cjs/models/HunYuanPreview/type.js +3 -0
- package/dist/cjs/models/HuoShan/index.d.ts +24 -0
- package/dist/cjs/models/HuoShan/index.js +163 -0
- package/dist/cjs/models/HuoShan/type.d.ts +38 -0
- package/dist/cjs/models/HuoShan/type.js +3 -0
- package/dist/cjs/models/LingJi/index.d.ts +24 -0
- package/dist/cjs/models/LingJi/index.js +163 -0
- package/dist/cjs/models/LingJi/type.d.ts +43 -0
- package/dist/cjs/models/LingJi/type.js +3 -0
- package/dist/cjs/models/LingYi/index.d.ts +24 -0
- package/dist/cjs/models/LingYi/index.js +163 -0
- package/dist/cjs/models/LingYi/type.d.ts +49 -0
- package/dist/cjs/models/LingYi/type.js +3 -0
- package/dist/cjs/models/YueZhi/index.d.ts +24 -0
- package/dist/cjs/models/YueZhi/index.js +163 -0
- package/dist/cjs/models/YueZhi/type.d.ts +31 -0
- package/dist/cjs/models/YueZhi/type.js +3 -0
- package/dist/cjs/models/ZhiPu/index.d.ts +24 -0
- package/dist/cjs/models/ZhiPu/index.js +163 -0
- package/dist/cjs/models/ZhiPu/type.d.ts +71 -0
- package/dist/cjs/models/ZhiPu/type.js +3 -0
- package/dist/cjs/models/index.d.ts +17 -0
- package/dist/cjs/models/index.js +27 -0
- package/dist/cjs/type.d.ts +37 -0
- package/dist/cjs/type.js +16 -0
- package/dist/cjs/utils.d.ts +28 -0
- package/dist/cjs/utils.js +152 -0
- package/dist/esm/index.d.ts +40 -0
- package/dist/esm/index.js +141 -0
- package/dist/esm/models/HunYuan/index.d.ts +25 -0
- package/dist/esm/models/HunYuan/index.js +188 -0
- package/dist/esm/models/HunYuan/type.d.ts +52 -0
- package/dist/esm/models/HunYuan/type.js +2 -0
- package/dist/esm/models/HunYuanPreview/index.d.ts +25 -0
- package/dist/esm/models/HunYuanPreview/index.js +188 -0
- package/dist/esm/models/HunYuanPreview/type.d.ts +52 -0
- package/dist/esm/models/HunYuanPreview/type.js +2 -0
- package/dist/esm/models/HuoShan/index.d.ts +24 -0
- package/dist/esm/models/HuoShan/index.js +160 -0
- package/dist/esm/models/HuoShan/type.d.ts +38 -0
- package/dist/esm/models/HuoShan/type.js +2 -0
- package/dist/esm/models/LingJi/index.d.ts +24 -0
- package/dist/esm/models/LingJi/index.js +160 -0
- package/dist/esm/models/LingJi/type.d.ts +43 -0
- package/dist/esm/models/LingJi/type.js +2 -0
- package/dist/esm/models/LingYi/index.d.ts +24 -0
- package/dist/esm/models/LingYi/index.js +160 -0
- package/dist/esm/models/LingYi/type.d.ts +49 -0
- package/dist/esm/models/LingYi/type.js +2 -0
- package/dist/esm/models/YueZhi/index.d.ts +24 -0
- package/dist/esm/models/YueZhi/index.js +160 -0
- package/dist/esm/models/YueZhi/type.d.ts +31 -0
- package/dist/esm/models/YueZhi/type.js +2 -0
- package/dist/esm/models/ZhiPu/index.d.ts +24 -0
- package/dist/esm/models/ZhiPu/index.js +160 -0
- package/dist/esm/models/ZhiPu/type.d.ts +71 -0
- package/dist/esm/models/ZhiPu/type.js +2 -0
- package/dist/esm/models/index.d.ts +17 -0
- package/dist/esm/models/index.js +18 -0
- package/dist/esm/type.d.ts +37 -0
- package/dist/esm/type.js +13 -0
- package/dist/esm/utils.d.ts +28 -0
- package/dist/esm/utils.js +147 -0
- package/package.json +36 -0
- package/src/index.ts +77 -0
- package/src/models/HunYuan/index.ts +110 -0
- package/src/models/HunYuan/type.ts +61 -0
- package/src/models/HunYuanPreview/index.ts +110 -0
- package/src/models/HunYuanPreview/type.ts +61 -0
- package/src/models/HuoShan/index.ts +92 -0
- package/src/models/HuoShan/type.ts +41 -0
- package/src/models/LingJi/index.ts +92 -0
- package/src/models/LingJi/type.ts +34 -0
- package/src/models/LingYi/index.ts +92 -0
- package/src/models/LingYi/type.ts +49 -0
- package/src/models/YueZhi/index.ts +92 -0
- package/src/models/YueZhi/type.ts +28 -0
- package/src/models/ZhiPu/index.ts +92 -0
- package/src/models/ZhiPu/type.ts +60 -0
- package/src/models/index.ts +19 -0
- package/src/type.ts +42 -0
- package/src/utils.ts +110 -0
- package/tsconfig.esm.json +16 -0
- 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
|
+
}
|
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
|
+
}
|