Commit 523a9374 by Archer Committed by GitHub

fix: make file url name optional (#6951)

parent d4996303
......@@ -76,7 +76,7 @@ export const ChatCompletionContentPartFileSchema = z.object({
// FastGPT 自定义扩展:外链文件
export const ChatCompletionContentPartFileTypeSchema = z.object({
type: z.literal('file_url'),
name: z.string(),
name: z.string().optional(),
url: z.string(),
key: z.string().optional()
});
......
......@@ -587,7 +587,7 @@ export const GPTMessages2Chats = ({
value.push({
file: {
type: ChatFileTypeEnum.file,
name: item.name,
name: item.name || '',
url: item.url,
key: item.key
}
......
......@@ -1581,6 +1581,22 @@ describe('GPTMessages2Chats', () => {
expect(fileValue.file?.name).toBe('document.pdf');
});
it('should convert user message with file_url content without name', () => {
const messages: ChatCompletionMessageParam[] = [
{
role: ChatCompletionRequestMessageRoleEnum.User,
content: [{ type: 'file_url', url: 'http://example.com/doc.pdf', key: 'key1' }]
}
];
const result = GPTMessages2Chats({ messages });
expect(result).toHaveLength(1);
const fileValue = result[0].value[0] as { file?: { type: string; name: string } };
expect(fileValue.file?.type).toBe(ChatFileTypeEnum.file);
expect(fileValue.file?.name).toBe('');
});
it('should convert system message with array content', () => {
const messages: ChatCompletionMessageParam[] = [
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment