无脑利用API实现文心一言AI对话功能?(附代码)

慈云数据 2024-03-12 技术支持 147 0

前言:在当今数字化的时代,人工智能(AI)技术正在不断演进,为开发者提供了丰富的工具和资源。其中,API(应用程序接口)成为构建强大AI应用的关键组成部分之一。本文将介绍如何利用API来打造一个AI对话网站,使用户能够与智能系统进行交互。

以下内容不作太多解释,不懂就无脑套用就行,这里的API接口以文心一言示例,先在LuckyCola注册账号然后在个人中心申请appKey

在这里插入图片描述

在这里插入图片描述

1.请求方式

请求方式: POST

https://luckycola.com.cn/ai/openwxyy

建议使用HTTPS协议,当https协议无法使用时再尝试使用HTTP协议

2.请求参数

序号参数是否必须说明
1ques提交问题
2appKey唯一验证AppKey
3uid唯一标识
4isLongChat是否支持上下文(值为1或者0)

3.请求参数示例

{
   "ques": "hello",
   "appKey": "*****************",
   "uid": "***************",
	 // 是否支持上下文 值1表示支持,0表示不支持
   "isLongChat": 0
}

3.接口 返回示例

{
	// 	成功状态码
	"code": 0,
	// 	成功提示
	"msg": "AI接口返回成功",
	"data": {
		// 	AI回答结果
		"result": "您好,如果您需要帮助或有任何问题,请随时告诉我,我将竭诚为您服务。",
		"countMsg": "无穷",
		// 当前是否是上下文对话模式,1表示是上下文模式,0为非上下文模式
		"longChat": 0
	}
}

建立前端页面,创建一个用户友好的前端页面,可以使用HTML、CSS和JavaScript等技术来实现交互式的用户界面。



  
  
  AI对话网站
  
    /* 在这里添加你的样式 */
  


  
发送
// 在这里添加用户交互的JavaScript代码

然后我这里简单写了一段,完成简单对话页面UI,替换自己的uid和appkey即可,供参考



    
    
    
        body {
            font-family: 'Arial', sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f4f4f4;
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100vh;
            overflow: hidden;
        }
        #chat-container {
            width: 90%; 
            max-width: 400px; 
            border: 1px solid #ccc;
            border-radius: 10px;
            overflow: hidden;
            height: 100%; 
            display: flex;
            flex-direction: column;
        }
        #chat-messages {
            flex: 1; /* 让消息容器占据剩余空间 */
            padding: 10px;
            overflow-y: auto;
            background-color: #fff;
        }
        .message {
            clear: both;
            padding: 8px;
            margin-bottom: 8px;
            border-radius: 5px;
            max-width: 70%;
            word-wrap: break-word;
        }
        .message.sent {
            float: right;
            background-color: #4caf50;
            color: #fff;
        }
        .message.received {
            float: left;
            background-color: #e0e0e0;
        }
        #chat-input {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 10px;
            background-color: #fff;
            border-top: 1px solid #ccc;
        }
        #chat-input input {
            flex: 1;
            padding: 8px;
            margin-right: 10px;
            border: 1px solid #ccc;
            border-radius: 5px;
        }
        #chat-input button {
            padding: 8px;
            border: none;
            border-radius: 5px;
            background-color: #4caf50;
            color: #fff;
            cursor: pointer;
        }
        #chat-input button:disabled {
            background-color: #ccc;
            cursor: not-allowed;
        }
    


这里是NDIR博客,内容是如何利用API搭建文心一言AI,你有任何问题吗?
Send
async function sendMessage() { var inputElement = document.querySelector('#user-input'); var messageText = inputElement.value.trim(); var sendButton = document.getElementById('sendButton'); if (messageText !== "") { var messagesContainer = document.querySelector('#chat-messages'); // Display user's message var userMessage = document.createElement('div'); userMessage.className = 'message sent'; userMessage.textContent = messageText; messagesContainer.appendChild(userMessage); // Disable send button until AI response sendButton.disabled = true; // Call AI API try { var aiResponse = await getAiResponse(messageText); // Display AI's response with formatted code blocks var aiMessage = document.createElement('div'); aiMessage.className = 'message received'; aiMessage.innerHTML = formatCodeBlocks(aiResponse.data.result); messagesContainer.appendChild(aiMessage); // Scroll to the bottom messagesContainer.scrollTop = messagesContainer.scrollHeight; } catch (error) { console.error("Error fetching AI response:", error); } // Clear input and enable send button inputElement.value = ''; sendButton.disabled = false; } } async function getAiResponse(userInput) { var apiUrl = 'https://luckycola.com.cn/ai/openwxyy'; var requestBody = { ques: userInput, //替换你的标识 appKey: "*********************", uid: "************************", isLongChat: 0 }; var response = await fetch(apiUrl, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(requestBody), }); if (response.ok) { return response.json(); } else { throw new Error('Failed to fetch AI response'); } } function formatCodeBlocks(text) { // Match code blocks enclosed in triple backticks (```code ```) return text.replace(/```([\s\S]*?)```/g, '
$1
'); }
运行效果

在这里插入图片描述

下面是用低代码设计的界面

在这里插入图片描述

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon