diff --git a/.env b/.env index c5d6c9f2..f49eee36 100755 --- a/.env +++ b/.env @@ -2,6 +2,6 @@ ENV = 'development' VITE_BASE=/ VUE_APP_PREVIEW=false -VITE_BASE_API=https://xxx.xxx.com -VITE_SOCKET_API=wss://xxx.xxx.com +VITE_BASE_API=http://127.0.0.1:9503 +VITE_SOCKET_API=ws://127.0.0.1:9504 VUE_APP_WEBSITE_NAME="Lumen IM" \ No newline at end of file diff --git a/src/api/embedding.js b/src/api/embedding.js new file mode 100644 index 00000000..41e0a4ad --- /dev/null +++ b/src/api/embedding.js @@ -0,0 +1,85 @@ +import { post, get, upload } from '@/utils/request' + +export function queryModelList(data={}) { + return post('/api/v1/echo/embedding/modelList', data) + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/embedding/modelList", + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); +} + +export function queryChatList(params) { + return post('/api/v1/echo/embedding/chatList', params) + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/embedding/chatList", + // params, + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); +} + +export function queryChatContentList(params) { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/embedding/chatContentList", + // params, + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/echo/embedding/chatContentList', params) +} + +export function queryCollectModelList() { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/embedding/collectModelList", + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/echo/embedding/collectModelList') +} + +// /echo/embedding/chatCompletion +export function queryChatCompletion(params) { + return get('/api/v1/echo/embedding/chatCompletion', params) +} + diff --git a/src/api/openAI.js b/src/api/openAI.js new file mode 100644 index 00000000..85a0c04e --- /dev/null +++ b/src/api/openAI.js @@ -0,0 +1,103 @@ +import { post, get, upload } from '@/utils/request' + +export function queryChatList(params) { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/openai/chatList", + // params, + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/echo/openai/chatList', params) +} + +export function createChat() { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/openai/createChat", + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/echo/openai/createChat') +} + +export function queryChatContentList(params) { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/openai/chatContentListByPage", + // params, + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/echo/openai/chatContentListByPage', params) +} + +export function queryPlugins() { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/openai/plugins", + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/echo/openai/plugins') +} + +export function updateChatAiPlugin(params) { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/openai/updateChatAiPlugin", + // params, + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/echo/openai/updateChatAiPlugin', params) +} + +export function callChat(params) { + return post('/api/v1/copilot/chat', params) +} diff --git a/src/api/shortCut.js b/src/api/shortCut.js new file mode 100644 index 00000000..7eb69acc --- /dev/null +++ b/src/api/shortCut.js @@ -0,0 +1,81 @@ +import { post, get, upload } from '@/utils/request' + +export function fetchAddShortCut(params) { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/shortcut/add", + // params, + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/echo/shortcut/add', params) +} + +export function fetchShortCutList() { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/shortcut/list", + // params: {}, + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/echo/shortcut/list') +} + +export function fetchShortCutDetail(params) { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/shortcut/detail", + // params, + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/echo/shortcut/detail', params) +} + +export function fetchUpdateShortCut(params) { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/shortcut/update", + // params, + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/echo/shortcut/update', params) +} diff --git a/src/api/user.js b/src/api/user.js index 76c55b7c..a9ed9976 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -29,3 +29,136 @@ export const ServeGetUserDetail = () => { export const ServeGetUserSetting = () => { return get('/api/v1/users/setting') } + +// 获取用户相关系统配置信息 +export const ServeGetUserConfig = () => { + return get('/api/v1/users/config') +} + +// 获取用户相关系统配置信息分组 +export const ServeGetUserConfigGroup = () => { + return get('/api/v1/users/config/group') +} + +// 修改配置服务接口 +export const ServeUpdateConfig = (data) => { + return post('/api/v1/users/config', data) +} + +export function fetchUserInfo() { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "get-user-data", + // }, + // (response) => { + // if (response && !response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return get('/api/v1/users/detail') +} + +export function fetchLogin(params) { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "user-login", + // url: "/users/login", + // params, + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/users/login', params) +} + +export function fetchRegister(params) { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/user/register", + // params, + // }, + // (response) => { + // if (response && !response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/users/register', params) +} + +export function fetchUpdateUser(params) { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/user/update", + // params, + // }, + // (response) => { + // if (response && !response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/users/update', params) +} + +export function fetchSendSms(params) { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/user/sendSms", + // params, + // }, + // (response) => { + // if (response && !response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/users/sendSms', params) +} + +export function queryAppVersion(params) { + // return new Promise((resolve, reject) => { + // chrome.runtime.sendMessage( + // { + // type: "post-data", + // url: "/echo/checkVersion", + // params, + // }, + // (response) => { + // if (!response.status) { + // resolve(response.data); + // } else { + // reject(response); + // } + // } + // ); + // }); + return post('/api/v1/echo/checkVersion', params) +} diff --git a/src/assets/echo.png b/src/assets/echo.png new file mode 100644 index 00000000..13f50909 Binary files /dev/null and b/src/assets/echo.png differ diff --git a/src/components/Chat/ChatCard.vue b/src/components/Chat/ChatCard.vue new file mode 100644 index 00000000..2fa403cd --- /dev/null +++ b/src/components/Chat/ChatCard.vue @@ -0,0 +1,274 @@ + + + diff --git a/src/components/Chat/ChatInput.vue b/src/components/Chat/ChatInput.vue new file mode 100644 index 00000000..1b0a016d --- /dev/null +++ b/src/components/Chat/ChatInput.vue @@ -0,0 +1,161 @@ + + + diff --git a/src/components/Chat/Knowledge.vue b/src/components/Chat/Knowledge.vue new file mode 100644 index 00000000..27f69855 --- /dev/null +++ b/src/components/Chat/Knowledge.vue @@ -0,0 +1,480 @@ + + + diff --git a/src/components/Chat/More.vue b/src/components/Chat/More.vue new file mode 100644 index 00000000..73e7837e --- /dev/null +++ b/src/components/Chat/More.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/components/Chat/Translate.vue b/src/components/Chat/Translate.vue new file mode 100644 index 00000000..d7393d74 --- /dev/null +++ b/src/components/Chat/Translate.vue @@ -0,0 +1,861 @@ + + + diff --git a/src/components/Chat/chat.vue b/src/components/Chat/chat.vue new file mode 100644 index 00000000..d7393d74 --- /dev/null +++ b/src/components/Chat/chat.vue @@ -0,0 +1,861 @@ + + + diff --git a/src/components/Chat/index.vue b/src/components/Chat/index.vue new file mode 100644 index 00000000..b8f5d447 --- /dev/null +++ b/src/components/Chat/index.vue @@ -0,0 +1,312 @@ + + + + diff --git a/src/components/Chat/summary.vue b/src/components/Chat/summary.vue new file mode 100644 index 00000000..008f5baf --- /dev/null +++ b/src/components/Chat/summary.vue @@ -0,0 +1,751 @@ + + + diff --git a/src/components/Chat/summaryCard.vue b/src/components/Chat/summaryCard.vue new file mode 100644 index 00000000..eebc8d7a --- /dev/null +++ b/src/components/Chat/summaryCard.vue @@ -0,0 +1,284 @@ + + + diff --git a/src/components/icons/arrowDown.vue b/src/components/icons/arrowDown.vue new file mode 100644 index 00000000..f24f85fe --- /dev/null +++ b/src/components/icons/arrowDown.vue @@ -0,0 +1,28 @@ + + diff --git a/src/components/icons/arrowUp.vue b/src/components/icons/arrowUp.vue new file mode 100644 index 00000000..6fa32ffd --- /dev/null +++ b/src/components/icons/arrowUp.vue @@ -0,0 +1,32 @@ + + diff --git a/src/components/icons/article.vue b/src/components/icons/article.vue new file mode 100644 index 00000000..1e29af69 --- /dev/null +++ b/src/components/icons/article.vue @@ -0,0 +1,27 @@ + + diff --git a/src/components/icons/book.vue b/src/components/icons/book.vue new file mode 100644 index 00000000..cfbaabc3 --- /dev/null +++ b/src/components/icons/book.vue @@ -0,0 +1,34 @@ + + diff --git a/src/components/icons/checkOutlined.vue b/src/components/icons/checkOutlined.vue new file mode 100644 index 00000000..072ca424 --- /dev/null +++ b/src/components/icons/checkOutlined.vue @@ -0,0 +1,30 @@ + + diff --git a/src/components/icons/close.vue b/src/components/icons/close.vue new file mode 100644 index 00000000..a5c9d4c7 --- /dev/null +++ b/src/components/icons/close.vue @@ -0,0 +1,25 @@ + + diff --git a/src/components/icons/closeCircle.vue b/src/components/icons/closeCircle.vue new file mode 100644 index 00000000..0216ee92 --- /dev/null +++ b/src/components/icons/closeCircle.vue @@ -0,0 +1,32 @@ + + diff --git a/src/components/icons/code.vue b/src/components/icons/code.vue new file mode 100644 index 00000000..746d0b8e --- /dev/null +++ b/src/components/icons/code.vue @@ -0,0 +1,26 @@ + + diff --git a/src/components/icons/copy.vue b/src/components/icons/copy.vue new file mode 100644 index 00000000..5268423b --- /dev/null +++ b/src/components/icons/copy.vue @@ -0,0 +1,24 @@ + + diff --git a/src/components/icons/edit.vue b/src/components/icons/edit.vue new file mode 100644 index 00000000..e8b5b3c5 --- /dev/null +++ b/src/components/icons/edit.vue @@ -0,0 +1,34 @@ + + diff --git a/src/components/icons/exit.vue b/src/components/icons/exit.vue new file mode 100644 index 00000000..5475cee2 --- /dev/null +++ b/src/components/icons/exit.vue @@ -0,0 +1,34 @@ + + diff --git a/src/components/icons/expand.vue b/src/components/icons/expand.vue new file mode 100644 index 00000000..4d7e2dbb --- /dev/null +++ b/src/components/icons/expand.vue @@ -0,0 +1,40 @@ + + diff --git a/src/components/icons/github.vue b/src/components/icons/github.vue new file mode 100644 index 00000000..1fba4e11 --- /dev/null +++ b/src/components/icons/github.vue @@ -0,0 +1,49 @@ + + diff --git a/src/components/icons/history.vue b/src/components/icons/history.vue new file mode 100644 index 00000000..472c18a3 --- /dev/null +++ b/src/components/icons/history.vue @@ -0,0 +1,40 @@ + + diff --git a/src/components/icons/index.js b/src/components/icons/index.js new file mode 100644 index 00000000..f45bb945 --- /dev/null +++ b/src/components/icons/index.js @@ -0,0 +1,59 @@ +import IArticle from "./article.vue"; +import IBook from "./book.vue"; +import ICode from "./code.vue"; +import IEdit from "./edit.vue"; +import IQuestion from "./question.vue"; +import ISyntax from "./syntax.vue"; +import ITransform from "./transform.vue"; +import IUserFilled from "./userFilled.vue"; +import IMenu from "./menu.vue"; +import ITag from "./tag.vue"; +import IExpand from "./expand.vue"; +import IClose from "./close.vue"; +import IArrowDown from "./arrowDown.vue"; +import IArrowUp from "./arrowUp.vue"; +import ICopy from "./copy.vue"; +import IRefreshRight from "./refreshRight.vue"; +import IUpdate from "./update.vue"; +import IGithub from "./github.vue"; +import IPlus from "./plus.vue"; +import IHistory from "./history.vue"; +import ISend from "./send.vue"; +import ITagFilled from "./tagFilled.vue"; +import ISet from "./set.vue"; +import IExit from "./exit.vue"; +import ICheckOutlined from "./checkOutlined.vue"; +import IMoreOutlined from "./moreOutlined.vue"; +import IOct from "./oct.vue"; +import ICloseCircle from "./closeCircle.vue"; + +export { + IArticle, + IBook, + ICode, + IEdit, + IQuestion, + ISyntax, + ITransform, + IUserFilled, + IMenu, + ITag, + IExpand, + IClose, + IArrowDown, + IArrowUp, + ICopy, + IRefreshRight, + IUpdate, + IGithub, + IPlus, + IHistory, + ISend, + ITagFilled, + ISet, + IExit, + ICheckOutlined, + IMoreOutlined, + IOct, + ICloseCircle, +}; diff --git a/src/components/icons/map.js b/src/components/icons/map.js new file mode 100644 index 00000000..f54d943f --- /dev/null +++ b/src/components/icons/map.js @@ -0,0 +1,60 @@ +import { + IArticle, + IBook, + ICode, + IEdit, + IQuestion, + ISyntax, + ITransform, + IUserFilled, + IMenu, + ITag, + IExpand, + IClose, + IArrowDown, + IArrowUp, + ICopy, + IRefreshRight, + IUpdate, + IGithub, + IPlus, + IHistory, + ISend, + ITagFilled, + ISet, + IExit, + ICheckOutlined, + IOct, + ICloseCircle, +} from "./index"; + +export default { + article: IArticle, + book: IBook, + code: ICode, + edit: IEdit, + question: IQuestion, + syntax: ISyntax, + transform: ITransform, + userfilled: IUserFilled, + menu: IMenu, + tag: ITag, + expand: IExpand, + close: IClose, + arrowdown: IArrowDown, + arrowup: IArrowUp, + copy: ICopy, + refreshRight: IRefreshRight, + update: IUpdate, + github: IGithub, + plus: IPlus, + history: IHistory, + send: ISend, + tagFilled: ITagFilled, + set: ISet, + exit: IExit, + checkOutlined: ICheckOutlined, + IMoreOutlined: ICheckOutlined, + IOct: IOct, + ICloseCircle: ICloseCircle, +}; diff --git a/src/components/icons/menu.vue b/src/components/icons/menu.vue new file mode 100644 index 00000000..49c226c4 --- /dev/null +++ b/src/components/icons/menu.vue @@ -0,0 +1,31 @@ + + diff --git a/src/components/icons/moreOutlined.vue b/src/components/icons/moreOutlined.vue new file mode 100644 index 00000000..57015d36 --- /dev/null +++ b/src/components/icons/moreOutlined.vue @@ -0,0 +1,30 @@ + + diff --git a/src/components/icons/oct.vue b/src/components/icons/oct.vue new file mode 100644 index 00000000..34d3862d --- /dev/null +++ b/src/components/icons/oct.vue @@ -0,0 +1,36 @@ + + diff --git a/src/components/icons/plus.vue b/src/components/icons/plus.vue new file mode 100644 index 00000000..f1df43e2 --- /dev/null +++ b/src/components/icons/plus.vue @@ -0,0 +1,47 @@ + + diff --git a/src/components/icons/question.vue b/src/components/icons/question.vue new file mode 100644 index 00000000..47721234 --- /dev/null +++ b/src/components/icons/question.vue @@ -0,0 +1,40 @@ + + diff --git a/src/components/icons/refreshRight.vue b/src/components/icons/refreshRight.vue new file mode 100644 index 00000000..2b8eb6fe --- /dev/null +++ b/src/components/icons/refreshRight.vue @@ -0,0 +1,28 @@ + + diff --git a/src/components/icons/send.vue b/src/components/icons/send.vue new file mode 100644 index 00000000..b91851e9 --- /dev/null +++ b/src/components/icons/send.vue @@ -0,0 +1,36 @@ + + diff --git a/src/components/icons/set.vue b/src/components/icons/set.vue new file mode 100644 index 00000000..eb787140 --- /dev/null +++ b/src/components/icons/set.vue @@ -0,0 +1,44 @@ + + diff --git a/src/components/icons/syntax.vue b/src/components/icons/syntax.vue new file mode 100644 index 00000000..1d611d7d --- /dev/null +++ b/src/components/icons/syntax.vue @@ -0,0 +1,27 @@ + + diff --git a/src/components/icons/tag.vue b/src/components/icons/tag.vue new file mode 100644 index 00000000..c4440f4e --- /dev/null +++ b/src/components/icons/tag.vue @@ -0,0 +1,27 @@ + + diff --git a/src/components/icons/tagFilled.vue b/src/components/icons/tagFilled.vue new file mode 100644 index 00000000..d83e725b --- /dev/null +++ b/src/components/icons/tagFilled.vue @@ -0,0 +1,40 @@ + + diff --git a/src/components/icons/transform.vue b/src/components/icons/transform.vue new file mode 100644 index 00000000..0d9bb583 --- /dev/null +++ b/src/components/icons/transform.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/components/icons/update.vue b/src/components/icons/update.vue new file mode 100644 index 00000000..60cecff5 --- /dev/null +++ b/src/components/icons/update.vue @@ -0,0 +1,26 @@ + + diff --git a/src/components/icons/userFilled.vue b/src/components/icons/userFilled.vue new file mode 100644 index 00000000..13d61d98 --- /dev/null +++ b/src/components/icons/userFilled.vue @@ -0,0 +1,41 @@ + + diff --git a/src/utils/talk.js b/src/utils/talk.js index 941c1a54..72315a74 100644 --- a/src/utils/talk.js +++ b/src/utils/talk.js @@ -5,7 +5,7 @@ export const KEY_INDEX_NAME = 'send_message_index_name' export function formatTalkRecord(uid, data) { data.float = 'center' - if (data.user_id > 0) { + if (data.user_id) { data.float = data.user_id == uid ? 'right' : 'left' } diff --git a/src/views/message/index.vue b/src/views/message/index.vue index 759d6178..a4923683 100644 --- a/src/views/message/index.vue +++ b/src/views/message/index.vue @@ -4,6 +4,7 @@ import { useDialogueStore } from '@/store' import IndexContent from './inner/IndexContent.vue' import IndexSider from './inner/IndexSider.vue' import IndexAmicable from './inner/IndexAmicable.vue' +import Chat from '../../components/Chat/index.vue' const dialogueStore = useDialogueStore() const indexName = computed(() => dialogueStore.index_name) @@ -31,6 +32,9 @@ onUnmounted(() => {
+
+ +
diff --git a/src/views/message/inner/panel/PanelContent.vue b/src/views/message/inner/panel/PanelContent.vue index 720f5a1b..c2e07647 100644 --- a/src/views/message/inner/panel/PanelContent.vue +++ b/src/views/message/inner/panel/PanelContent.vue @@ -381,7 +381,8 @@ onMounted(() => {