成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用大模型實現一個聊天機器人思路以及困難點 原創

發布于 2024-12-9 09:54
瀏覽
0收藏

?“ 聊天機器人看著是一個很簡單的功能,但能把聊天機器人做好卻不是一件簡單的事”

在大模型的眾多應用中,聊天機器人可以說是其中比較簡單,也是擁有眾多應用場景的一個功能;從技術的角度來說,聊天機器人的實現很簡單,但其實也很復雜。

那到底怎么實現一個聊天機器人呢?

聊天機器人的實現

對很多學習大模型技術的人來說,可能聊天機器人就是你的第一個實操項目;原因就是其實現起來比較簡單,從技術實現來看只需要使用大模型服務商提供的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角色來定義大模型所扮演的角色,它可以是一名工程師,也可以是一名科學家;用戶可以根據自己的需求來定義大模型的角色。

而由于大模型沒有記憶功能,因此就需要通過會話的方式,把聊天的記錄輸入到大模型中,這樣就可以讓大模型在一個固定的上下文中聊天,這樣有助于大模型更好地理解用戶的意圖。所以,一般在實際應用場景中,每次都會攜帶前面多輪會話的內容到大模型中。

而在與前端的交互中,一般有兩種選擇,一種是等大模型完全回復完畢,然后把所有內容一起返回給前端;另一種是采用流式返回的方式,把大模型回復的內容一點一點的響應給前端,就是我們常見的打字機的效果。

當然,上面這些只是實現一個簡單聊天機器人的功能;看起來很簡單,實現起來也很簡單,但聊天機器人真的有那么簡單嗎? 

使用大模型實現一個聊天機器人思路以及困難點-AI.x社區

聊天機器人的應用場景最常見的就是智能客服,但思考一下實現一個能夠滿足企業需求的智能客服真的有這么簡單嗎? 

首先使用大模型實現智能客服要面臨著大模型存在的幾個問題,首先就是知識不足的問題;假如你們公司是一個做傳統制造的企業,如果只是使用第三方大模型服務商提供的能力,能滿足你們的需求嗎?簡單來說,大模型能理解你們的行業內的知識嗎?

答案當然是否定的。

因此,面臨著這種知識不足的問題,應該怎么解決?Ok,如果對RAG技術有了解的人可能會說,這個簡單直接用RAG技術就能解決這個問題了。

但首先使用RAG技術打造一個你們行業內的知識庫系統,難度大不大?其次,如果是醫療,高精尖的企業生產,在這種場景下不能有一絲一毫的錯誤;任何微小的錯誤都可能引起人命關天的事故,那么這個問題應該怎么解決? 

畢竟大模型目前為止還無法做到完全的正確性,甚至很多時候都會抽風。

其次,如果客戶想了解一些當前市面上最新的信息,你的智能客服是否能及時主動的搜索網絡中的消息,還是說要人工每天收集消息輸入到你的知識庫中?

使用大模型實現一個聊天機器人思路以及困難點-AI.x社區

其實對于這種問題有兩種解決方案,第一種是異步方式,使用爬蟲工具每天從網絡中搜索信息并輸入到知識庫中;另一種是使用AI Agent技術,讓大模型自己調用網絡搜索工具實時搜索消息。

而這只是簡單的聊天對話功能,如果想提供更好的體驗方式,比如語音客服,是不是還需要切入TTS(TEXT-TO-SPEECH 文本轉語音)功能;而且能夠根據不同的角色切換不同的聲音。

而且,在某些場景下還可以把AIGC的能力集成到智能客服中,比如說幫用戶梳理文檔,設計流程,以及提供部分案例等。

因此,一個簡單的聊天機器人遠遠沒有看到的那么簡單,其背后可能需要一個龐大的系統在做支撐。

?

本文轉載自公眾號AI探索時代 作者:DFires

原文鏈接:??https://mp.weixin.qq.com/s/YZumIdQ1luuYyUK4dw4UXA??

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 成人av鲁丝片一区二区小说 | 日韩中文在线视频 | 欧美淫 | 韩国欧洲一级毛片 | 国产一区在线免费观看视频 | 国产精品成人国产乱 | 国产精品久久久久久妇女 | 日韩在线精品强乱中文字幕 | 午夜影院黄 | 曰韩三级 | 中文字幕一区二区三区不卡在线 | 国产精品伦一区二区三级视频 | 国产精品美女久久久久 | 国产精品高 | 中文字幕在线欧美 | 成人欧美一区二区 | 成人在线视频免费观看 | 日日噜| 国产成人精品一区二区三区在线 | 日韩高清一区 | 天天干视频 | 成人二区 | 日韩免费毛片视频 | 中文字幕在线视频网站 | 久久91精品 | 中文字幕视频在线观看 | 久久久久久国产 | 一区二区三区精品视频 | 国产精品人人做人人爽 | 欧美日韩第一页 | 黄色片a级 | a久久| eeuss国产一区二区三区四区 | 国产福利91精品一区二区三区 | 国产欧美一区二区三区久久人妖 | 国产香蕉视频在线播放 | 欧美日韩在线视频一区 | 少妇特黄a一区二区三区88av | 91在线观看视频 | 99视频入口 | 毛片免费观看 |