iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0
生成式 AI

RAG自己來系列:客服機器人系列 第 24

[Day 24] 新增附屬功能 - 投票系統(下)

  • 分享至 

  • xImage
  •  

今天來處理當使用者按下「👎」後的行為

這邊我做的處理是,若對當前的回覆不滿意,我就重新生成一次

其實現方法如下

  • main.py

    由於需要重新生成內容,所以需要相對完整的參數資訊

    chatbot.like(File.vote, inputs=[chatbot, temperature, k, model], outputs=[textbox, chatbot])
    
  • utils.py

    由於重新生成內容不需要經過 saved_answer.csv 的內容搜尋,所以將該區塊做一個判斷,當我給予 regenerate 的 kwargs 時,就不要進入歷史紀錄搜尋的部分

    而 vote 的處理則是用 for 迴圈將 send_query 生成的內容接回來,並且更新到前端頁面中

    ...
    
    class Chat
        def send_query(search_content: str, history: list, temperature: float, k: int, model: str, **kwargs):
            history.append([search_content, ""])
    
            if 'regenerate' not in kwargs:
                csv = pd.read_csv("saved_answer.csv")
                if search_content in csv["Q"].values:
                    history[-1][1] = csv[csv["Q"] == search_content]["A"].values[0]
                    yield "", history
                    return True
            ...
    
    
    class File:
        def vote(event: gr.LikeData, history: list, temperature: float, k: int, model: str):
            if event.liked:
              ...
    
            else:
                for _, return_history in Chat.send_query(history[-1][0], history, 0.7, k, model, regenerate=True):
                    yield "", return_history
    

以下的結果就是當我點選「👎」時,網頁接收重新生成回覆的結果

https://ithelp.ithome.com.tw/upload/images/20241002/20146555adDAlfLuz7.png


上一篇
[Day 23] 新增附屬功能 - 投票系統(上)
下一篇
[Day 25] [複習篇] Day18 ~ Day24 周回複習
系列文
RAG自己來系列:客服機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言