feat: 优化对话服务和RAG功能

更新内容:
- 优化conversation_service.rs对话服务逻辑
- 改进gemini_service.rs API集成
- 更新ChatInterface组件用户体验
- 优化MultiTurnChatTest多轮对话测试
- 改进MultiTurnRagChatTest RAG对话测试
- 更新conversationService前端服务

功能改进:
- 支持maxHistoryMessages历史消息数量控制
- 优化对话上下文管理
- 改进RAG检索和对话集成
- 提升多轮对话的稳定性和准确性

这些更新提升了AI对话功能的整体性能和用户体验
This commit is contained in:
imeepos 2025-07-23 21:14:17 +08:00
parent 63014471b4
commit 5a60fb8c04
6 changed files with 7 additions and 7 deletions

View File

@ -88,7 +88,7 @@ impl ConversationService {
// 3. 获取历史消息(如果需要)
let history_messages = if request.include_history.unwrap_or(true) {
let max_messages = request.max_history_messages.unwrap_or(20);
let max_messages = request.max_history_messages.unwrap_or(1);
let history = self.repository.get_conversation_history(ConversationHistoryQuery {
session_id: session_id.clone(),
limit: Some(max_messages),

View File

@ -1115,7 +1115,7 @@ impl GeminiService {
if let (Some(repo), true) = (&conversation_repo, request.include_history.unwrap_or(false)) {
println!("📚 开始获取历史消息...");
println!("🔄 调用get_conversation_history方法...");
match self.get_conversation_history(&repo, &session_id, request.max_history_messages.unwrap_or(10)).await {
match self.get_conversation_history(&repo, &session_id, request.max_history_messages.unwrap_or(1)).await {
Ok(history_messages) => {
conversation_context.total_messages = history_messages.len() as u32;
conversation_context.history_included = true;

View File

@ -182,7 +182,7 @@ export const ChatInterface: React.FC<ChatInterfaceProps> = ({
includeMetadata: showSources,
timeout: 30000,
includeHistory: true,
maxHistoryMessages: 7
maxHistoryMessages: 1
};
const result = await queryRagGrounding(userMessage.content, options);

View File

@ -16,7 +16,7 @@ export const MultiTurnChatTest: React.FC = () => {
const [error, setError] = useState<string | null>(null);
const [sessionId, setSessionId] = useState<string | null>(null);
const [showHistory, setShowHistory] = useState(true);
const [maxHistoryMessages, setMaxHistoryMessages] = useState(10);
const [maxHistoryMessages, setMaxHistoryMessages] = useState(1);
const messagesEndRef = useRef<HTMLDivElement>(null);

View File

@ -32,7 +32,7 @@ export const MultiTurnRagChatTest: React.FC = () => {
const [error, setError] = useState<string | null>(null);
const [sessionId, setSessionId] = useState<string | null>(null);
const [showHistory, setShowHistory] = useState(true);
const [maxHistoryMessages, setMaxHistoryMessages] = useState(10);
const [maxHistoryMessages, setMaxHistoryMessages] = useState(1);
const [systemPrompt, setSystemPrompt] = useState('你是一个专业的服装搭配顾问,基于检索到的相关信息为用户提供准确、实用的搭配建议。');
const [showGroundingSources, setShowGroundingSources] = useState(true);
@ -179,7 +179,7 @@ export const MultiTurnRagChatTest: React.FC = () => {
<input
type="number"
value={maxHistoryMessages}
onChange={(e) => setMaxHistoryMessages(parseInt(e.target.value) || 10)}
onChange={(e) => setMaxHistoryMessages(parseInt(e.target.value) || 1)}
min="1"
max="50"
className="w-16 px-2 py-1 border rounded"

View File

@ -256,7 +256,7 @@ export class MultiTurnConversationHelper {
session_id: sessionId,
user_message: userMessage,
include_history: options?.includeHistory ?? true,
max_history_messages: options?.maxHistoryMessages ?? 20,
max_history_messages: options?.maxHistoryMessages ?? 1,
system_prompt: options?.systemPrompt,
};
}