balibabu
commited on
Commit
·
1a0fce6
1
Parent(s):
73099c4
feat: support GPT-4o #771 and hide the add button when the folder is a knowledge base (#775)
Browse files### What problem does this PR solve?
feat: support GPT-4o #771
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
- web/.umirc.ts +3 -1
- web/package-lock.json +0 -0
- web/package.json +1 -1
- web/src/hooks/llmHooks.ts +4 -2
- web/src/hooks/logicHooks.ts +64 -0
- web/src/pages/chat/hooks.ts +1 -0
web/.umirc.ts
CHANGED
@@ -30,8 +30,10 @@ export default defineConfig({
|
|
30 |
copy: ['src/conf.json'],
|
31 |
proxy: {
|
32 |
'/v1': {
|
33 |
-
target: '
|
34 |
changeOrigin: true,
|
|
|
|
|
35 |
// pathRewrite: { '^/v1': '/v1' },
|
36 |
},
|
37 |
},
|
|
|
30 |
copy: ['src/conf.json'],
|
31 |
proxy: {
|
32 |
'/v1': {
|
33 |
+
target: '',
|
34 |
changeOrigin: true,
|
35 |
+
ws: true,
|
36 |
+
logger: console,
|
37 |
// pathRewrite: { '^/v1': '/v1' },
|
38 |
},
|
39 |
},
|
web/package-lock.json
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
web/package.json
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
"author": "zhaofengchao <[email protected]>",
|
4 |
"scripts": {
|
5 |
"build": "umi build",
|
6 |
-
"dev": "cross-env PORT=9200 umi dev",
|
7 |
"postinstall": "umi setup",
|
8 |
"lint": "umi lint --eslint-only",
|
9 |
"setup": "umi setup",
|
|
|
3 |
"author": "zhaofengchao <[email protected]>",
|
4 |
"scripts": {
|
5 |
"build": "umi build",
|
6 |
+
"dev": "cross-env PORT=9200 UMI_DEV_SERVER_COMPRESS=none umi dev",
|
7 |
"postinstall": "umi setup",
|
8 |
"lint": "umi lint --eslint-only",
|
9 |
"setup": "umi setup",
|
web/src/hooks/llmHooks.ts
CHANGED
@@ -67,13 +67,15 @@ export const useSelectLlmOptionsByModelType = () => {
|
|
67 |
const groupOptionsByModelType = (modelType: LlmModelType) => {
|
68 |
return Object.entries(llmInfo)
|
69 |
.filter(([, value]) =>
|
70 |
-
modelType ? value.some((x) => x.model_type
|
71 |
)
|
72 |
.map(([key, value]) => {
|
73 |
return {
|
74 |
label: key,
|
75 |
options: value
|
76 |
-
.filter((x) =>
|
|
|
|
|
77 |
.map((x) => ({
|
78 |
label: x.llm_name,
|
79 |
value: x.llm_name,
|
|
|
67 |
const groupOptionsByModelType = (modelType: LlmModelType) => {
|
68 |
return Object.entries(llmInfo)
|
69 |
.filter(([, value]) =>
|
70 |
+
modelType ? value.some((x) => x.model_type.includes(modelType)) : true,
|
71 |
)
|
72 |
.map(([key, value]) => {
|
73 |
return {
|
74 |
label: key,
|
75 |
options: value
|
76 |
+
.filter((x) =>
|
77 |
+
modelType ? x.model_type.includes(modelType) : true,
|
78 |
+
)
|
79 |
.map((x) => ({
|
80 |
label: x.llm_name,
|
81 |
value: x.llm_name,
|
web/src/hooks/logicHooks.ts
CHANGED
@@ -1,7 +1,11 @@
|
|
|
|
1 |
import { LanguageTranslationMap } from '@/constants/common';
|
2 |
import { Pagination } from '@/interfaces/common';
|
3 |
import { IKnowledgeFile } from '@/interfaces/database/knowledge';
|
4 |
import { IChangeParserConfigRequestBody } from '@/interfaces/request/document';
|
|
|
|
|
|
|
5 |
import { PaginationProps } from 'antd';
|
6 |
import axios from 'axios';
|
7 |
import { useCallback, useEffect, useMemo, useState } from 'react';
|
@@ -133,3 +137,63 @@ export const useFetchAppConf = () => {
|
|
133 |
|
134 |
return appConf;
|
135 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { Authorization } from '@/constants/authorization';
|
2 |
import { LanguageTranslationMap } from '@/constants/common';
|
3 |
import { Pagination } from '@/interfaces/common';
|
4 |
import { IKnowledgeFile } from '@/interfaces/database/knowledge';
|
5 |
import { IChangeParserConfigRequestBody } from '@/interfaces/request/document';
|
6 |
+
import api from '@/utils/api';
|
7 |
+
import authorizationUtil from '@/utils/authorizationUtil';
|
8 |
+
import { getSearchValue } from '@/utils/commonUtil';
|
9 |
import { PaginationProps } from 'antd';
|
10 |
import axios from 'axios';
|
11 |
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
|
137 |
|
138 |
return appConf;
|
139 |
};
|
140 |
+
|
141 |
+
export const useConnectWithSse = (url: string) => {
|
142 |
+
const [content, setContent] = useState<string>('');
|
143 |
+
|
144 |
+
const connect = useCallback(() => {
|
145 |
+
const source = new EventSource(
|
146 |
+
url || '/sse/createSseEmitter?clientId=123456',
|
147 |
+
);
|
148 |
+
|
149 |
+
source.onopen = function () {
|
150 |
+
console.log('Connection to the server was opened.');
|
151 |
+
};
|
152 |
+
|
153 |
+
source.onmessage = function (event: any) {
|
154 |
+
setContent(event.data);
|
155 |
+
};
|
156 |
+
|
157 |
+
source.onerror = function (error) {
|
158 |
+
console.error('Error occurred:', error);
|
159 |
+
};
|
160 |
+
}, [url]);
|
161 |
+
|
162 |
+
return { connect, content };
|
163 |
+
};
|
164 |
+
|
165 |
+
export const useConnectWithSseNext = () => {
|
166 |
+
const [content, setContent] = useState<string>('');
|
167 |
+
const sharedId = getSearchValue('shared_id');
|
168 |
+
const authorization = sharedId
|
169 |
+
? 'Bearer ' + sharedId
|
170 |
+
: authorizationUtil.getAuthorization();
|
171 |
+
const send = useCallback(
|
172 |
+
async (body: any) => {
|
173 |
+
const response = await fetch(api.completeConversation, {
|
174 |
+
method: 'POST',
|
175 |
+
headers: {
|
176 |
+
[Authorization]: authorization,
|
177 |
+
'Content-Type': 'application/json',
|
178 |
+
},
|
179 |
+
body: JSON.stringify(body),
|
180 |
+
});
|
181 |
+
const reader = response?.body
|
182 |
+
?.pipeThrough(new TextDecoderStream())
|
183 |
+
.getReader();
|
184 |
+
|
185 |
+
// const reader = response.body.getReader();
|
186 |
+
|
187 |
+
while (true) {
|
188 |
+
const { value, done } = await reader?.read();
|
189 |
+
console.log('Received', value);
|
190 |
+
setContent(value);
|
191 |
+
if (done) break;
|
192 |
+
}
|
193 |
+
return response;
|
194 |
+
},
|
195 |
+
[authorization],
|
196 |
+
);
|
197 |
+
|
198 |
+
return { send, content };
|
199 |
+
};
|
web/src/pages/chat/hooks.ts
CHANGED
@@ -518,6 +518,7 @@ export const useSendMessage = (
|
|
518 |
const completeConversation = useCompleteConversation();
|
519 |
|
520 |
const { handleClickConversation } = useClickConversationCard();
|
|
|
521 |
|
522 |
const sendMessage = useCallback(
|
523 |
async (message: string, id?: string) => {
|
|
|
518 |
const completeConversation = useCompleteConversation();
|
519 |
|
520 |
const { handleClickConversation } = useClickConversationCard();
|
521 |
+
// const { send } = useConnectWithSseNext();
|
522 |
|
523 |
const sendMessage = useCallback(
|
524 |
async (message: string, id?: string) => {
|