fix: add model_name to embed completion request (#15883) (#15888)

### What problem does this PR solve?

When embedding a chatbot, the API returned `"Model Name is required"`.
The embed widget now includes the assistant's `llm_id` as `model_name`
in the completion request.

### Type of change

- [x] Bug Fix

### How has this been tested?

- Created a chatbot with a default model.
- Embedded it and sent a message – the error is gone and the assistant
replies correctly.

### Related Issue

Closes #15883

Co-authored-by: RAGFlow Dev <dev@ragflow.local>
Co-authored-by: Wang Qi <wangq8@outlook.com>
This commit is contained in:
zaviermeekz-cpu
2026-06-11 02:38:37 -04:00
committed by GitHub
parent 5d3f8bbf32
commit a1dc2da7b4
3 changed files with 7 additions and 1 deletions

View File

@@ -149,6 +149,7 @@ async def chatbots_inputs(dialog_id, tenant_id=None):
"avatar": dialog.icon,
"prologue": dialog.prompt_config.get("prologue", ""),
"has_tavily_key": bool(dialog.prompt_config.get("tavily_api_key", "").strip()),
"llm_id": dialog.llm_id or "",
}
)

View File

@@ -202,6 +202,7 @@ export interface IExternalChatInfo {
title: string;
prologue?: string;
has_tavily_key?: boolean;
llm_id?: string;
}
export interface IMessage extends Message {

View File

@@ -6,6 +6,7 @@ import {
useSelectDerivedMessages,
useSendMessageWithSse,
} from '@/hooks/logic-hooks';
import { useFetchExternalChatInfo } from '@/hooks/use-chat-request';
import { Message } from '@/interfaces/database/chat';
import { get } from 'lodash';
import trim from 'lodash/trim';
@@ -48,6 +49,7 @@ export const useSendSharedMessage = () => {
} = useGetSharedChatSearchParams();
const { handleInputChange, value, setValue } = useHandleMessageInputChange();
const completionUrl = `/api/v1/${from === SharedFrom.Agent ? 'agentbots' : 'chatbots'}/${conversationId}/completions`;
const { data: chatInfo } = useFetchExternalChatInfo();
const { send, answer, done, stopOutputMessage } = useSendMessageWithSse();
const {
derivedMessages,
@@ -75,6 +77,7 @@ export const useSendSharedMessage = () => {
session_id: get(derivedMessages, '0.session_id'),
reasoning: enableThinking,
internet: enableInternet,
...(chatInfo?.llm_id ? { model_name: chatInfo.llm_id } : {}),
});
if (isCompletionError(res)) {
@@ -90,6 +93,7 @@ export const useSendSharedMessage = () => {
derivedMessages,
setValue,
removeLatestMessage,
chatInfo,
],
);
@@ -108,7 +112,7 @@ export const useSendSharedMessage = () => {
const payload = { question: '' };
const ret = await send(completionUrl, { ...payload, ...data });
if (isCompletionError(ret)) {
message.error(ret?.data.message);
message.error(ret?.data.message ?? 'Unknown error');
setHasError(true);
}
}, [send, completionUrl]);