偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Chatbot開發(fā)三劍客:LLAMA、LangChain和Python

人工智能
讓我們使用Langchain、llama和Python構(gòu)建一個簡單的聊天機器人!

聊天機器人(Chatbot)開發(fā)是一項充滿挑戰(zhàn)的復(fù)雜任務(wù),需要綜合運用多種技術(shù)和工具。在這一領(lǐng)域中,LLAMA、LangChain和Python的聯(lián)合形成了一個強大的組合,為Chatbot的設(shè)計和實現(xiàn)提供了卓越支持。

首先,LLAMA是一款強大的自然語言處理工具,具備先進的語義理解和對話管理功能。它有助于Chatbot更好地理解用戶意圖,并根據(jù)上下文進行智能響應(yīng)。LLAMA的高度可定制性使得開發(fā)者可以根據(jù)實際需求靈活調(diào)整Chatbot的語言處理能力。

LangChain作為一個全棧語言技術(shù)平臺,為Chatbot提供了豐富的開發(fā)資源。它整合了多種語言技術(shù),包括語音識別、文本處理和機器翻譯,為Chatbot的多模態(tài)交互提供全面支持。LangChain的強大功能使得開發(fā)者能夠輕松構(gòu)建復(fù)雜而靈活的Chatbot系統(tǒng)。

Python作為一種通用編程語言,是Chatbot開發(fā)的理想選擇。其簡潔而強大的語法使得開發(fā)過程更加高效,而豐富的第三方庫和生態(tài)系統(tǒng)為Chatbot開發(fā)提供了廣泛的工具和資源。Python的跨平臺性也使得Chatbot能夠在不同環(huán)境中運行,實現(xiàn)更廣泛的應(yīng)用。

Chatbot開發(fā)離不開大型語言模型(LLM),LLM是一種以其實現(xiàn)通用語言理解和生成能力而備受關(guān)注的語言模型。LLM通過使用大量數(shù)據(jù)在訓(xùn)練期間學(xué)習(xí)數(shù)十億個參數(shù),并在訓(xùn)練和運行過程中消耗大量計算資源來獲得這些能力。

圖片

讓我們使用Langchain、llama和Python構(gòu)建一個簡單的聊天機器人!

在這個簡單的項目中,我想創(chuàng)建一個關(guān)于HIV/AIDS特定主題的聊天機器人。這意味著我們發(fā)送給聊天機器人的消息,聊天機器人將嘗試根據(jù)主題和消息之間的關(guān)聯(lián)進行回答。但在此之前,我們必須安裝和下載一些必要的組件:

1、大型語言模型

我使用的是從Hugging Face下載的META AI的LLAMA 2。

2、Langchain

用于開發(fā)由語言模型驅(qū)動的應(yīng)用程序的框架

pip install langchain

3、安裝Llama-cpp-python

llama.cpp庫的Python實現(xiàn)(我嘗試使用最新的llama.cpp版本,但它不起作用,所以我建議使用0.1.78穩(wěn)定版本,并確保安裝了C++編譯器)。

pip install llama-cpp-pythnotallow==0.1.78

4、導(dǎo)入庫

from langchain.prompts importPromptTemplate
from langchain.llms importLlamaCpp
from langchain.callbacks.manager importCallbackManager
from langchain.callbacks.streaming_stdout import(
StreamingStdOutCallbackHandler
)

PromptTemplate:負(fù)責(zé)創(chuàng)建PromptValue,這是一種根據(jù)用戶輸入組合動態(tài)值的對象。

llamacpp:Facebook的LLAMA模型的C/C++端口。

CallbackManager:處理來自LangChain的回調(diào)。

StreamingStdOutCallbackHandler:用于流式處理的回調(diào)處理程序。

代碼

首先,我將為我的模型路徑創(chuàng)建一個名為 “your_model_path”的變量,然后因為我只想限制主題為HIV/AIDS,所以我創(chuàng)建了一個名為 “chat_topic”的主題變量,并將其填充為 “HIV/AIDS”,顯然你可以修改這個主題,如果你不想限制主題,可以刪除 “chat_topic”并更改模板。之后,我將創(chuàng)建一個名為 “user_question”的變量,以接收用戶輸入,還有一個稍后將使用的模板。

your_model_path = "寫入你的模型路徑"
chat_topic = "hiv/aids"
user_question = str(input("輸入你的問題:"))
template= """
請解釋這個問題:“{question}”,主題是關(guān)于{topic}
"""

我將創(chuàng)建一個 PromptTemplate變量,該變量將使用我們之前創(chuàng)建的模板,并將其分配給 “prompt”變量,然后更改提示的格式并將其分配給 “final_prompt”變量。我們使用 “chat_topic”中的主題和我們之前初始化的 “user_question”中的問題。然后創(chuàng)建一個名為 “Callbackmanager”的變量,并將流處理程序分配給它。

prompt = PromptTemplate.from_template(template)
final_prompt = prompt.format(
    topic=chat_topic,
    questinotallow=user_question
)
CallbackManager= CallbackManager([StreamingStdOutCallbackHandler()])

之后,讓我們創(chuàng)建模型。

llm = LlamaCpp(
    model_path=your_model_path,
    n_ctx=6000,
    n_gpu_layers=512,
    n_batch=30,
    callback_manager=CallbackManager,
    temperature=0.9,
    max_tokens=4095,
    n_parts=1,
    verbose=0
)

model_path:LLAMA模型的路徑。 

n_ctx:令牌上下文窗口,模型在生成響應(yīng)時可以接受的令牌數(shù)量。 

n_gpu_layers:要加載到gpu內(nèi)存中的層數(shù)。 

n_batch:并行處理的令牌數(shù)。 

callback_manager:處理回調(diào)。 

temperature:用于抽樣的溫度,較高的溫度將導(dǎo)致更具創(chuàng)意和想象力的文本,而較低的溫度將導(dǎo)致更準(zhǔn)確和實際的文本。 

max_tokens:生成的最大令牌數(shù)。 

n_parts:要將模型分割成的部分?jǐn)?shù)。 

verbose:打印詳細輸出。

最后,調(diào)用模型并傳遞提示。

python "你的文件名.py"

要運行它,只需在cmd中鍵入上述命令。

演示

圖片

圖片

完整代碼

from langchain.prompts importPromptTemplate
from langchain.llms importLlamaCpp
from langchain.callbacks.manager importCallbackManager
from langchain.callbacks.streaming_stdout import(
StreamingStdOutCallbackHandler
)
your_model_path = "write your model path"
chat_topic = "hiv/aids"
user_question = str(input("Enter your question : "))
template= """
Please explain this question : "{question}" the topic is about {topic}
"""
prompt = PromptTemplate.from_template(template)
final_prompt = prompt.format(
    topic=chat_topic,
    questinotallow=user_question
)
CallbackManager= CallbackManager([StreamingStdOutCallbackHandler()])
llm = LlamaCpp(
    model_path=your_model_path,
    n_ctx=6000,
    n_gpu_layers=512,
    n_batch=30,
    callback_manager=CallbackManager,
    temperature=0.9,
    max_tokens=4095,
    n_parts=1,
    verbose=0
)
llm(final_prompt)

責(zé)任編輯:龐桂玉 來源: Python中文社區(qū)
相關(guān)推薦

2011-03-28 16:04:44

nagios

2024-06-04 00:20:00

Python函數(shù)

2019-06-27 10:06:54

Linux 性能工具

2010-02-04 16:22:21

2025-04-22 09:39:46

Python爬蟲網(wǎng)頁數(shù)據(jù)抓取

2023-10-04 00:20:31

grepLinux

2009-02-26 18:22:49

桌面虛擬化Linux

2017-07-25 08:53:14

CorrectLinkCCA-SD算法

2019-08-20 14:29:45

grepsedawk

2021-05-13 10:25:29

Linuxgrep命令

2009-02-12 09:12:27

JPAEJBJSF

2018-05-04 15:18:01

DockerDocker Comp容器

2014-11-26 10:18:32

Cloud Setupwindows在線打包工具

2021-03-15 07:39:48

LinuxAwk 語言

2009-03-19 20:52:58

LinuxPHPCMS

2011-08-06 23:58:34

愛普生投影機

2011-04-11 11:01:03

AndroidHTC蘋果

2011-07-04 09:07:54

2009-11-20 13:25:31

2025-03-24 10:06:35

點贊
收藏

51CTO技術(shù)棧公眾號