mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
### What problem does this PR solve? feat: support GPT-4o #771 ### Type of change - [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
@ -30,8 +30,10 @@ export default defineConfig({
|
|||||||
copy: ['src/conf.json'],
|
copy: ['src/conf.json'],
|
||||||
proxy: {
|
proxy: {
|
||||||
'/v1': {
|
'/v1': {
|
||||||
target: 'http://123.60.95.134:9380/',
|
target: '',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
|
ws: true,
|
||||||
|
logger: console,
|
||||||
// pathRewrite: { '^/v1': '/v1' },
|
// pathRewrite: { '^/v1': '/v1' },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
3640
web/package-lock.json
generated
3640
web/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -3,7 +3,7 @@
|
|||||||
"author": "zhaofengchao <13723060510@163.com>",
|
"author": "zhaofengchao <13723060510@163.com>",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "umi build",
|
"build": "umi build",
|
||||||
"dev": "cross-env PORT=9200 umi dev",
|
"dev": "cross-env PORT=9200 UMI_DEV_SERVER_COMPRESS=none umi dev",
|
||||||
"postinstall": "umi setup",
|
"postinstall": "umi setup",
|
||||||
"lint": "umi lint --eslint-only",
|
"lint": "umi lint --eslint-only",
|
||||||
"setup": "umi setup",
|
"setup": "umi setup",
|
||||||
|
|||||||
@ -67,13 +67,15 @@ export const useSelectLlmOptionsByModelType = () => {
|
|||||||
const groupOptionsByModelType = (modelType: LlmModelType) => {
|
const groupOptionsByModelType = (modelType: LlmModelType) => {
|
||||||
return Object.entries(llmInfo)
|
return Object.entries(llmInfo)
|
||||||
.filter(([, value]) =>
|
.filter(([, value]) =>
|
||||||
modelType ? value.some((x) => x.model_type === modelType) : true,
|
modelType ? value.some((x) => x.model_type.includes(modelType)) : true,
|
||||||
)
|
)
|
||||||
.map(([key, value]) => {
|
.map(([key, value]) => {
|
||||||
return {
|
return {
|
||||||
label: key,
|
label: key,
|
||||||
options: value
|
options: value
|
||||||
.filter((x) => (modelType ? x.model_type === modelType : true))
|
.filter((x) =>
|
||||||
|
modelType ? x.model_type.includes(modelType) : true,
|
||||||
|
)
|
||||||
.map((x) => ({
|
.map((x) => ({
|
||||||
label: x.llm_name,
|
label: x.llm_name,
|
||||||
value: x.llm_name,
|
value: x.llm_name,
|
||||||
|
|||||||
@ -1,7 +1,11 @@
|
|||||||
|
import { Authorization } from '@/constants/authorization';
|
||||||
import { LanguageTranslationMap } from '@/constants/common';
|
import { LanguageTranslationMap } from '@/constants/common';
|
||||||
import { Pagination } from '@/interfaces/common';
|
import { Pagination } from '@/interfaces/common';
|
||||||
import { IKnowledgeFile } from '@/interfaces/database/knowledge';
|
import { IKnowledgeFile } from '@/interfaces/database/knowledge';
|
||||||
import { IChangeParserConfigRequestBody } from '@/interfaces/request/document';
|
import { IChangeParserConfigRequestBody } from '@/interfaces/request/document';
|
||||||
|
import api from '@/utils/api';
|
||||||
|
import authorizationUtil from '@/utils/authorizationUtil';
|
||||||
|
import { getSearchValue } from '@/utils/commonUtil';
|
||||||
import { PaginationProps } from 'antd';
|
import { PaginationProps } from 'antd';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { useCallback, useEffect, useMemo, useState } from 'react';
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
||||||
@ -133,3 +137,63 @@ export const useFetchAppConf = () => {
|
|||||||
|
|
||||||
return appConf;
|
return appConf;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const useConnectWithSse = (url: string) => {
|
||||||
|
const [content, setContent] = useState<string>('');
|
||||||
|
|
||||||
|
const connect = useCallback(() => {
|
||||||
|
const source = new EventSource(
|
||||||
|
url || '/sse/createSseEmitter?clientId=123456',
|
||||||
|
);
|
||||||
|
|
||||||
|
source.onopen = function () {
|
||||||
|
console.log('Connection to the server was opened.');
|
||||||
|
};
|
||||||
|
|
||||||
|
source.onmessage = function (event: any) {
|
||||||
|
setContent(event.data);
|
||||||
|
};
|
||||||
|
|
||||||
|
source.onerror = function (error) {
|
||||||
|
console.error('Error occurred:', error);
|
||||||
|
};
|
||||||
|
}, [url]);
|
||||||
|
|
||||||
|
return { connect, content };
|
||||||
|
};
|
||||||
|
|
||||||
|
export const useConnectWithSseNext = () => {
|
||||||
|
const [content, setContent] = useState<string>('');
|
||||||
|
const sharedId = getSearchValue('shared_id');
|
||||||
|
const authorization = sharedId
|
||||||
|
? 'Bearer ' + sharedId
|
||||||
|
: authorizationUtil.getAuthorization();
|
||||||
|
const send = useCallback(
|
||||||
|
async (body: any) => {
|
||||||
|
const response = await fetch(api.completeConversation, {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
[Authorization]: authorization,
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
},
|
||||||
|
body: JSON.stringify(body),
|
||||||
|
});
|
||||||
|
const reader = response?.body
|
||||||
|
?.pipeThrough(new TextDecoderStream())
|
||||||
|
.getReader();
|
||||||
|
|
||||||
|
// const reader = response.body.getReader();
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
const { value, done } = await reader?.read();
|
||||||
|
console.log('Received', value);
|
||||||
|
setContent(value);
|
||||||
|
if (done) break;
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
},
|
||||||
|
[authorization],
|
||||||
|
);
|
||||||
|
|
||||||
|
return { send, content };
|
||||||
|
};
|
||||||
|
|||||||
@ -518,6 +518,7 @@ export const useSendMessage = (
|
|||||||
const completeConversation = useCompleteConversation();
|
const completeConversation = useCompleteConversation();
|
||||||
|
|
||||||
const { handleClickConversation } = useClickConversationCard();
|
const { handleClickConversation } = useClickConversationCard();
|
||||||
|
// const { send } = useConnectWithSseNext();
|
||||||
|
|
||||||
const sendMessage = useCallback(
|
const sendMessage = useCallback(
|
||||||
async (message: string, id?: string) => {
|
async (message: string, id?: string) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user