免費聊天AI!快速生成電子書!
目錄
- 導言
- 安裝LM Studio和相關套件
- 設置L-chain和Autogen
- 創建PDF聊天應用程序
- 開始使用LM Studio
- 導入向量儲存庫
- 分割文本
- 創建問答鏈
- 創建助手代理
- 問答範例和結果
- 總結和展望
使用LM Studio集成Autogen Longchain和開源模型
在這個視頻中,我們將探討如何使用LM Studio集成Autogen Longchain和開源模型,並利用它建立一個PDF聊天應用程序。如果你還沒有訂閱我的頻道,請點擊訂閱按鈕並點擊喜歡按鈕。
安裝LM Studio和相關套件
在開始之前,我們需要安裝LM Studio。你可以在描述中找到下載鏈接。根據你的系統版本,你可以選擇合適的安裝包下載並進行安裝。
首先,我們需要安裝LM Studio和相關套件。在終端中使用以下命令安裝要求:
pip install -r requirements.txt
設置L-chain和Autogen
在設置L-chain和Autogen之前,我們需要進行一些準備工作。首先,設置L-chain。我們將使用LM Studio中的模型。在下一個步驟中將簡要介紹如何設置Autogen。
設置L-chain
設置L-chain非常簡單,因為LM Studio的設置與OpenAI API完全相同。
首先,按照API基礎链接和端口的格式,將L-chain配置文件中的API基礎配置為所選的LM Studio模型。
lchain_config = {
"api_base": "http://localhost:8000",
"api_port": "1234"
}
設置Autogen
與L-chain不同,Autogen的設置需要使用OpenAI API。請按照以下步驟進行設置。
首先,將Autogen配置文件中的API基礎配置為所選的OpenAI API模型。
autogen_config = {
"api_base": "https://api.openai.com/v1",
"api_key": ""
}
創建PDF聊天應用程序
現在,我們準備創建PDF聊天應用程序。首先,我們需要在VS Code中設置環境。打開VS Code並執行以下命令:
python -m venv venv
激活虛擬環境:
source venv/bin/activate
安裝所需的套件:
pip install transformers aioredis fastapi uvicorn
接下來,我們需要創建一個Python腳本來處理PDF文檔。以下是一個簡單的示例腳本,用於將PDF文檔加載到L-chain和Autogen中,並生成相應的回答。
import os
from typing import List
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdftypes import resolve1
def load_pdf(filename: str) -> str:
doc = ""
with open(filename, "rb") as file:
parser = PDFParser(file)
doc = PDFDocument(parser)
rsrcmgr = PDFResourceManager()
laparams = LAParams()
device = TextConverter(rsrcmgr, doc, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
for page in PDFPage.create_pages(doc):
interpreter.process_page(page)
device.close()
return doc
def split_text(text: str, chunk_size: int = 1000) -> List[str]:
chunks = [text[i:i+chunk_size] for i in range(0, len(text), chunk_size)]
return chunks
def ask_questions(questions: List[str]) -> List[str]:
answers = []
for question in questions:
answer = autogen.answer(question)
answers.append(answer)
return answers
def create_document(filename: str):
document = load_pdf(filename)
chunks = split_text(document)
answers = ask_questions(chunks)
return answers
# Load PDF file
pdf_file = "sample.pdf"
answers = create_document(pdf_file)
# Print the answers
for answer in answers:
print(answer)
開始使用LM Studio
現在我們已經完成了環境的設置和腳本的創建,我們可以開始使用LM Studio來執行PDF聊天應用程序了。
首先,我們需要導入所需的套件。
from vector_store.vector_store import VectorStore
from transformers import AutoTokenizer, AutoModel
from conversation.dpr import RecurrentSplitter, DPR
from base import PDFLoader
from conversation.train_transformer import ConversationTransformerMixin
from ai_channel.agent import UserProxyAgent, AssistantAgent
from ai_channel.app import AssistantApp
然後,我們可以根據上述代碼添加必要的代碼。具體代碼的詳細解釋可以在上述代碼塊中找到。
開始之前,我們需要將PDF文件加載到文檔中,然後將其拆分為一個個文本塊。
pdf_loader = PDFLoader()
docs = pdf_loader.load_pdf(filename)
splitter = RecurrentSplitter()
docs = splitter.split_document(docs)
vector_store = VectorStore(collection="full_document", embedding_function="sentence_transformer", device="cpu")
vector_store.add_documents(docs)
retriever = DPR(vector_store, memory_size=100000)
# Set up Autogen
autogen = ConversationTransformerMixin(
api_base=autogen_config["api_base"],
tokenizer=tokenizer,
model=model,
retriever=retriever
)
# Create user proxy agent
user_proxy_agent = UserProxyAgent(
human_input_mode="never",
auto_reply_once=True
)
# Create code execution config
config = {
"document_dir": "docs",
"assistant": {
"execution_config": {
"output_dir": "docs",
"system_message": "The conversation has been completed successfully.",
"terminate_on_success": True,
"continue_on_unsatisfiable": False
},
"satisfy_function": map
}
}
# Start the assistant app
app = AssistantApp(
chat_docs=docs,
chat_function=question_and_answer,
config=config
)
現在,你可以運行應用程序並查看結果了。
app.run_app()
問答範例和結果
以下是一些問答範例和結果:
問題: Doc McMillan寫了什麼關於Walmart?
答案: Doc McMillan在PDF文檔中寫到了Walmart對可持續性的承諾以及對經濟發展和為員工創造機會的重視。
問題: Walmart的執行團隊有哪些成員?
答案: Walmart的執行團隊中有多位重要成員,但詳細信息需要從文檔中查找。
問題: Walmart的CEA是誰?
答案: Walmart的CEA是Doug McMillon。
總結和展望
在這個視頻中,我們學習了如何使用LM Studio集成Autogen Longchain和開源模型,並利用它來創建一個PDF聊天應用程序。我們還展示了如何使用LM Studio來提取PDF文檔中的信息並回答相關問題。希望這個視頻對你有所幫助。謝謝觀看,請訂閱和分享我的頻道。下次見!