“ 聊天机器人看着是一个很简单的功能,但能把聊天机器人做好却不是一件简单的事**”**
在大模型的众多应用中,聊天机器人可以说是其中比较简单,也是拥有众多应用场景的一个功能;从技术的角度来说,聊天机器人的实现很简单,但其实也很复杂。
那到底怎么实现一个聊天机器人呢?
聊天机器人的实现
对很多学习大模型技术的人来说,可能聊天机器人就是你的第一个实操项目;原因就是其实现起来比较简单,从技术实现来看只需要使用大模型服务商提供的SDK或者API接口就可以实现一个聊天机器人的功能。
比如说阿里通义千问提供的基于API实现的对话功能代码:
import java.io.BufferedReader;``import java.io.InputStreamReader;``import java.io.OutputStream;``import java.net.HttpURLConnection;``import java.net.URL;``import java.nio.charset.StandardCharsets;`` ``import com.google.gson.Gson;`` ``public class Main {`` ` `static class Message {` `String role;` `String content;`` ` `public Message(String role, String content) {` `this.role = role;` `this.content = content;` `}` `}`` ` `static class RequestBody {` `String model;` `Message[] messages;`` ` `public RequestBody(String model, Message[] messages) {` `this.model = model;` `this.messages = messages;` `}` `}`` ` `public static void main(String[] args) {` `try {` `// 创建请求体` `RequestBody requestBody = new RequestBody(` `"qwen-plus",` `new Message[] {` `new Message("system", "You are a helpful assistant."),` `new Message("user", "你是谁?")` `}` `);`` ` `// 将请求体转换为 JSON` `Gson gson = new Gson();` `String jsonInputString = gson.toJson(requestBody);`` ` `// 创建 URL 对象` `URL url = new URL("https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions");` `HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();`` ` `// 设置请求方法为 POST` `httpURLConnection.setRequestMethod("POST");` `httpURLConnection.setRequestProperty("Content-Type", "application/json; utf-8");` `httpURLConnection.setRequestProperty("Accept", "application/json");`` ` `// 若没有配置环境变量,请用百炼API Key将下行替换为:String apiKey = "sk-xxx";` `String apiKey = System.getenv("DASHSCOPE_API_KEY");` `String auth = "Bearer " + apiKey;` `httpURLConnection.setRequestProperty("Authorization", auth);`` ` `// 启用输入输出流` `httpURLConnection.setDoOutput(true);`` ` `// 写入请求体` `try (OutputStream os = httpURLConnection.getOutputStream()) {` `byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);` `os.write(input, 0, input.length);` `}`` ` `// 获取响应码` `int responseCode = httpURLConnection.getResponseCode();` `System.out.println("Response Code: " + responseCode);`` ` `// 读取响应体` `try (BufferedReader br = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream(), StandardCharsets.UTF_8))) {` `StringBuilder response = new StringBuilder();` `String responseLine;` `while ((responseLine = br.readLine()) != null) {` `response.append(responseLine.trim());` `}` `System.out.println("Response Body: " + response);` `}`` ` `} catch (Exception e) {` `e.printStackTrace();` `} finally {` `System.exit(0);` `}` `}``}
代码看起来是不是很简单,主要就两个角色system和user;有些模型可能是三个角色,还一个是assistant的角色。
为了更好的使用大模型,因此需要一个system角色来定义大模型所扮演的角色,它可以是一名工程师,也可以是一名科学家;用户可以根据自己的需求来定义大模型的角色。
而由于大模型没有记忆功能,因此就需要通过会话的方式,把聊天的记录输入到大模型中,这样就可以让大模型在一个固定的上下文中聊天,这样有助于大模型更好地理解用户的意图。所以,一般在实际应用场景中,每次都会携带前面多轮会话的内容到大模型中。
而在与前端的交互中,一般有两种选择,一种是等大模型完全回复完毕,然后把所有内容一起返回给前端;另一种是采用流式返回的方式,把大模型回复的内容一点一点的响应给前端,就是我们常见的打字机的效果。
当然,上面这些只是实现一个简单聊天机器人的功能;看起来很简单,实现起来也很简单,但聊天机器人真的有那么简单吗?
聊天机器人的应用场景最常见的就是智能客服,但思考一下实现一个能够满足企业需求的智能客服真的有这么简单吗?
首先使用大模型实现智能客服要面临着大模型存在的几个问题,首先就是知识不足的问题;假如你们公司是一个做传统制造的企业,如果只是使用第三方大模型服务商提供的能力,能满足你们的需求吗?简单来说,大模型能理解你们的行业内的知识吗?
答案当然是否定的。
因此,面临着这种知识不足的问题,应该怎么解决?Ok,如果对RAG技术有了解的人可能会说,这个简单直接用RAG技术就能解决这个问题了。
但首先使用RAG技术打造一个你们行业内的知识库系统,难度大不大?其次,如果是医疗,高精尖的企业生产,在这种场景下不能有一丝一毫的错误;任何微小的错误都可能引起人命关天的事故,那么这个问题应该怎么解决?
毕竟大模型目前为止还无法做到完全的正确性,甚至很多时候都会抽风。
其次,如果客户想了解一些当前市面上最新的信息,你的智能客服是否能及时主动的搜索网络中的消息,还是说要人工每天收集消息输入到你的知识库中?
其实对于这种问题有两种解决方案,第一种是异步方式,使用爬虫工具每天从网络中搜索信息并输入到知识库中;另一种是使用AI Agent技术,让大模型自己调用网络搜索工具实时搜索消息。
而这只是简单的聊天对话功能,如果想提供更好的体验方式,比如语音客服,是不是还需要切入TTS(TEXT-TO-SPEECH 文本转语音)功能;而且能够根据不同的角色切换不同的声音。
而且,在某些场景下还可以把AIGC的能力集成到智能客服中,比如说帮用户梳理文档,设计流程,以及提供部分案例等。
因此,一个简单的聊天机器人远远没有看到的那么简单,其背后可能需要一个庞大的系统在做支撑。
如何学习AI大模型?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高
那么针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
👉[优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈
学习路线
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓