Skip to content

Commit 31e84f4

Browse files
committed
*增加DeepSeek模型,适配推理过程 fix #64
*增加DeepSeek自动隐藏推理选项 *增加gpt-4.5-preview-2025-02-27、o3-mini-2025-01-31、o1 *增加gemini-2.0-flash-001、gemini-2.0-flash-lite-001、gemini-2.0-flash-exp、gemini-2.0-pro-exp-02-05 *增加claude-3-7-sonnet-20250219 *修复聊天页面添加图片图片异常显示
1 parent c4a68a7 commit 31e84f4

21 files changed

+1161
-40
lines changed

TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java

+58-5
Original file line numberDiff line numberDiff line change
@@ -5444,12 +5444,14 @@ public void generateLayout(TLRPC.User fromUser) {
54445444
//替换markdown样式
54455445
if (BuildVars.IS_CHAT_AIR && UserConfig.getInstance(currentAccount).renderMarkdown) {
54465446
//处理旋转导致messageText.toString()获取的为markdown已经处理文本格式
5447-
if (TextUtils.isEmpty(tempMessage)
5448-
|| (messageOwner.message != null && messageOwner.message.length() != messageLength)) {
5449-
tempMessage = messageText.toString();
5450-
messageLength = messageOwner.message.length();
5451-
}
5447+
5448+
processMessage(true);
5449+
54525450
messageText = replaceMarkdown(tempMessage, this.messageOwner);
5451+
} else if (messageOwner.reasoningMessage != null && !(messageOwner.reasoningMessage.isEmpty())) {
5452+
// 处理思考
5453+
processMessage(false);
5454+
messageText = tempMessage;
54535455
}
54545456

54555457
StaticLayout textLayout;
@@ -5700,6 +5702,57 @@ public void generateLayout(TLRPC.User fromUser) {
57005702
}
57015703
}
57025704

5705+
private void processMessage(boolean renderMarkdown) {
5706+
5707+
if (isReasoningMessage(messageOwner.reasoningMessage)
5708+
&& !isAutoHideReasoningMessage(messageOwner)) {
5709+
// 渲染思考以及正文
5710+
5711+
int count = 0;
5712+
5713+
if (messageOwner.message != null) {
5714+
count += messageOwner.message.length();
5715+
}
5716+
count += messageOwner.reasoningMessage.length();
5717+
5718+
if (TextUtils.isEmpty(tempMessage) || count != messageLength) {
5719+
5720+
tempMessage = SendMessagesHelper.getReasoningMessageContent(
5721+
messageOwner.reasoningMessage, messageOwner.message, renderMarkdown);
5722+
messageLength = count;
5723+
}
5724+
5725+
} else {
5726+
// 渲染正文
5727+
if (TextUtils.isEmpty(tempMessage) || messageOwner.message != null && messageOwner.message.length() != messageLength) {
5728+
tempMessage = messageText.toString();
5729+
messageLength = messageOwner.message.length();
5730+
}
5731+
}
5732+
}
5733+
5734+
public static Boolean isReasoningMessage(String reasoningMessage) {
5735+
return reasoningMessage != null
5736+
&& !reasoningMessage.isEmpty()
5737+
&& !reasoningMessage.isBlank();
5738+
}
5739+
5740+
private Boolean isAutoHideReasoningMessage(TLRPC.Message messageOwner) {
5741+
boolean isHideReasoning = UserConfig.getInstance(currentAccount).isHideReasoning;
5742+
5743+
if (isHideReasoning) {
5744+
if (messageOwner == null) return false;
5745+
if (isReasoningMessage(messageOwner.reasoningMessage)) {
5746+
String message = messageOwner.message;
5747+
if (!message.isEmpty() && !message.isBlank()) {
5748+
return true;
5749+
}
5750+
}
5751+
}
5752+
5753+
return false;
5754+
}
5755+
57035756
private Markwon getMarkdwon() {
57045757

57055758
markwon = Markwon.builder(ApplicationLoader.applicationContext)

TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java

+1
Original file line numberDiff line numberDiff line change
@@ -13374,6 +13374,7 @@ public void processUpdates(final TLRPC.Updates updates, boolean fromQueue) {
1337413374
message.chat_air = updates.chat_air;
1337513375
message.promptTokens = updates.promptTokens;
1337613376
message.completionTokens = updates.completionTokens;
13377+
message.reasoningMessage = updates.reasoningMessage;
1337713378
}
1337813379

1337913380
ConcurrentHashMap<Long, Integer> read_max = message.out ? dialogs_read_outbox_max : dialogs_read_inbox_max;

TMessagesProj/src/main/java/org/telegram/messenger/NotificationCenter.java

+3
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,9 @@ public class NotificationCenter {
285285
public static final int updateSteam = totalEvents++;
286286
public static final int updateModel = totalEvents++;
287287

288+
public static final int updateDeepseekApiKey = totalEvents++;
289+
public static final int updateDeepseekApiServer = totalEvents++;
290+
288291
public static boolean alreadyLogged;
289292

290293
private SparseArray<ArrayList<NotificationCenterDelegate>> observers = new SparseArray<>();

0 commit comments

Comments
 (0)