72 lines
2.0 KiB
Objective-C
72 lines
2.0 KiB
Objective-C
//
|
||
// KBPersonaChatCell.h
|
||
// keyBoard
|
||
//
|
||
// Created by Kiro on 2026/1/26.
|
||
//
|
||
|
||
#import <UIKit/UIKit.h>
|
||
#import "KBPersonaModel.h"
|
||
#import "KBChatTableView.h"
|
||
|
||
NS_ASSUME_NONNULL_BEGIN
|
||
|
||
/// 人设聊天 Cell
|
||
@interface KBPersonaChatCell : UICollectionViewCell
|
||
/// 聊天列表
|
||
@property (nonatomic, strong) KBChatTableView *chatView;
|
||
/// 人设数据
|
||
@property (nonatomic, strong) KBPersonaModel *persona;
|
||
|
||
/// 预加载数据
|
||
- (void)preloadDataIfNeeded;
|
||
|
||
/// 添加用户消息
|
||
- (void)appendUserMessage:(NSString *)text;
|
||
|
||
/// 添加用户消息(绑定本次请求 requestId)
|
||
- (void)appendUserMessage:(NSString *)text requestId:(NSString *)requestId;
|
||
|
||
/// 标记最后一条用户消息结束加载
|
||
- (void)markLastUserMessageLoadingComplete;
|
||
|
||
/// 添加加载中的用户消息
|
||
- (void)appendLoadingUserMessage;
|
||
|
||
/// 更新最后一条用户消息
|
||
- (void)updateLastUserMessage:(NSString *)text;
|
||
|
||
/// 添加 AI 消息(支持打字机效果)
|
||
- (void)appendAssistantMessage:(NSString *)text
|
||
audioId:(nullable NSString *)audioId;
|
||
|
||
/// 添加 loading AI 消息
|
||
- (void)appendLoadingAssistantMessage;
|
||
|
||
/// 添加 loading AI 消息(绑定本次请求 requestId)
|
||
- (void)appendLoadingAssistantMessageWithRequestId:(NSString *)requestId;
|
||
|
||
/// 移除 loading AI 消息
|
||
- (void)removeLoadingAssistantMessage;
|
||
|
||
/// 移除 loading AI 消息(按 requestId 精确移除)
|
||
- (void)removeLoadingAssistantMessageWithRequestId:(NSString *)requestId;
|
||
|
||
/// 更新聊天列表底部 inset
|
||
- (void)updateChatViewBottomInset:(CGFloat)bottomInset;
|
||
|
||
/// 更新指定 requestId 对应的 AI 回复(替换 loading 占位消息)
|
||
- (void)updateAssistantMessageWithRequestId:(NSString *)requestId
|
||
text:(NSString *)text
|
||
audioId:(nullable NSString *)audioId;
|
||
|
||
/// 当前 Cell 成为屏幕主显示页
|
||
- (void)onBecameCurrentPersonaCell;
|
||
|
||
/// 当前 Cell 不再是屏幕主显示页
|
||
- (void)onResignedCurrentPersonaCell;
|
||
|
||
@end
|
||
|
||
NS_ASSUME_NONNULL_END
|