到目前為止,我們已經完成RAG技術的實作,在上一篇文章使用Meta釋出的模型,實作Chat GPT - Part 5中,可以看到加入RAG之後,可以讓我的大型語言模型回答更為精確。
現在我們要把它用一個畫面做呈現,而不是以程式碼來給大家看,就類似Chat GPT這樣,背後有複雜的程式運行,但是眾人所看到的是漂亮的UI畫面,以下開始實作:
import gradio as gr
Chat_History = []
with gr.Blocks() as GUI:
chatbot = gr.Chatbot()
msg = gr.Textbox()
clear = gr.ClearButton([msg, chatbot])
def respond(message, chat_history):
bot_message = RAG({"question": message, "chat_history": Chat_History})['answer']
Chat_History.append((message, bot_message)) # Chatting Used
chat_history.append((message, bot_message)) # UI Showing
return "", chat_history
msg.submit(respond, [msg, chatbot], [msg, chatbot])
GUI.launch()
程式撰寫後,如下,我們一樣按「紅色框框」執行,大約四秒後,執行完成,可以在「紅色框框」處的綠色提示得知 (4秒處)
執行完成後,可以在執行結果處看到以下畫面,點擊當中的藍色網址即可跳出新的畫面,這串藍色網址會因人而異,不需要跟我的執行結果一致沒關係。
然後就可以跳出一個漂亮的UI畫面了,如下圖:
接著我在Textbox這個欄位輸入:「what is 1688 ?」,看它是不是會回我訊息。
稍等一段時間後,它回我如下訊息:
接著我可以在Textbox再輸入一些訊息,比方說我質問它真的嗎?
可以看到它就會再做一些額外陳述,藉此我們就完成一個窮人版的Chat GPT搭配RAG技術的實作。