Spaces:
Sleeping
Sleeping
Upload 5 files
Browse files
app.py
CHANGED
@@ -1201,33 +1201,42 @@ def format_message(messages):
|
|
1201 |
|
1202 |
def extract_role(messages):
|
1203 |
role_map = {"user": "Human", "assistant": "Assistant", "system": "System"}
|
1204 |
-
prefix =
|
1205 |
first_message = messages[0]["content"]
|
1206 |
pattern = re.compile(
|
1207 |
r"""
|
1208 |
<roleInfo>\s*
|
1209 |
-
user:\s*(?P<user>[^\n]*)\s*
|
1210 |
-
assistant:\s*(?P<assistant>[^\n]*)\s*
|
1211 |
-
system:\s*(?P<system>[^\n]*)\s*
|
1212 |
-
prefix:\s*(?P<prefix>[^\n]*)\s*
|
1213 |
</roleInfo>\n
|
1214 |
""",
|
1215 |
re.VERBOSE,
|
1216 |
)
|
1217 |
match = pattern.search(first_message)
|
1218 |
if match:
|
1219 |
-
role_map
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1225 |
messages[0]["content"] = pattern.sub("", first_message)
|
1226 |
print(f"Extracted role map:")
|
1227 |
print(
|
1228 |
f"User: {role_map['user']}, Assistant: {role_map['assistant']}, System: {role_map['system']}"
|
1229 |
)
|
1230 |
-
print(f"Using prefix: {prefix}")
|
|
|
1231 |
return (role_map, prefix, messages)
|
1232 |
|
1233 |
|
|
|
1201 |
|
1202 |
def extract_role(messages):
|
1203 |
role_map = {"user": "Human", "assistant": "Assistant", "system": "System"}
|
1204 |
+
prefix = True # 默认添加前缀
|
1205 |
first_message = messages[0]["content"]
|
1206 |
pattern = re.compile(
|
1207 |
r"""
|
1208 |
<roleInfo>\s*
|
1209 |
+
(?:user:\s*(?P<user>[^\n]*)\s*)? # Make user optional
|
1210 |
+
(?:assistant:\s*(?P<assistant>[^\n]*)\s*)? # Make assistant optional
|
1211 |
+
(?:system:\s*(?P<system>[^\n]*)\s*)? # Make system optional
|
1212 |
+
(?:prefix:\s*(?P<prefix>[^\n]*)\s*)? # Make prefix optional
|
1213 |
</roleInfo>\n
|
1214 |
""",
|
1215 |
re.VERBOSE,
|
1216 |
)
|
1217 |
match = pattern.search(first_message)
|
1218 |
if match:
|
1219 |
+
# 更新 role_map 如果提供了值
|
1220 |
+
user_role = match.group("user")
|
1221 |
+
assistant_role = match.group("assistant")
|
1222 |
+
system_role = match.group("system")
|
1223 |
+
if user_role: role_map["user"] = user_role
|
1224 |
+
if assistant_role: role_map["assistant"] = assistant_role
|
1225 |
+
if system_role: role_map["system"] = system_role
|
1226 |
+
|
1227 |
+
# 检查 prefix 值:仅当显式设置为非 "1" 时才将 prefix 设为 False
|
1228 |
+
prefix_value = match.group("prefix")
|
1229 |
+
if prefix_value is not None and prefix_value != "1":
|
1230 |
+
prefix = False
|
1231 |
+
# 如果 prefix_value 是 None (标签不存在) 或 "1", prefix 保持 True
|
1232 |
+
|
1233 |
messages[0]["content"] = pattern.sub("", first_message)
|
1234 |
print(f"Extracted role map:")
|
1235 |
print(
|
1236 |
f"User: {role_map['user']}, Assistant: {role_map['assistant']}, System: {role_map['system']}"
|
1237 |
)
|
1238 |
+
print(f"Using prefix: {prefix}") # 打印语句保持不变,反映最终结果
|
1239 |
+
# 如果没有匹配到 <roleInfo>,prefix 保持默认值 True
|
1240 |
return (role_map, prefix, messages)
|
1241 |
|
1242 |
|