基于html的大模型调试页面

news2024/10/11 22:10:22

效果1

在这里插入图片描述

源码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>API Call Example</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
            background-color: #f4f4f9;
        }
        .container {
            background-color: white;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 1200px;
        }
        textarea {
            width: 100%;
            height: 600px;
            padding: 15px;
            font-size: 18px;
            border: 1px solid #ccc;
            border-radius: 5px;
            resize: none;
            outline: none;
            box-sizing: border-box;
        }
        button {
            background-color: #007bff;
            color: white;
            padding: 10px 20px;
            border: none;
            border-radius: 5px;
            font-size: 16px;
            cursor: pointer;
            margin-top: 10px;
            display: block;
            width: 100%;
        }
        button:disabled {
            background-color: #cccccc;
            cursor: not-allowed;
        }
        button:hover:enabled {
            background-color: #0056b3;
        }
        h2 {
            margin-top: 20px;
            font-size: 18px;
        }
        .loading {
            display: inline-block;
            width: 24px;
            height: 24px;
            border: 3px solid rgba(0, 0, 0, 0.1);
            border-top-color: #007bff;
            border-radius: 50%;
            animation: spin 1s linear infinite;
        }
        @keyframes spin {
            to { transform: rotate(360deg); }
        }
        .output {
            margin-top: 20px;
            font-size: 16px;
        }
        pre {
            background-color: #f8f9fa;
            padding: 10px;
            border-radius: 5px;
            font-size: 14px;
            white-space: pre-wrap;
            word-wrap: break-word;
            max-height: 400px;
            overflow-y: auto;
        }
    </style>
    <script>
        async function callApi() {
            // 禁用按钮并显示loading状态
            const button = document.querySelector("button");
            const loadingIndicator = document.getElementById("loading");
            const outputString = document.getElementById("outputString");

            button.disabled = true;
            loadingIndicator.style.display = 'inline-block';
            outputString.innerText = ''; // 清空之前的响应

            // 获取输入框中的字符串
            const inputString = document.getElementById("inputString").value;

            try {
                // 发送POST请求,添加Referer请求头
                const response = await fetch("http://192.168.10.25:8097/XXXXX/exampleChat/chat", {
                    method: "POST",
                    headers: {
                        "Content-Type": "application/json",
                        "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjE4MjE4MDYwNjI0MTMxMzk5NjkiLCJoZWFkUGljSWQiOiIxODIzOTQ4NDQ2NjY4Mjc5ODA5IiwiYWNjb3VudCI6ImFkbWluIiwidXNlck5hbWUiOiLns7vnu5_nrqHnkIblkZgiLCJzdGF0dXMiOjAsInVzZXJSb2xlTGlzdCI6W3sidXNlcklkIjoiMTgyMTgwNjA2MjQxMzEzOTk2OSIsInJvbGVJZCI6IjE4MjA2ODgzNzgxNjYzNjYyMDkiLCJyb2xlTmFtZSI6Iuezu-e7n-euoeeQhuWRmCJ9XSwicGVybWlzc2lvbiI6WyJwX2hvbWUiLCJwX2Nhc2VNYW5hZ2VtZW50IiwicF9jYXNlTWFuYWdlbWVudCIsInBfY2FzZU1hbmFnZW1lbnQiLCJwX2Nhc2VNYW5hZ2VtZW50IiwicF9jYXNlUmVjb3ZlcnkiLCJwX2Nhc2VNYW5hZ2VtZW50IiwicF9jYXNlRGV0YWlscyIsInBfY2FzZU1hbmFnZW1lbnQiLCJwX2Nhc2UyIiwicF9ydWxlIiwicF9ydWxlIiwicF9pbmRleFJ1bGUiLCJwX3J1bGUiLCJwX21vZGVsUnVsZSIsInBfcnVsZSIsInBfYXRvbWljUnVsZSIsInBfc3lzdGVtIiwicF9zeXN0ZW0iLCJwX2FjY291bnRNYW5hZ2VtZW50IiwicF9zeXN0ZW0iLCJwX2NvbmZpZ01hbmFnZW1lbnQiLCJwX3Byb21wdFByb2plY3QiLCJwX3Byb21wdFByb2plY3QiLCJwX3Byb21wdE1hbmFnZW1lbnQiLCJwX3Byb21wdFByb2plY3QiLCJwX3Byb21wdFRlc3QiXSwicmVnaXN0ZXJUaW1lIjoxNzIzMTg3Mzg3MDAwLCJhZG1pbkZsYWciOiIxIiwiZXhwaXJlVGltZSI6MTcyNzI0MzU3NzUxMywiaXNzdWVUaW1lIjoxNzI3MTU3MTc3NTEzfQ.ZVhspAz5tSr0J1s1XAjGKDBAfhWLEXI2t70DeQWir6E" // 添加Referer请求头
                    },
                    body: JSON.stringify({ message: inputString }) // 传入字符串
                });

                // 解析返回的JSON数据
                const result = await response.json();

                // 将返回的JSON结果进行格式化并展示
                outputString.innerHTML = "<pre>" + JSON.stringify(result, null, 4) + "</pre>";
            } catch (error) {
                outputString.innerText = 'Error occurred: ' + error.message;
            } finally {
                // 解除loading状态并启用按钮
                button.disabled = false;
                loadingIndicator.style.display = 'none';
            }
        }
    </script>
</head>
<body>
    <div class="container">
        <h1>API Call Example</h1>
        <div>
            <label for="inputString">Enter a string:</label>
            <textarea id="inputString" placeholder="Type something..."></textarea>
            <button onclick="callApi()">Submit</button>
            <div id="loading" class="loading" style="display:none;"></div>
        </div>
        <div class="output">
            <h2>Response:</h2>
            <div id="outputString"></div>
        </div>
    </div>
</body>
</html>


效果

在这里插入图片描述

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>API Call Example</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
            background-color: #f4f4f9;
        }
        .container {
            background-color: white;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 800px;
        }
        textarea {
            width: 100%;
            height: 150px;
            padding: 15px;
            font-size: 18px;
            border: 1px solid #ccc;
            border-radius: 5px;
            resize: none;
            outline: none;
            box-sizing: border-box;
            margin-bottom: 10px;
        }
        button {
            background-color: #007bff;
            color: white;
            padding: 10px 20px;
            border: none;
            border-radius: 5px;
            font-size: 16px;
            cursor: pointer;
            margin-top: 10px;
            display: block;
            width: 100%;
        }
        button:disabled {
            background-color: #cccccc;
            cursor: not-allowed;
        }
        button:hover:enabled {
            background-color: #0056b3;
        }
        h2 {
            margin-top: 20px;
            font-size: 18px;
        }
        .loading {
            display: inline-block;
            width: 24px;
            height: 24px;
            border: 3px solid rgba(0, 0, 0, 0.1);
            border-top-color: #007bff;
            border-radius: 50%;
            animation: spin 1s linear infinite;
        }
        @keyframes spin {
            to { transform: rotate(360deg); }
        }
        .output {
            margin-top: 20px;
            font-size: 16px;
        }
        pre {
            background-color: #f8f9fa;
            padding: 10px;
            border-radius: 5px;
            font-size: 14px;
            white-space: pre-wrap;
            word-wrap: break-word;
            max-height: 400px;
            overflow-y: auto;
        }
    </style>
    <script>
        async function callApi() {
            // 禁用按钮并显示loading状态
            const button = document.querySelector("button");
            const loadingIndicator = document.getElementById("loading");
            const outputString = document.getElementById("outputString");

            button.disabled = true;
            loadingIndicator.style.display = 'inline-block';
            outputString.innerText = ''; // 清空之前的响应

            // 获取输入框中的字符串
            const p1 = document.getElementById("p1").value;
            const p2 = document.getElementById("p2").value;

            try {
                // 发送POST请求,添加Referer请求头
                const response = await fetch("http://192.168.10.25:8097/exampleChat/chat", {
                    method: "POST",
                    headers: {
                        "Content-Type": "application/json"
                    },
                    body: JSON.stringify({ assistantMessage: p1, userMessage: p2 }) // 传入p1和p2参数
                });

                // 解析返回的JSON数据
                const result = await response.json();

                // 将返回的JSON结果进行格式化并展示
                outputString.innerHTML = "<pre>" + JSON.stringify(result, null, 4) + "</pre>";
            } catch (error) {
                outputString.innerText = 'Error occurred: ' + error.message;
            } finally {
                // 解除loading状态并启用按钮
                button.disabled = false;
                loadingIndicator.style.display = 'none';
            }
        }
    </script>
</head>
<body>
    <div class="container">
        <h1>API Call Example</h1>
        <div>
            <label for="p1">Enter assistantMessage:</label>
            <textarea id="p1" placeholder="Type assistantMessage..."></textarea>

            <label for="p2">Enter userMessage:</label>
            <textarea id="p2" placeholder="Type userMessage..."></textarea>

            <button onclick="callApi()">Submit</button>
            <div id="loading" class="loading" style="display:none;"></div>
        </div>
        <div class="output">
            <h2>Response:</h2>
            <div id="outputString"></div>
        </div>
    </div>
</body>
</html>


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2206018.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++面向对象--------继承篇

目录 一.继承&#xff08;重点&#xff09; 1.1 概念 1.2 构造函数 1.2.1 派生类与基类的构造函数关系 1.2.2 解决方案 1.2.2.1 补充基类的无参构造函数 1.2.2.2 手动在派生类中调用基类构造函数 1.2.2.2.1 透传构造 1.2.2.2.2 委托构造 1.2.2.2.3 继承构造 1.3 对象…

为什么SEO是一个不断学习和适应的过程?

SEO并不是一成不变的&#xff0c;它是一个需要不断学习和适应的过程。谷歌的算法经常更新&#xff0c;用户的搜索行为也在不断变化&#xff0c;这使得SEO策略必须与时俱进&#xff0c;才能保持有效性。企业需要认识到&#xff0c;SEO是一项长期的投资&#xff0c;需要持续的关注…

Spring WebFlux 响应式概述(1)

1、响应式编程概述 1.1、响应式编程介绍 1.1.1、为什么需要响应式 传统的命令式编程在面对当前的需求时的一些限制。在应用负载较高时&#xff0c;要求应用需要有更高的可用性&#xff0c;并提供低的延迟时间。 1、Thread per Request 模型 比如使用Servlet开发的单体应用&a…

PostgreSQL学习笔记十:锁机制详解

一、PostgreSQL 的锁机制 PostgreSQL中的锁机制是确保数据一致性和完整性的关键。它通过不同级别的锁来控制对数据对象的并发访问&#xff0c;主要包括表级锁、行级锁、页级锁、咨询锁&#xff08;Advisory Locks&#xff09;以及死锁&#xff08;Deadlocks&#xff09;。 1. …

基于Java+Springboot+Vue开发的大学竞赛报名管理系统

项目简介 该项目是基于JavaSpringbootVue开发的大学竞赛报名管理系统&#xff08;前后端分离&#xff09;&#xff0c;这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能&#xff0c;同时锻炼他们的项目设计与开发能力。通过学习基于Java…

# linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(九)--网络设置与文件上传下载

linux从入门到精通-从基础学起&#xff0c;逐步提升&#xff0c;探索linux奥秘&#xff08;九&#xff09;–网络设置与文件上传下载 一、网络设置 1、首先知道网卡配置文件位置&#xff1a;/etc/sysconfig/network-scripts [rootlocalhost test1]# ls /etc/sysconfig/netwo…

JSON 格式化工具:快速便捷地格式化和查看 JSON 数据

JSON 格式化工具&#xff1a;快速便捷地格式化和查看 JSON 数据 为什么需要 JSON 格式化工具&#xff1f; 在日常开发和调试中&#xff0c;JSON 是非常常见的数据交换格式。无论是前端与后端的接口调用&#xff0c;还是数据存储和处理&#xff0c;JSON 格式都扮演着重要角色。…

【HarmonyOS开发笔记 2 】 -- ArkTS语法中的变量与常量

ArkTS是HarmonyOS开发的编程语言 ArkTS语法中的变量 【语法格式】&#xff1a; let 变量名: 类型 值 let&#xff1a;是定义变量的关键字类型&#xff1a; 值数据类型&#xff0c; 常用的数据类型 字符型&#xff08;string&#xff09;、数字型&#xff08;number&#xf…

PG 17 增量备份功能介绍

背景 PG 17 新增了增量备份功能&#xff0c;可以通过 pg_basebackup --incrementalPATH_TO_MANIFEST 命令进行增量备份。 官方文档&#xff1a;https://www.postgresql.org/docs/current/app-pgbasebackup.html 使用方法 全量备份 启动实例后&#xff0c;首先配置参数 sum…

【北京迅为】《STM32MP157开发板嵌入式开发指南》- 第三十五章 嵌入式开发概述及环境构建

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器&#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构&#xff0c;主频650M、1G内存、8G存储&#xff0c;核心板采用工业级板对板连接器&#xff0c;高可靠&#xff0c;牢固耐…

数据库表使用方法:

数据库表&#xff1a; 提供四种类型的约束保证完整性&#xff1a; 1.域完整性&#xff0c;2.实体完整性 3.自定义完整性 4.引用完整性 实体完整性&#xff1a; 约束方法&#xff1a;唯一约束&#xff0c;主键约束&#xff0c;标识列 域完整性&#xff1a; 约束方法&#x…

基于depth anything模型理解深度估计运行机理

文章目录 前言一、概念说明1、深度概念2、绝对深度概念3、相对深度概念4、深度估计表示方法二、相对深度估计与绝对(即度量)深度估计1、模型预测绝对深度劣势与应用优势2、模型预测相对深度必然性3、小结三、深度估计模型loss方法四、深度估计模型评估方法1、绝对相对误差2、…

Python:方法的链式调用

相关阅读 Pythonhttps://blog.csdn.net/weixin_45791458/category_12403403.html?spm1001.2014.3001.5482 在Python编程中&#xff0c;方法的链式调用是一种简洁且优雅的编程风格&#xff0c;它允许你在一行代码中连续调用多个方法&#xff0c;这种编程模式在简化代码、提升可…

22.安卓逆向-frida基础-objection工具1-安装和简单使用(Python的pip指令安装完提示不是内部命令解决办法)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要盲目相信。 工…

java4~~~

日期 第一代 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.logging.SimpleFormatter;public class Main {public static void main(String[] args) throws ParseException {//两种构造器的使用//1、获取当…

OpenCV高级图形用户界面(1)创建滑动条函数createTrackbar()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 创建一个滑动条并将其附加到指定的窗口。 该函数 createTrackbar 创建一个具有指定名称和范围的滑动条&#xff08;滑块或范围控制&#xff09;…

Flexbox 弹性盒子布局

Flexbox&#xff0c;全称弹性盒子布局&#xff0c;提供更精细的控制&#xff0c;能轻松解决困扰我们许久的垂直居中和登高列问题。 1 display: flex 将容器设置为弹性容器&#xff0c;容器会占据100%的可用宽度&#xff0c;高度则由自身的内容来决定&#xff0c;即使改变主轴…

基于SSM的“企业人事管理系统”的设计与实现(源码+数据库+文档)

基于SSM的“企业人事管理系统”的设计与实现&#xff08;源码数据库文档) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 登陆页面 部门管理页面 加班页面 考勤页面 请假页面 工资页面 …

leetcode链表(三)-反转链表

题目 . - 力扣&#xff08;LeetCode&#xff09; 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 思路 首先定义一个cur指针&#xff0c;指向头结点&#xff0c;再定义一个pre指针&#xff0c;初始化为None。 然后就要开始反转了&…

使用tgz包下载安装clickhouse低版本

1.下载安装包 官方下载地址&#xff1a;https://packages.clickhouse.com/tgz/stable 阿里云下载地址&#xff1a;clickhouse-tgz-stable安装包下载_开源镜像站-阿里云 共需要下载四个文件 clickhouse-common-static-20.3.10.75.tgz clickhouse-common-static-dbg-20.3.10.7…