Skip to content

Conversation Service

字数
575 字
阅读时间
4 分钟

ConversationService 负责 ChatLuna 会话、绑定、约束、ACL、归档和导出。

可以通过 ctx.chatluna.conversation 获取实例。

基础查询

conversation.getConversation()

  • id: string
  • 返回值: Promise<ConversationRecord | undefined>

conversation.getBinding()

  • bindingKey: string
  • 返回值: Promise<BindingRecord | undefined>

conversation.getArchive()

  • id: string
  • 返回值: Promise<ArchiveRecord | undefined>

conversation.getArchiveByConversationId()

  • conversationId: string
  • 返回值: Promise<ArchiveRecord | undefined>

conversation.listConstraints()

  • 返回值: Promise<ConstraintRecord[]>

解析和路由

conversation.resolveConstraint()

  • session: Session
  • options: ResolveConversationOptions | undefined
  • 返回值: Promise<ResolvedConstraint>

conversation.resolveConversation()

  • session: Session
  • options: ResolveConversationOptions | undefined
  • 返回值: Promise<ConversationResolution>

conversation.ensureActiveConversation()

  • session: Session
  • options: ResolveConversationOptions | undefined
  • 返回值: Promise<ConversationRecord>

确保返回当前生效会话,不存在时按规则创建。

会话生命周期

conversation.createConversation()

  • session: Session
  • options: ResolveConversationOptions | undefined
  • 返回值: Promise<ConversationRecord>

conversation.setActiveConversation()

  • bindingKey: string
  • conversationId: string
  • 返回值: Promise<void>

conversation.touchConversation()

  • conversation: ConversationRecord
  • 返回值: Promise<void>

conversation.claimAutoTitle()

  • conversationId: string
  • 返回值: Promise<void>

conversation.listConversations()

  • session: Session
  • options: ListConversationsOptions | undefined
  • 返回值: Promise<ConversationListEntry[] | ConversationRecord[]>

conversation.listConversationEntries()

  • session: Session
  • options: ListConversationsOptions | undefined
  • 返回值: Promise<ConversationListEntry[] | ConversationRecord[]>

conversation.switchConversation()

  • session: Session
  • targetConversation: string
  • options: ResolveConversationOptions | undefined
  • 返回值: Promise<ConversationRecord>

conversation.reopenConversation()

  • session: Session
  • targetConversation: string
  • 返回值: Promise<ConversationRecord>

conversation.renameConversation()

  • conversationId: string
  • title: string
  • 返回值: Promise<void>

conversation.deleteConversation()

  • conversationId: string
  • 返回值: Promise<void>

conversation.updateConversationUsage()

  • conversationId: string
  • 返回值: Promise<void>

conversation.recordCompression()

  • conversationId: string
  • result: CompressContextResult
  • 返回值: Promise<void>

消息和 ACL

conversation.listMessages()

  • conversationId: string
  • 返回值: Promise<MessageRecord[]>

conversation.listAcl()

  • conversationId: string
  • 返回值: Promise<ACLRecord[]>

conversation.upsertAcl()

  • conversationId: string
  • record: ACLRecord
  • 返回值: Promise<void>

conversation.replaceAcl()

  • conversationId: string
  • records: ACLRecord[]
  • 返回值: Promise<void>

conversation.removeAcl()

  • conversationId: string
  • 返回值: Promise<void>

归档和导出

conversation.exportConversation()

  • conversationId: string
  • 返回值: Promise<ConversationArchivePayload>

conversation.archiveConversation()

  • conversation: ConversationRecord
  • 返回值: Promise<ArchiveRecord | undefined>

conversation.archiveConversationById()

  • conversationId: string
  • archivedAt: Date | undefined
  • 返回值: Promise<ArchiveRecord | undefined>

conversation.restoreConversation()

  • archiveId: string
  • 返回值: Promise<ConversationRecord | undefined>

conversation.exportMarkdown()

  • conversation: ConversationRecord
  • 返回值: Promise<string>

管理约束

conversation.getManagedConstraint()

  • session: Session
  • 返回值: Promise<ConstraintRecord | undefined>

conversation.getManagedConstraintByBindingKey()

  • bindingKey: string
  • 返回值: Promise<ConstraintRecord | undefined>

conversation.updateManagedConstraint()

  • session: Session
  • options: ResolveConversationOptions | undefined
  • changes: Partial<ConstraintRecord>
  • 返回值: Promise<void>

其他

conversation.resolveConversationContext()

内部方法,文档上不建议直接依赖。

页面历史

在 CC-BY-SA-4.0 许可下发布