视频教程:BV1Ku4y157gR
视频链接:BV1Ku4y157gR
发布日期:2023-06-15
视频时长:12:00
播放量:3.8万
所属合集:ChatGPT 搭建系列
视频概要
使用 Laf 云开发平台快速搭建一个类似 ChatGPT 的对话应用。Laf 是一个开源的 Serverless 平台,无需管理服务器,秒级部署云函数。
知识点清单
A. Laf 平台介绍
| 知识点 | 说明 | 重要程度 |
|---|---|---|
| Laf是什么 | 开源的云开发平台,Serverless函数计算 | ★★★★★ |
| 核心优势 | 免运维、秒级部署、免费额度 | ★★★★★ |
| 支持语言 | TypeScript/JavaScript | ★★★★ |
| 云函数 | 在云端运行的函数,按调用计费 | ★★★★ |
| 数据库 | 内置MongoDB数据库 | ★★★★ |
B. 创建 Laf 应用
1. 访问 laf.dev 注册账号
2. 点击「新建应用」
3. 选择区域(国内选杭州)
4. 等待创建完成
5. 进入在线IDE
C. 编写云函数
// cloud functions/chat.ts
import cloud from '@lafjs/cloud'
export default async function (ctx: FunctionContext) {
const { message, apiKey } = ctx.body
const response = await fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${apiKey}`
},
body: JSON.stringify({
model: 'gpt-3.5-turbo',
messages: [
{ role: 'system', content: '你是一个有帮助的AI助手。' },
{ role: 'user', content: message }
],
stream: false
})
})
const data = await response.json()
return { reply: data.choices[0].message.content }
}
D. 前端页面
<div id="app">
<div class="chat-container">
<div class="messages" id="messages"></div>
<div class="input-area">
<input type="text" id="input" placeholder="输入你的问题...">
<button onclick="sendMessage()">发送</button>
</div>
</div>
</div>
<script>
async function sendMessage() {
const input = document.getElementById('input');
const message = input.value;
input.value = '';
addMessage('user', message);
const res = await fetch('https://your-app.laf.dev/chat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ message })
});
const data = await res.json();
addMessage('assistant', data.reply);
}
function addMessage(role, content) {
const div = document.createElement('div');
div.className = `message ${role}`;
div.textContent = content;
document.getElementById('messages').appendChild(div);
}
</script>
常见问题
| 问题 | 解答 |
|---|---|
| Laf免费吗? | 有免费额度,足够个人使用 |
| 需要服务器吗? | 不需要,Laf提供云函数运行环境 |
| API Key安全吗? | 可以存在Laf的环境变量中 |
| 支持流式输出吗? | 支持,需要使用SSE |
学习建议
- Laf非常适合快速原型开发,适合新手入门
- 深入开发建议使用FastGPT等成熟平台