| 
 | 
<火山程序 类型 = "通常" 版本 = 1 /> 
 
方法 获取问答 <公开 静态> 
{ 
    变量 FW <类型 = 网络访问类> 
    变量 cs1 <类型 = 文本型 
            值 = "{\r\n        \"model\": \"deepseek-chat\",\r\n        \"messages\": [\r\n          {\"role\": \"system\", \"content\": \""> 
    变量 cs2 <类型 = 文本型 值 = "\"}\r\n        ],\r\n        \"stream\": true\r\n      }"> 
    变量 协议 <类型 = 文本数组类> 
    变量 KEY <类型 = 文本型> 
    变量 传输对象 <类型 = 网络传输类> 
 
    协议.加入成员 ("Content-Type: application/json") 
    KEY = "sk-82a1564834be4b09b991b6ed29acb390"  // 填写自己的KEY 
    协议.加入成员 ("Authorization:Bearer " + KEY) 
 
    变量 cs <类型 = 文本型> 
    cs = cs1 + FW.URL编码 (取程序 ().主窗口对象.编辑框1.内容) + cs2 
 
    // 先输出问题 
    取程序 ().主窗口对象.编辑框2.加入文本行 ("问:" + 取程序 ().主窗口对象.编辑框1.内容) 
    取程序 ().主窗口对象.编辑框2.加入文本行 ("答:") 
 
    // 设置传输对象参数 
    传输对象.地址 = "https://api.deepseek.com/chat/completions" 
    传输对象.置请求方式 ("POST") 
    传输对象.置请求头 (协议) 
    传输对象.置提交数据 (文本到多字节 (cs, 假)) 
 
    // 设置回调函数处理流式数据 
    传输对象.置写入数据回调函数 (处理流式数据) 
 
    // 发送请求 
    传输对象.发送请求 () 
} 
 
方法 处理流式数据 <静态 类型 = 变整数> 
参数 数据 <类型 = 变整数> 
参数 数据尺寸 <类型 = 变整数> 
参数 数据数量 <类型 = 变整数> 
参数 用户数据 <类型 = 变整数> 
{ 
    变量 缓冲区 <类型 = 文本型> 
    缓冲区 = UTF8到文本 (指针到字节集 (数据, (整数)数据尺寸 * (整数)数据数量)) 
 
    如果 (寻找文本 (缓冲区, "content\":\"", , ) != -1) 
    { 
        变量 A1 <类型 = 整数> 
        变量 A2 <类型 = 整数> 
        A1 = 寻找文本 (缓冲区, "content\":\"", , ) 
        A2 = 寻找文本 (缓冲区, "\"},\"", , ) 
 
        如果 (A2 > A1 && A1 != 0 && A2 != 0) 
        { 
            变量 当前内容 <类型 = 文本型> 
            当前内容 = 取文本中间 (缓冲区, A1 + 10, A2 - A1 - 10) 
            子文本替换 (当前内容, "\\n", "\r\n", , , ) 
            取程序 ().主窗口对象.编辑框2.加入文本 (当前内容) 
            处理事件 ()  // 让界面即时刷新 
        } 
    } 
 
    返回 (数据尺寸 * 数据数量) 
} 
 |   
 
 
 
 |