chili3d调试笔记5 直接加入js和大模型对话 trae

TypeScript 复制代码
// 定义一个异步函数来生成请求选项并发送请求
export async function send_to_llm(mycontent:String ): Promise<string> {
    const myHeaders = new Headers();
    myHeaders.append("Authorization", "Bearer sk-240e8a769152439594a0c4c17618db9c");
    myHeaders.append("Content-Type", "application/json");
  
    const raw = JSON.stringify({
      messages: [
        { content: mycontent, role: "user" },
        { content: "you are a helpful assistant", role: "system" }
      ],
      model: "deepseek-chat"
    });
  
    const requestOptions: RequestInit = {
      method: 'POST',
      headers: myHeaders,
      body: raw,
      redirect: 'follow' as RequestRedirect
    };
  
    try {
      const response = await fetch("https://api.deepseek.com/v1/chat/completions", requestOptions);
      if (!response.ok) {
        throw new Error(`HTTP error! Status: ${response.status}`);
      }
      const result = await response.text();
      console.log(result); // 可选:打印日志以便调试
      return result;
    } catch (error) {
      console.error('Error in send_to_llm:', error);
      throw error; // 将错误抛出以便调用方处理
    }
  }
TypeScript 复制代码
import { I18n, Logger } from "chili-core";
import { button, div, input, label } from "../components";
import style from "../dialog.module.css";
import { send_to_llm } from "./send_to_llm";
export class njsgcs_Dialog {
    private constructor() {}
    static show() { 
        const dialog = document.createElement("dialog");
        document.body.appendChild(dialog);

        // 创建输入框并保存引用
        const user_say_input = input({
            type: "text",
            id: "njsgcs_test_input",
            onkeydown: (e: KeyboardEvent) => {
                e.stopPropagation();
            },
        });

        // 创建 label 元素并保存引用
        const resultLabel = label({ textContent: "" });

        dialog.appendChild(
            div(
                { className: style.root },
                div({ className: style.title }, label({ textContent: I18n.translate("njsgcs_showDialog") })),
                div({ className: style.input }, user_say_input),
                div(
                    { className: style.buttons },
                    button({
                        textContent: I18n.translate("common.confirm"),
                        onclick: async () => {
                            try {
                                // 动态获取输入框的值
                                let response: string = await send_to_llm(user_say_input.value);
                                // 将 response 解析为 JSON 对象
                                const jsonResponse = JSON.parse(response);
                                let content_response: string = jsonResponse.choices[0].message.content;
                                Logger.info(content_response);
                                // 将 content_response 赋值给 label
                                resultLabel.textContent = content_response;
                            } catch (error) {
                                Logger.error("Failed to parse response as JSON:", error);
                            }
                        },
                    }),
                ),
                // 添加结果显示区域
                div({ className: style.result }, resultLabel)
            ),
        );

        dialog.showModal();
    }
}
相关推荐
蒸蒸yyyyzwd4 小时前
后端学习笔记三个知识
笔记·八股
Zhao-Jichao6 小时前
AI Prompting for Everyone 课程笔记 - P19 数据分析 Data Analysis
人工智能·笔记·数据分析
旖旎夜光7 小时前
【C++ 基础入门】类和对象(上):封装、对象模型与 this 指针
开发语言·c++·笔记·学习
ACP广源盛139246256737 小时前
选型笔记:Type‑C 扩展坞方案评估|DP1.2 转 HDMI2.0 桥接芯片 GSV2201D@ACP
笔记·硬件架构·硬件工程·视频·国产芯片
李长渊哦9 小时前
Qoder 自定义子智能体(Subagent)学习笔记
chrome·笔记·学习
pixelpilot9 小时前
Deta Surf:把笔记、文件和网页塞进同一个 AI 工作台
笔记·其他
蒸蒸yyyyzwd10 小时前
学习笔记 复盘
笔记·八股
旖旎夜光10 小时前
【C++ 基础入门】命名空间、输入输出、缺省参数与函数重载
开发语言·c++·笔记·学习
一支蜉蝣13 小时前
Day26 XD安全学习笔记--PHP 应用&模版引用&Smarty渲染&MVC 模型&数据联动&RCE 安全
笔记·网络安全·html·php
東隅已逝,桑榆非晚13 小时前
算法3.双指针法-快乐数
c++·笔记·学习·算法