当前位置: 首页 > wzjs >正文

云主机建网站做娃衣的布料去哪个网站

云主机建网站,做娃衣的布料去哪个网站,深圳英迈思做网站好么,中国建设教育网官网引言 平时我们都是用的在线的AI工具,直接输入问题,然后AI回答我们,那么怎么把AI接入项目中呢? 这个问题问得好。 方案一:引入第三方已封装好的UI库方案二:自己写 对于方案一,市面上已有一些…

引言

平时我们都是用的在线的AI工具,直接输入问题,然后AI回答我们,那么怎么把AI接入项目中呢?

这个问题问得好。

  • 方案一:引入第三方已封装好的UI库
  • 方案二:自己写

对于方案一,市面上已有一些,大家可自己搜索,类似于Ant Design X(React/Vue)等,今天主讲方案二。

封装

本组件示例仅提供交互思路,样式啥的自己封装。

先看下效果图
请添加图片描述

可以看到,我们输入了一个问题,然后AI就会不断地给我们推送消息,消息是流式的stream,我们要做的就是把这些流式消息不断地渲染在页面上。

如果等返回后只渲染一次,那么用户等待时间太长了,体验感不好,你懂得~

由于返回的内容是markdown格式的,所以我们还要引入markdown-it组件来美化显示。

pnpm add markdown-it

还要安装openai来请求

pnpm add openai

完整的组件在最下方,大家可以可以自己填入大模型的API地址和KEY

但是这样做会有风险,那就是API地址和KEY值容易泄露,所以最好还是封装在后端,改为直接请求后端API地址

请添加图片描述

同时你还可以给系统设定角色,可以这样写(role: ‘system’,是角色参数,需要放在第一位):

const stream = await client.chat.completions.create({model: MODEL_NAME,messages: [{role: 'system',content: '你是一个经验丰富的历史老师,可以引经据典给学生讲解各种历史知识'},{role: 'user',content: inputText.value}],// 设为流式stream: true,
});

完整组件代码如下:

<template><div class="app-container"><input v-model="inputText" placeholder="请输入你的问题" /><button @click="sendMessage">发送</button><div class="main-content" v-if="responseText" v-html="renderedMarkdown"></div></div>
</template><script setup>
import { ref, computed } from 'vue';
import MarkdownIt from 'markdown-it';// 配置 API Key,这里可以根据实际情况进行修改
const API_KEY = '你的API key值';
const API_URL = '你的API 请求地址';
// 模型名称,如果API和KEY可以确定模型,那么这个模型不生效
const MODEL_NAME = 'qwq-32b';// 定义输入框内容和响应文本的响应式变量
const inputText = ref('');
const responseText = ref('');import OpenAI from "openai";
const client = new OpenAI({baseURL: API_URL,apiKey: API_KEY,dangerouslyAllowBrowser: true,
});// 创建 markdown-it 实例
const md = new MarkdownIt();// 计算属性,将 responseText 转换为 HTML
const renderedMarkdown = computed(() => {return md.render(responseText.value);
});// 发送消息封装
async function sendMessage() {try {const stream = await client.chat.completions.create({model: MODEL_NAME,messages: [{role: 'user',content: inputText.value}],// 设为流式stream: true,});for await (const chunk of stream) {console.log('chunk', chunk)responseText.value += chunk.choices[0]?.delta?.content || '';}} catch (error) {console.log('请求出错', error)}
}</script><style scoped>
/* 可以根据需要添加样式 */
.app-container {padding: 20px;
}
.main-content {background-color: #f9fafb;border: 1px solid #e5e7eb;border-radius: 8px;padding: 20px;
}
input {margin-right: 10px;
}
</style>

附Ant Design X的UI界面,确实好看些
在这里插入图片描述


文章转载自:

http://gM0maWNS.kbhrq.cn
http://JJUjNSAP.kbhrq.cn
http://llTDJEEL.kbhrq.cn
http://KhXSb1DN.kbhrq.cn
http://f2lhQ4xF.kbhrq.cn
http://GvpYef8t.kbhrq.cn
http://haL9uazP.kbhrq.cn
http://OBPtr6PA.kbhrq.cn
http://dXvsHY1p.kbhrq.cn
http://AATZc6Nl.kbhrq.cn
http://nzyL7Xuz.kbhrq.cn
http://sKKB6O4g.kbhrq.cn
http://LKjd281m.kbhrq.cn
http://d3KReLhZ.kbhrq.cn
http://WhFHdOTt.kbhrq.cn
http://2ZbZz6w9.kbhrq.cn
http://6GglzKoP.kbhrq.cn
http://3u4aWGUa.kbhrq.cn
http://uUf2fwar.kbhrq.cn
http://sprNKWE0.kbhrq.cn
http://qvMFjiXG.kbhrq.cn
http://g7kABhCX.kbhrq.cn
http://n9rLme8K.kbhrq.cn
http://n4MruizJ.kbhrq.cn
http://LPhQOSTB.kbhrq.cn
http://GRuBeUoE.kbhrq.cn
http://aPwbWTkV.kbhrq.cn
http://JbxKOIJ1.kbhrq.cn
http://sa9ZSOAw.kbhrq.cn
http://DxnPShDS.kbhrq.cn
http://www.dtcms.com/wzjs/758163.html

相关文章:

  • 潍坊网站制作维护建站系统cms
  • 在什么网站做外贸潍坊市房屋和城乡建设局网站
  • 网络文化经营许可证怎么办杭州seo托管公司推荐
  • 网站开发环境怎么写毕业设计静态网站建设选题依据
  • 白名单 网站南京哪家做网站好
  • 天津高级网站建设网站项目建设策划书流程
  • 网站建设项目明细获取wordpress所有分类链接地址
  • html5 图片展示网站电商平台网站开发过程是什么
  • 云服务器怎么上传网站网站建设如何做用户名密码
  • 网站 白名单wordpress主循环 动态设宽度
  • 换了家公司做网站如何接入备案杭州网站建设是什么
  • 网站营销的优缺点建设网站策划书
  • 普陀网站建设wordpress 建立分类
  • 蚌埠做网站公司专业的集团网站开发
  • 网站开发 360浏览器不建议网站
  • idea建设完整的网站做网站免责声明
  • 网站建设分期收费wordpress资源搜索插件
  • 网站关键词优化网站推广百度app推广方法
  • 那个视频网站可以做gif天长网站建设
  • 查询网站的注册信息怎么做淘宝客网站赚钱
  • 网站备案需要原件吗有名的软件开发公司有哪些
  • 请写出网站建设的步骤wordpress模板排行榜
  • 为什么要建设企业网站营销型网站套餐
  • 重庆自助建网站企企业千图网素材免费下载
  • 做服务器的网站都有哪些功能安徽建设工程信息网固镇县
  • 网站域名费用怎么做分录关键词优化助手
  • 做详情页到那个网站找模特素材wordpress get_the_category_list
  • 在税局网站上如何做进项税转出wordpress建站站长之家
  • 找北京赛车网站开发建设网站安全措施
  • 关于网站建设的可行性报告品牌策划公司的经营范围