Skip to content

cAI 事件参考

事件概览

事件说明
OnStreamChunk(Chunk, IsComplete)流式响应数据块
OnComplete(Response)请求完成
OnError(ErrorMsg, ErrorCode)错误事件

OnStreamChunk

流式响应数据到达时触发。

vb
Public Event OnStreamChunk(Chunk As String, IsComplete As Boolean)

参数:

  • Chunk — 本次收到的文本片段(完成时为空字符串)
  • IsComplete — 是否为最后一次触发(流式结束)

说明:

  • 仅在 Stream=True 且未提供回调函数时触发
  • 如果 Chat 提供了 CallbackCallbackMethod 参数,则使用回调而不触发此事件
  • IsComplete=True 时,Chunk 为空,完整内容通过 OnComplete 事件获取

示例:

vb
Dim WithEvents AI As cAI

Private Sub Form_Load()
    Set AI = New cAI
    AI.ApiKey("sk-xxx").Stream(True).Chat("写一首诗")
End Sub

Private Sub AI_OnStreamChunk(Chunk As String, IsComplete As Boolean)
    If Not IsComplete Then
        TextResponse.Text = TextResponse.Text & Chunk
        TextResponse.SelStart = Len(TextResponse.Text)
    End If
End Sub

OnComplete

请求完成时触发(同步和流式均触发)。

vb
Public Event OnComplete(Response As String)

参数:

  • Response — 完整的响应文本

示例:

vb
Private Sub AI_OnComplete(Response As String)
    Debug.Print "请求完成,完整响应: " & Left(Response, 100)
End Sub

OnError

请求出错时触发。

vb
Public Event OnError(ErrorMsg As String, ErrorCode As Long)

参数:

  • ErrorMsg — 错误描述
  • ErrorCode — 错误代码(HTTP 状态码或系统错误码)

说明: 错误来源包括:

  • API Key 未设置(500)
  • 网络/超时错误
  • HTTP 4xx/5xx(如 401 认证失败、429 限速)
  • SSE 连接错误

示例:

vb
Private Sub AI_OnError(ErrorMsg As String, ErrorCode As Long)
    MsgBox "请求失败 [" & ErrorCode & "]: " & ErrorMsg, vbExclamation
End Sub

流式响应工作原理

用户调用 Chat() (Stream=True)

cSSEClient.ConnectPost() — POST 请求到 AI API

SSE 逐条返回 data: {"choices":[{"delta":{"content":"..."}}]}

cAI 解析 JSON,提取 delta.content

触发 OnStreamChunk(Chunk, False) — 每个 chunk

收到 data: [DONE]

触发 OnStreamChunk("", True) + OnComplete(完整文本)

最后更新: 2025-05-25

VB6及其LOGO版权为微软公司所有