update modeling.py
Browse files- modeling_qwen.py +10 -3
modeling_qwen.py
CHANGED
@@ -3,6 +3,7 @@
|
|
3 |
# This source code is licensed under the license found in the
|
4 |
# LICENSE file in the root directory of this source tree.
|
5 |
|
|
|
6 |
import importlib
|
7 |
import math
|
8 |
from typing import TYPE_CHECKING, Optional, Tuple, Union, Callable, List, Any, Generator
|
@@ -1177,7 +1178,6 @@ class QWenLMHeadModel(QWenPreTrainedModel):
|
|
1177 |
query: str,
|
1178 |
history: Optional[HistoryType],
|
1179 |
system: str = "You are a helpful assistant.",
|
1180 |
-
append_history: bool = True,
|
1181 |
stream: Optional[bool] = _SENTINEL,
|
1182 |
stop_words_ids: Optional[List[List[int]]] = None,
|
1183 |
generation_config: Optional[GenerationConfig] = None,
|
@@ -1189,6 +1189,10 @@ class QWenLMHeadModel(QWenPreTrainedModel):
|
|
1189 |
assert generation_config.chat_format == 'chatml', _ERROR_BAD_CHAT_FORMAT
|
1190 |
if history is None:
|
1191 |
history = []
|
|
|
|
|
|
|
|
|
1192 |
if stop_words_ids is None:
|
1193 |
stop_words_ids = []
|
1194 |
|
@@ -1226,8 +1230,11 @@ class QWenLMHeadModel(QWenPreTrainedModel):
|
|
1226 |
errors='replace'
|
1227 |
)
|
1228 |
|
1229 |
-
|
1230 |
-
|
|
|
|
|
|
|
1231 |
|
1232 |
return response, history
|
1233 |
|
|
|
3 |
# This source code is licensed under the license found in the
|
4 |
# LICENSE file in the root directory of this source tree.
|
5 |
|
6 |
+
import copy
|
7 |
import importlib
|
8 |
import math
|
9 |
from typing import TYPE_CHECKING, Optional, Tuple, Union, Callable, List, Any, Generator
|
|
|
1178 |
query: str,
|
1179 |
history: Optional[HistoryType],
|
1180 |
system: str = "You are a helpful assistant.",
|
|
|
1181 |
stream: Optional[bool] = _SENTINEL,
|
1182 |
stop_words_ids: Optional[List[List[int]]] = None,
|
1183 |
generation_config: Optional[GenerationConfig] = None,
|
|
|
1189 |
assert generation_config.chat_format == 'chatml', _ERROR_BAD_CHAT_FORMAT
|
1190 |
if history is None:
|
1191 |
history = []
|
1192 |
+
else:
|
1193 |
+
# make a copy of the user's input such that is is left untouched
|
1194 |
+
history = copy.deepcopy(history)
|
1195 |
+
|
1196 |
if stop_words_ids is None:
|
1197 |
stop_words_ids = []
|
1198 |
|
|
|
1230 |
errors='replace'
|
1231 |
)
|
1232 |
|
1233 |
+
# as history is a copy of the user inputs,
|
1234 |
+
# we can always return the new turn to the user.
|
1235 |
+
# separating input history and output history also enables the user
|
1236 |
+
# to implement more complex history management
|
1237 |
+
history.append((query, response))
|
1238 |
|
1239 |
return response, history
|
1240 |
|