登入區塊
主選單區塊

FAQ-問題與解答

主頁 »» 網頁客服

內容列表




 
此篇文章為網友個人意見,不代表本站立場.
發表者 樹狀展開
jetbomb
發表日: 2026-04-28 09:41  更新: 2026-04-28 09:41
網站管理員
註冊日: 2025-10-24
來自: MCSD HUI HUA PENG
發表數: 383
 一鍵罝入網站AI
🚀 一鍵置入(最重要)
<script src="https://pk530.fun/ai-chat.js"></script>
🎯 放哪裡?

👉 放在每個頁面的最底部(</body> 前):

</body>
<script src="https://pk530.fun/ai-chat.js"></script>
</html>
回應
jetbomb
發表日: 2026-04-28 09:39  更新: 2026-04-28 09:39
網站管理員
註冊日: 2025-10-24
來自: MCSD HUI HUA PENG
發表數: 383
 ai-chat 完整版
document.addEventListener("DOMContentLoaded", function () {

const box = document.createElement("div");

box.innerHTML = `
<div style="
position: fixed;
bottom: 15px;
right: 15px;
width: 300px;
max-width: 90%;
background: #fff;
border: 1px solid #ccc;
padding: 10px;
box-shadow: 0 0 10px rgba(0,0,0,0.2);
font-size:14px;
z-index:9999;
border-radius: 10px;
">
<div id="chat" style="height:220px; overflow:auto; margin-bottom:8px;"></div>
<input id="msg"
placeholder="例如:我要做網站 / AI客服多少錢"
style="width:70%; padding:5px;">
<button id="sendBtn" style="width:25%;">送</button>
</div>
`;

document.body.appendChild(box);

const chat = document.getElementById("chat");
const input = document.getElementById("msg");
const btn = document.getElementById("sendBtn");

// 🧠 開場白
chat.innerHTML =
"<div><b>AI:</b>👋 我是古堡艦隊這邊的AI顧問,我幫你快速抓一下方向。<br>你現在是想做網站,還是想用AI省人力?</div>";

// 🚀 送出功能
async function sendMessage() {
const msg = input.value.trim();
if (!msg) return;

// 🔒 鎖按鈕
btn.disabled = true;

// 🧹 清空輸入
input.value = "";

// 💬 顯示使用者
chat.innerHTML += "<div>你:" + msg + "</div>";

// 🤖 顯示思考中
const loadingId = "ai-" + Date.now();
chat.innerHTML += `<div id="${loadingId}">AI:思考中...</div>`;

// 🔽 自動滾到底
chat.scrollTop = chat.scrollHeight;

try {
const res = await fetch("http://47.84.93.23:3001/api/chat", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({ message: msg })
});

const data = await res.json();

document.getElementById(loadingId).innerHTML =
"AI:" + (data.reply || "無回應");

} catch (err) {
document.getElementById(loadingId).innerHTML =
"AI:系統忙碌,請稍後再試";
}

// 🔓 解鎖
btn.disabled = false;

// 🔽 再滾一次
chat.scrollTop = chat.scrollHeight;
}

// 🖱️ 按鈕送出
btn.onclick = sendMessage;

// ⌨️ Enter送出(手機/電腦都好用)
input.addEventListener("keypress", function (e) {
if (e.key === "Enter") {
sendMessage();
}
});

});
回應
jetbomb
發表日: 2026-04-28 09:38  更新: 2026-04-28 09:38
網站管理員
註冊日: 2025-10-24
來自: MCSD HUI HUA PENG
發表數: 383
 server.js 完整版
import express from 'express';
import axios from 'axios';
import dotenv from 'dotenv';
import cors from 'cors';

dotenv.config();

const app = express();
const port = 3001;

app.use(cors());
app.use(express.json());

console.log("KEY:", process.env.DASHSCOPE_API_KEY);

/* 🧠 對話記憶(簡單版) */
let conversation = [];

/* 🔒 允許來源(防外站濫用) */
const allowedOrigins = [
"https://pk530.fun",
"http://pk530.fun"
];

/* 🚦 簡單限流(防狂打) */
let lastRequestTime = 0;

app.use((req, res, next) => {
const origin = req.headers.origin;

// 允許沒有 origin(例如 curl / 自測)
if (origin && !allowedOrigins.includes(origin)) {
return res.status(403).json({ reply: "禁止訪問" });
}

// 限流(1秒1次)
const now = Date.now();
if (now - lastRequestTime < 1000) {
return res.json({ reply: "請稍等一下再發送" });
}
lastRequestTime = now;

next();
});

app.post('/api/chat', async (req, res) => {
try {
const userMessage = req.body.message;

/* ❗ 基本防呆 */
if (!userMessage || userMessage.length > 200) {
return res.json({ reply: "請輸入合理內容" });
}

console.log("👤 使用者:", userMessage);

/* 🧠 加入使用者訊息 */
conversation.push({
role: 'user',
content: userMessage
});

const messages = [
{
role: 'system',
content: `你是一位「專門幫用戶挑選AI與雲端服務的銷售顧問」。

你主要提供:
- AI客服系統
- 網站建置
- 雲端/VPS服務

【任務】
引導需求 → 推薦方案 → 促成成交

【策略】
- 模糊問題 → 先聊天引導
- 明確需求 → 提供2個選項(不要超過2個)
- 回答要短、像真人

【節奏】
- 先回答問題
- 再引導
- 不要一開始推銷

【收尾】
當需求明確時:
→ 問「要不要幫你規劃?」

【語氣】
自然、專業、像朋友
`
},
...conversation
];

const response = await axios.post(
'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions',
{
model: 'qwen3.5-flash',
messages: messages,
max_tokens: 120
},
{
headers: {
Authorization: `Bearer ${process.env.DASHSCOPE_API_KEY}`,
'Content-Type': 'application/json'
},
timeout: 10000 // 防卡死
}
);

const reply =
response.data?.choices?.[0]?.message?.content ||
response.data?.output?.text ||
"(AI沒有回內容)";

console.log("🤖 AI:", reply);

/* 🧠 加入AI回覆 */
conversation.push({
role: 'assistant',
content: reply
});

/* 🧠 限制記憶長度 */
if (conversation.length > 20) {
conversation = conversation.slice(-20);
}

res.json({ reply });

} catch (err) {
console.error("❌ 錯誤:", err.response?.data || err.message);

res.status(500).json({
reply: "系統暫時忙碌,請稍後再試"
});
}
});

app.listen(port, () => {
console.log(`🚀 AI server running on port ${port}`);
});
回應
jetbomb
發表日: 2026-04-28 02:07  更新: 2026-04-28 02:07
網站管理員
註冊日: 2025-10-24
來自: MCSD HUI HUA PENG
發表數: 383
 進入指令
$ node server.js
回應
jetbomb
發表日: 2026-04-27 22:04  更新: 2026-04-27 22:04
網站管理員
註冊日: 2025-10-24
來自: MCSD HUI HUA PENG
發表數: 383
 server.js
import express from 'express';
import axios from 'axios';
import dotenv from 'dotenv';
import cors from 'cors';

dotenv.config();

console.log("KEY:", process.env.DASHSCOPE_API_KEY);

const app = express();
const port = 3001;

app.use(cors());
app.use(express.json());

app.post('/api/chat', async (req, res) => {
try {
const userMessage = req.body.message;

const response = await axios.post(
'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions',
{
model: 'qwen3.5-flash',
messages: [
{
role: 'system',
content: '你是AI客服,請清楚回答並引導使用者購買服務。'
},
{
role: 'user',
content: userMessage
}
],
max_tokens: 300
},
{
headers: {
Authorization: `Bearer ${process.env.DASHSCOPE_API_KEY}`,
'Content-Type': 'application/json'
}
}
);

const reply = response.data?.choices?.[0]?.message?.content;

res.json({
reply: reply || '無回應'
});

} catch (err) {
console.error("完整錯誤↓↓↓↓↓↓");
console.error(err.response?.data || err.message);

res.status(500).json({
reply: err.response?.data || err.message
});
}
});

app.listen(port, () => {
console.log(`AI server running on port ${port}`);
});
回應
jetbomb
發表日: 2026-04-27 22:03  更新: 2026-04-27 22:03
網站管理員
註冊日: 2025-10-24
來自: MCSD HUI HUA PENG
發表數: 383
 機器人回應了
curl -X POST http://localhost:3001/api/chat -H "Content-Type: application/json" -d "{\"message\":\"你能做什麼?\"}"

Administrator@iZg4wa34578ty2Z MINGW64 /c/FoxServ/ai-api
$ curl -X POST http://localhost:3001/api/chat -H "Content-Type: application/json" -d "{\"message\":\"你能做什麼?\"}"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 938 100 912 100 26 68 1 0:00:26 0:00:13 0:00:13 222{"reply":"您好!👋 收到您的訊息了,不過剛才的內容似乎因為編碼問題顯示成了亂碼(ʲN),辛苦您確認一下是否有誤輸喔!😅\n\n別擔心,無論您需要什麼協助,我都隨時待命!為了更好地幫您節省時間,這裡有幾個我們目前最熱門的服務方案供您參考:\n\n1. 📦 **專業雲端儲存服務**:大容量、高穩定,隨時存取重要資料。\n2. 📊 **AI 智能分析報告**:自動生成洞察報告,助您快速決策。\n3. 🛡️ **企業級安全防護**:全方位數據加密,守護您的資產安全。\n\n✨ **限時優惠提示**:現在升級任何服務,即可享有 **首月 85 折** 的專屬禮遇,還贈送額外容量空間!\n\n不知道您目前是比較想了解哪方面的需求呢?或是可以直接告訴我您的預算範圍,讓我為您推薦最適合的方案吧!💪"}

Administrator@iZg4wa34578ty2Z MINGW64 /c/FoxServ/ai-api
回應
jetbomb
發表日: 2026-04-27 19:25  更新: 2026-04-27 19:25
網站管理員
註冊日: 2025-10-24
來自: MCSD HUI HUA PENG
發表數: 383
 測API KEY
curl https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation -H "Authorization: Bearer sk-db9c8c712ee845e3b88bc22a1cdf72e0" -H "Content-Type: application/json" -d '{
"model": "qwen-plus",
"input": {
"messages": [
{"role": "user", "content": "測試一下,你能正常回話嗎?"}
]
},
"parameters": {
"max_tokens": 200
}
}'
回應
jetbomb
發表日: 2026-04-27 19:09  更新: 2026-04-27 19:09
網站管理員
註冊日: 2025-10-24
來自: MCSD HUI HUA PENG
發表數: 383
 百頁
sk-db9c8c712ee845e3b88bc22a1cdf72e0
回應
待審區塊
誰在線上區塊
線上目前共1
(1人在瀏覽FAQ-問題與解答)

會員: 0
訪客: 1

尚有...
搜尋區塊
新會員區塊
TaylaZarat 2026-06-27
LatashiaDi 2026-06-27
ErnestHowe 2026-06-27
LynetteKei 2026-06-26
EdytheBinf 2026-06-26
LucieKiek1 2026-06-24
FrancisSou 2026-06-24
CaraDavids 2026-06-24
BennettGai 2026-06-24
GeraldineM 2026-06-24
Powered by   XOOPS 2.0.6 繁體中文版 release 20040222 © 2001-2003 The XOOPS Project