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

使用Streamlit、LangChain和Bedrock構(gòu)建一個交互式聊天機器人

譯文 精選
人工智能
本文將幫助你使用低代碼前端、用于會話管理的LangChain以及用于生成響應的Bedrock LLM來創(chuàng)建聊天機器人。

譯者 | 布加迪

審校 | 重樓

在不斷發(fā)展的AI領域,聊天機器人已成為一種不可或缺的工具,用于增強用戶參與度和簡化信息傳遞。本文將逐步介紹構(gòu)建交互式聊天機器人的具體過程,使用Streamlit作為前端、使用LangChain用于協(xié)調(diào)交互,以及使用基于Amazon Bedrock的Anthropic Claude模型作為大語言模型(LLM)后端。我們將深入研究前端和后端的代碼片段,并解釋使這個聊天機器人切實可行的關鍵組件。

核心組件

  • Streamlit前端:Streamlit的直觀界面便于我們不用花多大的力氣就能創(chuàng)建一個對用戶友好的低代碼聊天界面。我們將探討代碼如何創(chuàng)建聊天窗口、處理用戶輸入和顯示聊天機器人的響應。
  • LangChain編排:LangChain使我們能夠管理會話流程和內(nèi)存,確保聊天機器人維護上下文并提供相關的響應。我們將討論如何整合LangChain的ConversationSummaryBufferMemory和ConversationChain。
  • Bedrock/Claude LLM后端:真正的魔力在于LLM后端。我們將看看如何利用Amazon Bedrock的claude基礎模型來生成上下文感知的智能響應。

圖1. 聊天機器人體系結(jié)構(gòu)

體系結(jié)構(gòu)的概念闡述

  • 用戶交互:用戶通過在Streamlit創(chuàng)建的聊天界面中輸入消息來發(fā)起對話。該消息可以是問題、請求或用戶希望提供的任何其他形式的輸入。
  • 輸入捕獲和處理:Streamlit的聊天輸入組件捕獲用戶的消息,并將其傳遞給LangChain框架進行進一步處理。
  • 語境化結(jié)合LangChain記憶:LangChain在保持對話的上下文方面起著至關重要的作用。它將用戶的最新輸入與存儲在內(nèi)存中的相關對話歷史記錄結(jié)合起來。這確保了聊天機器人擁有必要的信息,以生成有意義且符合上下文的響應。
  • 利用LLM:然后將結(jié)合的上下文發(fā)送到Bedrock/Claude LLM。這個強大的語言模型利用其豐富的知識以及對語言的理解來分析上下文,并生成響應,以大量的豐富信息回復用戶的輸入。
  • 響應檢索:LangChain從LLM接收生成的響應,并準備將其提供給用戶。
  • 響應顯示:最后,Streamlit獲得聊天機器人的響應后將其顯示在聊天窗口中,使其看起來好像聊天機器人正與用戶進行自然地對話。這營造了一種直觀的、對用戶友好的體驗,鼓勵進一步的交互。

代碼片段

前端(Streamlit)

Python

import streamlit 
import chatbot_backend 
from langchain.chains import ConversationChain
 from langchain.memory import ConversationSummaryBufferMemory
 import boto3
 from langchain_aws import ChatBedrock
import pandas as pd
 
 # 2 Set Title for Chatbot - streamlit.title("Hi, This is your Chatbott")  
 
 # 3 LangChain memory to the session cache - Session State - 
if 'memory' not in streamlit.session_state:
    streamlit.session_state.memory = demo.demo_memory()  

 # 4 Add the UI chat history to the session cache - Session State 
 if 'chat_history' not in streamlit.session_state:  
    streamlit.session_state.chat_history = []  

# 5 Re-render the chat history 
 for message in streamlit.session_state.chat_history:
     with streamlit.chat_message(message["role"]):
         streamlit.markdown(message["text"])
 
# 6 Enter the details for chatbot input box
input_text = streamlit.chat_input("Powered by Bedrock")  

 if input_text:
    with streamlit.chat_message("user"):
        streamlit.markdown(input_text)
 
     streamlit.session_state.chat_history.append({"role": "user", "text": input_text})
 
     chat_response = demo.demo_conversation(input_text=input_text,
                                            memory=streamlit.session_state.memory)  
    with streamlit.chat_message("assistant"):
         streamlit.markdown(chat_response)
 
     streamlit.session_state.chat_history.append({"role": "assistant", "text": chat_response})

后端(LangChain和LLM)

Python

from langchain.chains import ConversationChain
 from langchain.memory import ConversationSummaryBufferMemory
 import boto3
 from langchain_aws import ChatBedrock
 
 # 2a Write a function for invoking model- client connection with Bedrock with profile, model_id
 def demo_chatbot():
     boto3_session = boto3.Session(
              # Your aws_access_key_id, 
              # Your aws_secret_access_key,
         region_name='us-east-1'
     )
     llm = ChatBedrock(
         model_id="anthropic.claude-3-sonnet-20240229-v1:0",
         client=boto3_session.client('bedrock-runtime'),
         model_kwargs={
             "anthropic_version": "bedrock-2023-05-31",
             "max_tokens": 20000,
             "temperature": .3,
             "top_p": 0.3,
             "stop_sequences": ["\n\nHuman:"]
         }
     )
     return llm
 
 # 3 Create a Function for  ConversationSummaryBufferMemory  (llm and max token limit)
 def demo_memory():
     llm_data = demo_chatbot()
    memory = ConversationSummaryBufferMemory(llm=llm_data, max_token_limit=20000)
     return memory
 
 # 4 Create a Function for Conversation Chain - Input text + Memory
 def demo_conversation(input_text, memory):
     llm_chain_data = demo_chatbot()
 
     # Initialize ConversationChain with proper llm and memory
     llm_conversation = ConversationChain(llm=llm_chain_data, memory=memory, verbose=True)
 
     # Call the invoke method
    full_input = f" \nHuman: {input_text}"
     llm_start_time = time.time()
     chat_reply = llm_conversation.invoke({"input": full_input})
     llm_end_time = time.time()
     llm_elapsed_time = llm_end_time - llm_start_time
     memory.save_context({"input": input_text}, {"output": chat_reply.get('response', 'No Response')})
     return chat_reply.get('response', 'No Response')

結(jié)論

我們在上面探討了用Streamlit、LangChain和強大的LLM后端構(gòu)建的交互式聊天機器人的基本模塊。這個基礎為從客戶支持自動化到個性化學習體驗的無限可能打開了大門。你可以隨意試驗、改進和部署這個聊天機器人,以滿足自己的特定需求和使用場景。

原文標題:Building an Interactive Chatbot With Streamlit, LangChain, and Bedrock,作者:Karan Bansal

責任編輯:姜華 來源: 51CTO內(nèi)容精選
相關推薦

2023-09-18 09:00:00

聊天機器人DeepInfraLangChain

2021-11-30 10:56:43

ChatterBot機器人人工智能

2021-05-13 09:00:00

人工智能機器人web

2021-05-24 15:29:24

人工智能機器人聊天

2024-09-30 13:11:09

2020-12-02 13:00:17

Recast.AI聊天機器人人工智能

2022-09-30 13:55:46

Python機器人

2019-01-25 16:30:34

機器人機器學習人工智能

2017-08-21 13:31:44

AI聊天機器人facebook

2024-09-02 08:17:53

RAG聊天機器人人工智能

2025-06-04 08:21:28

2021-10-28 22:46:13

Python機器人數(shù)據(jù)

2023-11-25 17:08:47

ChatbotLLAMALangChain

2023-12-18 19:05:34

2022-07-05 06:42:01

聊天機器人人工智能

2019-07-03 10:02:47

聊天機器人平臺機器人

2019-03-22 09:00:00

AI人工智能聊天機器人

2022-08-04 07:03:41

AnswersInfobip無代碼

2023-07-27 14:38:58

人工智能機器人開發(fā)

2024-11-01 07:30:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久草视| 亚州成人 | 国产三级电影网站 | 午夜视频网 | 国产羞羞视频在线观看 | 在线视频91 | 亚洲人免费视频 | 亚洲色在线视频 | 国产精品日韩欧美一区二区三区 | 亚洲传媒在线 | 国产免费福利小视频 | 狠狠入ady亚洲精品经典电影 | 免费在线观看av | 亚洲视频区 | 男女下面一进一出网站 | 国产精品欧美一区二区 | 亚洲一区视频在线 | 在线视频 欧美日韩 | 免费看大片bbbb欧美 | 97人人澡人人爽91综合色 | 欧美又大粗又爽又黄大片视频 | 国产精品一区二区在线免费观看 | 精品亚洲永久免费精品 | 一区二区三区四区在线视频 | 99久久婷婷国产综合精品电影 | 91九色视频在线 | 久久99精品久久久久久琪琪 | 一区二区三区影院 | 国产午夜精品一区二区三区 | 四虎永久免费影院 | 福利网站在线观看 | 久久综合久色欧美综合狠狠 | 国精久久 | 日本不卡免费新一二三区 | 久久精品国产一区二区 | 久久里面有精品 | 亚洲国产成人精品女人 | 青青久草 | 欧美在线日韩 | 国产三级 | 天天插日日操 |