chore: completion payload format

This commit is contained in:
jialin
2024-10-25 12:15:26 +08:00
parent 870ffa9dc1
commit ba49fa6c88
8 changed files with 105 additions and 104 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ const isProduction = env === 'production';
const t = Date.now();
export default defineConfig({
proxy: {
...proxy()
...proxy('http://192.168.50.3')
},
history: {
type: 'hash'
+5 -2
View File
@@ -8,8 +8,11 @@
z-index: 100;
button {
background-color: rgba(255, 255, 255, 90%);
border: none;
color: rgba(255, 255, 255, 70%);
&:hover {
color: rgba(255, 255, 255, 90%) !important;
}
}
}
+1 -1
View File
@@ -123,7 +123,7 @@ const LogsViewer: React.FC<LogsViewerProps> = (props) => {
<span className="copy">
<CopyButton
text={logs?.map((item) => item.content).join('\n')}
type="default"
type="text"
size="small"
></CopyButton>
</span>
+6 -3
View File
@@ -10,7 +10,8 @@ const VersionInfo: React.FC<{ intl: any }> = ({ intl }) => {
const latestVersion = getAtomStorage(UpdateCheckAtom).latest_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');
@@ -38,7 +39,9 @@ const VersionInfo: React.FC<{ intl: any }> = ({ intl }) => {
{' '}
{intl.formatMessage({ id: 'common.footer.version.server' })}
</span>
{getAtomStorage(GPUStackVersionAtom)?.git_commit}
{currentVersion === '0.0.0'
? getAtomStorage(GPUStackVersionAtom)?.git_commit
: getAtomStorage(GPUStackVersionAtom)?.version}
</span>
<span className="item">
<span className="tl">UI</span>
@@ -47,7 +50,7 @@ const VersionInfo: React.FC<{ intl: any }> = ({ intl }) => {
</span>
)}
</div>
{getAtomStorage(userAtom)?.is_admin && (
{getAtomStorage(userAtom)?.is_admin && isProd && (
<div className="upgrade">
<span className="m-l-5">
{latestVersion &&
+14 -43
View File
@@ -14,7 +14,7 @@ import {
useState
} from 'react';
import { CHAT_API } from '../apis';
import { Roles, formatMessageParams } from '../config';
import { Roles, generateMessages } from '../config';
import { MessageItem } from '../config/types';
import '../style/ground-left.less';
import '../style/system-message-wrap.less';
@@ -134,52 +134,23 @@ const GroundLeft: React.FC<MessageProps> = forwardRef((props, ref) => {
setMessageList((pre) => {
return [...pre, ...currentMessageRef.current];
});
const formatMessages = _.map(
[...messageList, ...currentMessageRef.current],
(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
? [
{
role: Roles.System,
content: [
{
type: 'text',
text: systemMessage
}
]
},
...formatMessages
]
: [...formatMessages];
console.log('messageList:', [
...messageList,
...currentMessageRef.current
]);
const finalMessageParams = formatMessageParams(messageParams);
const messageParams = [
{ role: Roles.System, content: systemMessage },
...messageList,
...currentMessageRef.current
];
setViewCodeMessage(finalMessageParams);
const messages = generateMessages(messageParams);
setViewCodeMessage(messages);
const chatParams = {
messages: finalMessageParams,
messages: messages,
...parameters,
stream: true,
stream_options: {
@@ -340,10 +340,12 @@ const MessageInput: React.FC<MessageInputProps> = ({
{intl.formatMessage({ id: `playground.${message.role}` })}
</Button>
<Divider type="vertical" style={{ margin: 0 }} />
<UploadImg
handleUpdateImgList={handleUpdateImgList}
size="middle"
></UploadImg>
{message.role === Roles.User && (
<UploadImg
handleUpdateImgList={handleUpdateImgList}
size="middle"
></UploadImg>
)}
</>
)}
<Tooltip
@@ -24,7 +24,7 @@ import React, {
} from 'react';
import 'simplebar-react/dist/simplebar.min.css';
import { CHAT_API } from '../../apis';
import { Roles, formatMessageParams } from '../../config';
import { Roles, generateMessages } from '../../config';
import CompareContext from '../../config/compare-context';
import { MessageItem, ModelSelectionItem } from '../../config/types';
import '../../style/model-item.less';
@@ -123,63 +123,22 @@ const ModelItem: React.FC<ModelItemProps> = forwardRef(
setMessageList((preList) => {
return [...preList, ...currentMessageRef.current];
});
const messages = _.map(
[...messageList, ...currentMessageRef.current],
(item: MessageItem) => {
return {
role: item.role,
content: item.content,
imgs: item.imgs || []
};
}
);
contentRef.current = '';
// ====== 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
? [
{
role: Roles.System,
content: [
{
type: 'text',
text: systemMessage
}
]
},
...formatMessages
]
: [...formatMessages];
const messageParams = [
{ role: Roles.System, content: systemMessage },
...messageList,
...currentMessageRef.current
];
const finalMessageParams = formatMessageParams(messageParams);
const messages = generateMessages(messageParams);
setViewCodeMessage(finalMessageParams);
setViewCodeMessage(messages);
const chatParams = {
messages: finalMessageParams,
messages: messages,
...params,
stream: true,
stream_options: {
+63
View File
@@ -1,3 +1,6 @@
import { map } from 'lodash';
import { MessageItem } from './types';
export const Roles = {
User: 'user',
Assistant: 'assistant',
@@ -40,3 +43,63 @@ export const formatMessageParams = (messageList: any[]) => {
});
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;
};