@@ -143,7 +143,8 @@ def reset_message_list(message_list: List[BaseMessage], answer_text):
143
143
def get_stream_result (message_list : List [BaseMessage ],
144
144
chat_model : BaseChatModel = None ,
145
145
paragraph_list = None ,
146
- no_references_setting = None ):
146
+ no_references_setting = None ,
147
+ problem_text = None ):
147
148
if paragraph_list is None :
148
149
paragraph_list = []
149
150
directly_return_chunk_list = [AIMessageChunk (content = paragraph .content )
@@ -153,7 +154,8 @@ def get_stream_result(message_list: List[BaseMessage],
153
154
return iter (directly_return_chunk_list ), False
154
155
elif len (paragraph_list ) == 0 and no_references_setting .get (
155
156
'status' ) == 'designated_answer' :
156
- return iter ([AIMessageChunk (content = no_references_setting .get ('value' ))]), False
157
+ return iter (
158
+ [AIMessageChunk (content = no_references_setting .get ('value' ).replace ('{question}' , problem_text ))]), False
157
159
if chat_model is None :
158
160
return iter ([AIMessageChunk ('抱歉,没有配置 AI 模型,无法优化引用分段,请先去应用中设置 AI 模型。' )]), False
159
161
else :
@@ -170,7 +172,7 @@ def execute_stream(self, message_list: List[BaseMessage],
170
172
client_id = None , client_type = None ,
171
173
no_references_setting = None ):
172
174
chat_result , is_ai_chat = self .get_stream_result (message_list , chat_model , paragraph_list ,
173
- no_references_setting )
175
+ no_references_setting , problem_text )
174
176
chat_record_id = uuid .uuid1 ()
175
177
r = StreamingHttpResponse (
176
178
streaming_content = event_content (chat_result , chat_id , chat_record_id , paragraph_list ,
@@ -185,7 +187,8 @@ def execute_stream(self, message_list: List[BaseMessage],
185
187
def get_block_result (message_list : List [BaseMessage ],
186
188
chat_model : BaseChatModel = None ,
187
189
paragraph_list = None ,
188
- no_references_setting = None ):
190
+ no_references_setting = None ,
191
+ problem_text = None ):
189
192
if paragraph_list is None :
190
193
paragraph_list = []
191
194
@@ -196,7 +199,7 @@ def get_block_result(message_list: List[BaseMessage],
196
199
return directly_return_chunk_list [0 ], False
197
200
elif len (paragraph_list ) == 0 and no_references_setting .get (
198
201
'status' ) == 'designated_answer' :
199
- return AIMessage (no_references_setting .get ('value' )), False
202
+ return AIMessage (no_references_setting .get ('value' ). replace ( '{question}' , problem_text ) ), False
200
203
if chat_model is None :
201
204
return AIMessage ('抱歉,没有配置 AI 模型,无法优化引用分段,请先去应用中设置 AI 模型。' ), False
202
205
else :
@@ -215,7 +218,7 @@ def execute_block(self, message_list: List[BaseMessage],
215
218
# 调用模型
216
219
try :
217
220
chat_result , is_ai_chat = self .get_block_result (message_list , chat_model , paragraph_list ,
218
- no_references_setting )
221
+ no_references_setting , problem_text )
219
222
if is_ai_chat :
220
223
request_token = chat_model .get_num_tokens_from_messages (message_list )
221
224
response_token = chat_model .get_num_tokens (chat_result .content )
0 commit comments