chore: completion payload format
This commit is contained in:
+1
-1
@@ -14,7 +14,7 @@ const isProduction = env === 'production';
|
|||||||
const t = Date.now();
|
const t = Date.now();
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
proxy: {
|
proxy: {
|
||||||
...proxy()
|
...proxy('http://192.168.50.3')
|
||||||
},
|
},
|
||||||
history: {
|
history: {
|
||||||
type: 'hash'
|
type: 'hash'
|
||||||
|
|||||||
@@ -8,8 +8,11 @@
|
|||||||
z-index: 100;
|
z-index: 100;
|
||||||
|
|
||||||
button {
|
button {
|
||||||
background-color: rgba(255, 255, 255, 90%);
|
color: rgba(255, 255, 255, 70%);
|
||||||
border: none;
|
|
||||||
|
&:hover {
|
||||||
|
color: rgba(255, 255, 255, 90%) !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ const LogsViewer: React.FC<LogsViewerProps> = (props) => {
|
|||||||
<span className="copy">
|
<span className="copy">
|
||||||
<CopyButton
|
<CopyButton
|
||||||
text={logs?.map((item) => item.content).join('\n')}
|
text={logs?.map((item) => item.content).join('\n')}
|
||||||
type="default"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
></CopyButton>
|
></CopyButton>
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ const VersionInfo: React.FC<{ intl: any }> = ({ intl }) => {
|
|||||||
const latestVersion = getAtomStorage(UpdateCheckAtom).latest_version;
|
const latestVersion = getAtomStorage(UpdateCheckAtom).latest_version;
|
||||||
const currentVersion = getAtomStorage(GPUStackVersionAtom)?.version;
|
const currentVersion = getAtomStorage(GPUStackVersionAtom)?.version;
|
||||||
|
|
||||||
const isProd = currentVersion !== '0.0.0';
|
const isProd =
|
||||||
|
currentVersion !== '0.0.0' && currentVersion.indexOf('rc') === -1;
|
||||||
|
|
||||||
const uiVersion = document.documentElement.getAttribute('data-version');
|
const uiVersion = document.documentElement.getAttribute('data-version');
|
||||||
|
|
||||||
@@ -38,7 +39,9 @@ const VersionInfo: React.FC<{ intl: any }> = ({ intl }) => {
|
|||||||
{' '}
|
{' '}
|
||||||
{intl.formatMessage({ id: 'common.footer.version.server' })}
|
{intl.formatMessage({ id: 'common.footer.version.server' })}
|
||||||
</span>
|
</span>
|
||||||
{getAtomStorage(GPUStackVersionAtom)?.git_commit}
|
{currentVersion === '0.0.0'
|
||||||
|
? getAtomStorage(GPUStackVersionAtom)?.git_commit
|
||||||
|
: getAtomStorage(GPUStackVersionAtom)?.version}
|
||||||
</span>
|
</span>
|
||||||
<span className="item">
|
<span className="item">
|
||||||
<span className="tl">UI</span>
|
<span className="tl">UI</span>
|
||||||
@@ -47,7 +50,7 @@ const VersionInfo: React.FC<{ intl: any }> = ({ intl }) => {
|
|||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
{getAtomStorage(userAtom)?.is_admin && (
|
{getAtomStorage(userAtom)?.is_admin && isProd && (
|
||||||
<div className="upgrade">
|
<div className="upgrade">
|
||||||
<span className="m-l-5">
|
<span className="m-l-5">
|
||||||
{latestVersion &&
|
{latestVersion &&
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import {
|
|||||||
useState
|
useState
|
||||||
} from 'react';
|
} from 'react';
|
||||||
import { CHAT_API } from '../apis';
|
import { CHAT_API } from '../apis';
|
||||||
import { Roles, formatMessageParams } from '../config';
|
import { Roles, generateMessages } from '../config';
|
||||||
import { MessageItem } from '../config/types';
|
import { MessageItem } from '../config/types';
|
||||||
import '../style/ground-left.less';
|
import '../style/ground-left.less';
|
||||||
import '../style/system-message-wrap.less';
|
import '../style/system-message-wrap.less';
|
||||||
@@ -134,52 +134,23 @@ const GroundLeft: React.FC<MessageProps> = forwardRef((props, ref) => {
|
|||||||
setMessageList((pre) => {
|
setMessageList((pre) => {
|
||||||
return [...pre, ...currentMessageRef.current];
|
return [...pre, ...currentMessageRef.current];
|
||||||
});
|
});
|
||||||
const formatMessages = _.map(
|
console.log('messageList:', [
|
||||||
[...messageList, ...currentMessageRef.current],
|
...messageList,
|
||||||
(item: MessageItem) => {
|
...currentMessageRef.current
|
||||||
return {
|
]);
|
||||||
role: item.role,
|
|
||||||
content: [
|
|
||||||
{
|
|
||||||
type: 'text',
|
|
||||||
text: item.content
|
|
||||||
},
|
|
||||||
..._.map(
|
|
||||||
item.imgs,
|
|
||||||
(img: { uid: string | number; dataUrl: string }) => {
|
|
||||||
return {
|
|
||||||
type: 'image_url',
|
|
||||||
image_url: {
|
|
||||||
url: img.dataUrl
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
]
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
const messageParams = systemMessage
|
|
||||||
? [
|
|
||||||
{
|
|
||||||
role: Roles.System,
|
|
||||||
content: [
|
|
||||||
{
|
|
||||||
type: 'text',
|
|
||||||
text: systemMessage
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
...formatMessages
|
|
||||||
]
|
|
||||||
: [...formatMessages];
|
|
||||||
|
|
||||||
const finalMessageParams = formatMessageParams(messageParams);
|
const messageParams = [
|
||||||
|
{ role: Roles.System, content: systemMessage },
|
||||||
|
...messageList,
|
||||||
|
...currentMessageRef.current
|
||||||
|
];
|
||||||
|
|
||||||
setViewCodeMessage(finalMessageParams);
|
const messages = generateMessages(messageParams);
|
||||||
|
|
||||||
|
setViewCodeMessage(messages);
|
||||||
|
|
||||||
const chatParams = {
|
const chatParams = {
|
||||||
messages: finalMessageParams,
|
messages: messages,
|
||||||
...parameters,
|
...parameters,
|
||||||
stream: true,
|
stream: true,
|
||||||
stream_options: {
|
stream_options: {
|
||||||
|
|||||||
@@ -340,10 +340,12 @@ const MessageInput: React.FC<MessageInputProps> = ({
|
|||||||
{intl.formatMessage({ id: `playground.${message.role}` })}
|
{intl.formatMessage({ id: `playground.${message.role}` })}
|
||||||
</Button>
|
</Button>
|
||||||
<Divider type="vertical" style={{ margin: 0 }} />
|
<Divider type="vertical" style={{ margin: 0 }} />
|
||||||
<UploadImg
|
{message.role === Roles.User && (
|
||||||
handleUpdateImgList={handleUpdateImgList}
|
<UploadImg
|
||||||
size="middle"
|
handleUpdateImgList={handleUpdateImgList}
|
||||||
></UploadImg>
|
size="middle"
|
||||||
|
></UploadImg>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
<Tooltip
|
<Tooltip
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import React, {
|
|||||||
} from 'react';
|
} from 'react';
|
||||||
import 'simplebar-react/dist/simplebar.min.css';
|
import 'simplebar-react/dist/simplebar.min.css';
|
||||||
import { CHAT_API } from '../../apis';
|
import { CHAT_API } from '../../apis';
|
||||||
import { Roles, formatMessageParams } from '../../config';
|
import { Roles, generateMessages } from '../../config';
|
||||||
import CompareContext from '../../config/compare-context';
|
import CompareContext from '../../config/compare-context';
|
||||||
import { MessageItem, ModelSelectionItem } from '../../config/types';
|
import { MessageItem, ModelSelectionItem } from '../../config/types';
|
||||||
import '../../style/model-item.less';
|
import '../../style/model-item.less';
|
||||||
@@ -123,63 +123,22 @@ const ModelItem: React.FC<ModelItemProps> = forwardRef(
|
|||||||
setMessageList((preList) => {
|
setMessageList((preList) => {
|
||||||
return [...preList, ...currentMessageRef.current];
|
return [...preList, ...currentMessageRef.current];
|
||||||
});
|
});
|
||||||
const messages = _.map(
|
|
||||||
[...messageList, ...currentMessageRef.current],
|
|
||||||
(item: MessageItem) => {
|
|
||||||
return {
|
|
||||||
role: item.role,
|
|
||||||
content: item.content,
|
|
||||||
imgs: item.imgs || []
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
contentRef.current = '';
|
contentRef.current = '';
|
||||||
// ====== payload =================
|
// ====== payload =================
|
||||||
const formatMessages = _.map(messages, (item: MessageItem) => {
|
|
||||||
return {
|
|
||||||
role: item.role,
|
|
||||||
content: [
|
|
||||||
{
|
|
||||||
type: 'text',
|
|
||||||
text: item.content
|
|
||||||
},
|
|
||||||
..._.map(
|
|
||||||
item.imgs,
|
|
||||||
(img: { uid: string | number; dataUrl: string }) => {
|
|
||||||
return {
|
|
||||||
type: 'image_url',
|
|
||||||
image_url: {
|
|
||||||
url: img.dataUrl
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
]
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
const messageParams = systemMessage
|
const messageParams = [
|
||||||
? [
|
{ role: Roles.System, content: systemMessage },
|
||||||
{
|
...messageList,
|
||||||
role: Roles.System,
|
...currentMessageRef.current
|
||||||
content: [
|
];
|
||||||
{
|
|
||||||
type: 'text',
|
|
||||||
text: systemMessage
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
...formatMessages
|
|
||||||
]
|
|
||||||
: [...formatMessages];
|
|
||||||
|
|
||||||
const finalMessageParams = formatMessageParams(messageParams);
|
const messages = generateMessages(messageParams);
|
||||||
|
|
||||||
setViewCodeMessage(finalMessageParams);
|
setViewCodeMessage(messages);
|
||||||
|
|
||||||
const chatParams = {
|
const chatParams = {
|
||||||
messages: finalMessageParams,
|
messages: messages,
|
||||||
...params,
|
...params,
|
||||||
stream: true,
|
stream: true,
|
||||||
stream_options: {
|
stream_options: {
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
import { map } from 'lodash';
|
||||||
|
import { MessageItem } from './types';
|
||||||
|
|
||||||
export const Roles = {
|
export const Roles = {
|
||||||
User: 'user',
|
User: 'user',
|
||||||
Assistant: 'assistant',
|
Assistant: 'assistant',
|
||||||
@@ -40,3 +43,63 @@ export const formatMessageParams = (messageList: any[]) => {
|
|||||||
});
|
});
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const generateMessagesByListContent = (messageList: any[]) => {
|
||||||
|
if (!messageList.length) return [];
|
||||||
|
|
||||||
|
return messageList.map((item: MessageItem) => {
|
||||||
|
const content = map(
|
||||||
|
item.imgs,
|
||||||
|
(img: { uid: string | number; dataUrl: string }) => {
|
||||||
|
return {
|
||||||
|
type: 'image_url',
|
||||||
|
image_url: {
|
||||||
|
url: img.dataUrl
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
if (item.content) {
|
||||||
|
content.push({
|
||||||
|
type: 'text',
|
||||||
|
text: item.content
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
role: item.role,
|
||||||
|
content: content
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const generateMessages = (messageList: Omit<MessageItem, 'uid'>[]) => {
|
||||||
|
if (!messageList.length) return [];
|
||||||
|
|
||||||
|
const result: any[] = [];
|
||||||
|
|
||||||
|
messageList.forEach((item: Omit<MessageItem, 'uid'>) => {
|
||||||
|
if (item.imgs?.length) {
|
||||||
|
const imgList = item.imgs.map((img) => {
|
||||||
|
return {
|
||||||
|
type: 'image_url',
|
||||||
|
image_url: {
|
||||||
|
url: img.dataUrl
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
result.push({
|
||||||
|
role: item.role,
|
||||||
|
content: imgList
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (item.content) {
|
||||||
|
result.push({
|
||||||
|
role: item.role,
|
||||||
|
content: item.content
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user