From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/api/ai/write/index.ts | 85 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 85 insertions(+), 0 deletions(-)
diff --git a/src/api/ai/write/index.ts b/src/api/ai/write/index.ts
new file mode 100644
index 0000000..013f998
--- /dev/null
+++ b/src/api/ai/write/index.ts
@@ -0,0 +1,85 @@
+import { fetchEventSource } from '@microsoft/fetch-event-source'
+
+import { getAccessToken } from '@/utils/auth'
+import { config } from '@/config/axios/config'
+import { AiWriteTypeEnum } from '@/views/ai/utils/constants'
+import request from '@/config/axios'
+
+export interface WriteVO {
+ type: AiWriteTypeEnum.WRITING | AiWriteTypeEnum.REPLY // 1:鎾板啓 2:鍥炲
+ prompt: string // 鍐欎綔鍐呭鎻愮ず 1銆傛挵鍐� 2鍥炲
+ originalContent: string // 鍘熸枃
+ length: number // 闀垮害
+ format: number // 鏍煎紡
+ tone: number // 璇皵
+ language: number // 璇█
+ userId?: number // 鐢ㄦ埛缂栧彿
+ platform?: string // 骞冲彴
+ model?: string // 妯″瀷
+ generatedContent?: string // 鐢熸垚鐨勫唴瀹�
+ errorMessage?: string // 閿欒淇℃伅
+ createTime?: Date // 鍒涘缓鏃堕棿
+}
+
+export interface AiWritePageReqVO extends PageParam {
+ userId?: number // 鐢ㄦ埛缂栧彿
+ type?: AiWriteTypeEnum // 鍐欎綔绫诲瀷
+ platform?: string // 骞冲彴
+ createTime?: [string, string] // 鍒涘缓鏃堕棿
+}
+
+export interface AiWriteRespVo {
+ id: number
+ userId: number
+ type: number
+ platform: string
+ model: string
+ prompt: string
+ generatedContent: string
+ originalContent: string
+ length: number
+ format: number
+ tone: number
+ language: number
+ errorMessage: string
+ createTime: string
+}
+
+export const WriteApi = {
+ writeStream: ({
+ data,
+ onClose,
+ onMessage,
+ onError,
+ ctrl
+ }: {
+ data: WriteVO
+ onMessage?: (res: any) => void
+ onError?: (...args: any[]) => void
+ onClose?: (...args: any[]) => void
+ ctrl: AbortController
+ }) => {
+ 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
+ })
+ },
+ // 鑾峰彇鍐欎綔鍒楄〃
+ getWritePage: (params: AiWritePageReqVO) => {
+ return request.get<PageResult<AiWriteRespVo[]>>({ url: `/ai/write/page`, params })
+ },
+ // 鍒犻櫎鍐欎綔
+ deleteWrite(id: number) {
+ return request.delete({ url: `/ai/write/delete`, params: { id } })
+ }
+}
--
Gitblit v1.8.0