diff --git a/src/api/ai/writer/index.ts b/src/api/ai/writer/index.ts new file mode 100644 index 00000000..4ce4e2d0 --- /dev/null +++ b/src/api/ai/writer/index.ts @@ -0,0 +1,53 @@ +import request from '@/config/axios' +import { fetchEventSource } from '@microsoft/fetch-event-source' + +import { getAccessToken } from '@/utils/auth' +import { config } from '@/config/axios/config' + +export interface WriteParams { + /** + * 1:撰写 2:回复 + */ + type: 1 | 2 + /** + * 写作内容提示 1。撰写 2回复 + */ + prompt: string + /** + * 原文 + */ + originalContent: string + /** + * 长度 + */ + length: number + /** + * 格式 + */ + format: number + /** + * 语气 + */ + tone: number + /** + * 语言 + */ + language: number +} +export const writeStream = (data: WriteParams, onMessage, onError, onClose, ctrl) => { + // return request.post({ url: '/ai/write/generate-stream', data }) + const token = getAccessToken() + return fetchEventSource(`${config.base_url}/ai/write/generate-stream`, { + method: 'post', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}` + }, + openWhenHidden: true, + body: JSON.stringify(data), + onmessage: onMessage, + onerror: onError, + onclose: onClose, + signal: ctrl.signal + }) +} diff --git a/src/views/ai/writer/components/Left.vue b/src/views/ai/writer/components/Left.vue new file mode 100644 index 00000000..9c3031ae --- /dev/null +++ b/src/views/ai/writer/components/Left.vue @@ -0,0 +1,175 @@ + + + diff --git a/src/views/ai/writer/components/Right.vue b/src/views/ai/writer/components/Right.vue new file mode 100644 index 00000000..a11b7c24 --- /dev/null +++ b/src/views/ai/writer/components/Right.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/src/views/ai/writer/components/Tag.vue b/src/views/ai/writer/components/Tag.vue new file mode 100644 index 00000000..4a32e572 --- /dev/null +++ b/src/views/ai/writer/components/Tag.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/src/views/ai/writer/index.vue b/src/views/ai/writer/index.vue new file mode 100644 index 00000000..3cb4a7d7 --- /dev/null +++ b/src/views/ai/writer/index.vue @@ -0,0 +1,20 @@ + + + + +