การสร้างเอเจนต์ AI ในพื้นที่: คำแนะนำเกี่ยวกับ LangGraph, เอเจนต์ AI และ Ollama
การแนะนำ
ในยุคของเทคโนโลยีที่เปลี่ยนแปลงตลอดเวลา ปัญญาประดิษฐ์ (AI) กำลังขับเคลื่อนนวัตกรรมและการเปลี่ยนแปลงอุตสาหกรรม ท่ามกลางความก้าวหน้าต่างๆ ภายใน AI การพัฒนาและการปรับใช้ตัวแทน AI เป็นที่รู้กันว่าจะเปลี่ยนวิธีดำเนินธุรกิจ ปรับปรุงประสบการณ์ผู้ใช้ และทำให้งานที่ซับซ้อนเป็นอัตโนมัติ
ตัวแทน AI ซึ่งเป็นหน่วยงานซอฟต์แวร์ที่สามารถปฏิบัติงานเฉพาะอย่างได้โดยอัตโนมัติ ได้กลายเป็นสิ่งที่ขาดไม่ได้ในแอปพลิเคชันจำนวนมาก ตั้งแต่แชทบอทบริการลูกค้าไปจนถึงเครื่องมือวิเคราะห์ข้อมูลขั้นสูงไปจนถึงตัวแทนทางการเงิน
ในบทความนี้ เราจะสร้างเอเจนต์ AI พื้นฐานเพื่อสำรวจความสำคัญ ฟังก์ชันการทำงาน และกรอบงานเทคโนโลยีที่อำนวยความสะดวกในการสร้างและปรับใช้เอเจนต์เหล่านี้ โดยเฉพาะอย่างยิ่ง เราจะเข้าใจ LangGraph และ Ollama ซึ่งเป็นเครื่องมืออันทรงพลังสองตัวที่ทำให้การสร้างตัวแทน AI ในพื้นที่ง่ายขึ้น
ในตอนท้ายของคู่มือนี้ คุณจะมีความเข้าใจอย่างครอบคลุมเกี่ยวกับการใช้ประโยชน์จากเทคโนโลยีเหล่านี้เพื่อสร้างตัวแทน AI ที่มีประสิทธิภาพและประสิทธิผลซึ่งปรับให้เหมาะกับความต้องการเฉพาะของคุณ
ทำความเข้าใจกับตัวแทน AI
เจ้าหน้าที่ AI คือหน่วยงานหรือระบบที่รับรู้สภาพแวดล้อมของตนและดำเนินการเพื่อให้บรรลุเป้าหมายหรือวัตถุประสงค์เฉพาะ ตัวแทนเหล่านี้มีตั้งแต่อัลกอริธึมธรรมดาไปจนถึงระบบที่ซับซ้อนซึ่งมีความสามารถในการตัดสินใจที่ซับซ้อน นี่คือประเด็นสำคัญบางประการเกี่ยวกับตัวแทน AI:
- การรับรู้: เจ้าหน้าที่ AI ใช้เซ็นเซอร์หรือกลไกอินพุตเพื่อรับรู้สภาพแวดล้อมของพวกเขา ซึ่งอาจเกี่ยวข้องกับการรวบรวมข้อมูลจากแหล่งต่างๆ เช่น กล้อง ไมโครโฟน หรือเซ็นเซอร์อื่นๆ
- การให้เหตุผล: เจ้าหน้าที่ AI ได้รับข้อมูลและใช้อัลกอริธึมและแบบจำลองเพื่อประมวลผลและตีความข้อมูล ขั้นตอนนี้เกี่ยวข้องกับการทำความเข้าใจรูปแบบ การคาดการณ์ หรือการสร้างการตอบสนอง
- การตัดสินใจ: ตัวแทน AI ก็เหมือนกับมนุษย์ ตัดสินใจเกี่ยวกับการกระทำหรือผลลัพธ์ตามการรับรู้และเหตุผล การตัดสินใจเหล่านี้มีจุดมุ่งหมายเพื่อให้บรรลุเป้าหมายหรือวัตถุประสงค์เฉพาะที่กำหนดโดยการเขียนโปรแกรมหรือกระบวนการเรียนรู้ นอกจากนี้ เจ้าหน้าที่ AI จะทำหน้าที่เป็นผู้ช่วยมากกว่าที่จะเข้ามาแทนที่มนุษย์
- การดำเนินการ: เจ้าหน้าที่ AI ดำเนินการตามการตัดสินใจของพวกเขา ซึ่งอาจเกี่ยวข้องกับการกระทำทางกายภาพในโลกแห่งความเป็นจริง (เช่น การเคลื่อนย้ายแขนหุ่นยนต์) หรือการกระทำเสมือนจริงในสภาพแวดล้อมดิจิทัล (เช่น การให้คำแนะนำในแอป)
ตัวอย่างของการทำงานของตัวแทน AI คือระบบการดูแลสุขภาพที่วิเคราะห์ข้อมูลผู้ป่วยจากแหล่งต่างๆ เช่น เวชระเบียน ผลการทดสอบ และอุปกรณ์ตรวจสอบแบบเรียลไทม์ ตัวแทน AI เหล่านี้สามารถใช้ข้อมูลนี้ในการตัดสินใจอย่างมีข้อมูล เช่น คาดการณ์แนวโน้มที่ผู้ป่วยจะมีอาการเฉพาะ หรือแนะนำแผนการรักษาเฉพาะบุคคลตามประวัติทางการแพทย์ของผู้ป่วยและสถานะสุขภาพในปัจจุบัน
ความแตกต่างระหว่าง AI Agent และแอปพลิเคชัน RAG
แอปพลิเคชัน RAG (Retriival-Augmented Generation) และตัวแทน AI อ้างถึงแนวคิดที่แตกต่างกันภายในปัญญาประดิษฐ์
RAG ใช้เพื่อปรับปรุงประสิทธิภาพของโมเดล LLM โดยผสมผสานวิธีการดึงข้อมูลเข้าด้วยกัน ระบบดึงข้อมูลจะค้นหาเอกสารหรือข้อมูลที่เกี่ยวข้องจากคลังข้อมูลขนาดใหญ่โดยอิงตามแบบสอบถามอินพุต โมเดลกำเนิด (เช่น โมเดลภาษาที่ใช้หม้อแปลงไฟฟ้า) จากนั้นจะใช้ข้อมูลที่ดึงมานี้เพื่อสร้างคำตอบที่แม่นยำและเกี่ยวข้องกับบริบทมากขึ้น ซึ่งจะช่วยเพิ่มความแม่นยำของเนื้อหาที่สร้างขึ้นเนื่องจากการบูรณาการข้อมูลที่ดึงมา นอกจากนี้ เทคนิคนี้ยังขจัดความจำเป็นในการปรับแต่งหรือฝึกอบรม LLM เกี่ยวกับข้อมูลใหม่อีกด้วย
ในทางกลับกัน เจ้าหน้าที่ AI เป็นเอนทิตีซอฟต์แวร์อัตโนมัติที่ออกแบบมาเพื่อทำงานเฉพาะหรือชุดของงาน ทำงานตามกฎที่กำหนดไว้ล่วงหน้า โมเดลการเรียนรู้ของเครื่อง หรือทั้งสองอย่าง พวกเขามักจะโต้ตอบกับผู้ใช้หรือระบบอื่น ๆ เพื่อรวบรวมข้อมูล ตอบกลับ หรือดำเนินการ ประสิทธิภาพของตัวแทน AI บางรายเพิ่มขึ้นเนื่องจากสามารถเรียนรู้และปรับตัวตามข้อมูลและประสบการณ์ใหม่ๆ เมื่อเวลาผ่านไป AI สามารถจัดการงานหลายอย่างพร้อมกันได้ ทำให้ธุรกิจมีความยืดหยุ่น
- RAG is a technique used to improve the performance of generative models by incorporating information retrieval methods
ผู้ช่วยส่วนตัว AI สามารถทำงานอัตโนมัติและตัดสินใจได้
- Retrieval system + generative model
ระบบตามกฎ แบบจำลองการเรียนรู้ของเครื่อง หรือการผสมผสานเทคนิค AI
- Improved accuracy and relevance, leverage external data
ปรับปรุงความเก่งกาจและการปรับตัว
- Question answering, customer support, content generation
ผู้ช่วยเสมือน ยานพาหนะอัตโนมัติ ระบบแนะนำ
- Ability to leverage large, external datasets for enhancing generative responses without requiring the generative model itself to be trained on all that data
ความสามารถในการโต้ตอบกับผู้ใช้และปรับให้เข้ากับความต้องการหรือสภาพแวดล้อมที่เปลี่ยนแปลง
- A chatbot that retrieves relevant FAQs or knowledge base articles to answer user queries more effectively.
-
เครื่องมือแนะนำที่แนะนำผลิตภัณฑ์หรือเนื้อหาตามความต้องการและพฤติกรรมของผู้ใช้
โดยสรุป แอปพลิเคชัน RAG ได้รับการออกแบบมาโดยเฉพาะเพื่อเพิ่มขีดความสามารถของแบบจำลองกำเนิดโดยผสมผสานกลไกการดึงข้อมูล เจ้าหน้าที่ AI เป็นหน่วยงานที่กว้างขึ้นซึ่งมีจุดมุ่งหมายเพื่อดำเนินงานต่างๆ มากมายโดยอัตโนมัติ
ภาพรวมโดยย่อของ LangGraph
LangGraph เป็นไลบรารีที่มีประสิทธิภาพสำหรับการสร้างแอปพลิเคชัน stateful และ multi-actor โดยใช้โมเดลภาษาขนาดใหญ่ (LLM) ช่วยสร้างขั้นตอนการทำงานที่ซับซ้อนที่เกี่ยวข้องกับตัวแทนเดี่ยวหรือหลายตัว โดยนำเสนอข้อได้เปรียบที่สำคัญ เช่น รอบ ความสามารถในการควบคุม และความคงอยู่
ประโยชน์ที่สำคัญ
- วงจรและการแตกแขนง: ไม่เหมือนกับเฟรมเวิร์กอื่นๆ ที่ใช้กราฟอะไซคลิกแบบกำหนดทิศทางอย่างง่าย (DAG) LangGraph รองรับลูปและเงื่อนไข ซึ่งจำเป็นสำหรับการสร้างพฤติกรรมของเอเจนต์ที่ซับซ้อน
- การควบคุมแบบละเอียด: LangGraph ให้การควบคุมโฟลว์แอปพลิเคชันของคุณโดยละเอียดและสถานะเป็นเฟรมเวิร์กระดับต่ำ ทำให้เหมาะสำหรับการพัฒนาตัวแทนที่เชื่อถือได้
- ความคงอยู่: ประกอบด้วยการคงอยู่ในตัว ซึ่งช่วยให้คุณสามารถบันทึกสถานะหลังจากแต่ละขั้นตอน หยุดชั่วคราวและดำเนินการต่อ และรองรับฟีเจอร์ขั้นสูง เช่น การกู้คืนข้อผิดพลาดและเวิร์กโฟลว์ที่ควบคุมโดยมนุษย์
คุณสมบัติ
- วงจรและการแตกแขนง: ใช้ลูปและเงื่อนไขในแอปของคุณ
- ความคงอยู่: บันทึกสถานะโดยอัตโนมัติหลังจากแต่ละขั้นตอน ซึ่งสนับสนุนการกู้คืนข้อผิดพลาด
- Human-in-the-Loop: ขัดจังหวะการดำเนินการเพื่อขออนุมัติหรือแก้ไขโดยมนุษย์
- การสนับสนุนการสตรีม: สตรีมเอาต์พุตตามที่แต่ละโหนดสร้าง
- บูรณาการกับ LangChain: ผสานรวมกับ LangChain และ LangSmith ได้อย่างราบรื่น แต่ยังสามารถใช้งานแยกกันได้อีกด้วย
LangGraph ได้รับแรงบันดาลใจจากเทคโนโลยีเช่น Pregel และ Apache Beam พร้อมอินเทอร์เฟซที่ใช้งานง่ายคล้ายกับ NetworkX พัฒนาโดย LangChain Inc. โดยนำเสนอเครื่องมือที่มีประสิทธิภาพสำหรับการสร้างแอปพลิเคชันที่ขับเคลื่อนด้วย AI ขั้นสูงที่เชื่อถือได้
ความรู้เบื้องต้นเกี่ยวกับ Ollama อย่างรวดเร็ว
Ollama เป็นโปรเจ็กต์โอเพ่นซอร์สที่ทำให้การรัน LLM บนเครื่องของคุณเป็นเรื่องง่ายและเป็นมิตรต่อผู้ใช้ โดยเป็นแพลตฟอร์มที่ใช้งานง่ายซึ่งช่วยลดความซับซ้อนของเทคโนโลยี LLM ทำให้สามารถเข้าถึงและปรับแต่งได้สำหรับผู้ใช้ที่ต้องการควบคุมพลังของ AI โดยไม่จำเป็นต้องมีความเชี่ยวชาญทางเทคนิคที่กว้างขวาง
มันเป็นเรื่องง่ายที่จะติดตั้ง นอกจากนี้เรายังมีตัวเลือกรุ่นและชุดคุณสมบัติและฟังก์ชันการทำงานที่ครอบคลุมซึ่งออกแบบมาเพื่อปรับปรุงประสบการณ์ผู้ใช้
คุณสมบัติที่สำคัญ
- การปรับใช้ภายในเครื่อง: เรียกใช้ LLM ที่ซับซ้อนโดยตรงบนเครื่องภายในของคุณ เพื่อให้มั่นใจถึงความเป็นส่วนตัวของข้อมูลและลดการพึ่งพาเซิร์ฟเวอร์ภายนอก
- อินเทอร์เฟซที่ใช้งานง่าย: ออกแบบมาให้ใช้งานง่าย ทำให้ผู้ใช้ที่มีความรู้ทางเทคนิคในระดับต่างๆ สามารถเข้าถึงได้
- ความสามารถในการปรับแต่งได้: ปรับแต่งโมเดล AI ให้ตรงตามความต้องการเฉพาะของคุณ ไม่ว่าจะเป็นสำหรับการวิจัย การพัฒนา หรือโครงการส่วนตัว
- โอเพ่นซอร์ส: Ollama เป็นโอเพ่นซอร์สสนับสนุนการมีส่วนร่วมของชุมชนและการปรับปรุงอย่างต่อเนื่อง ส่งเสริมนวัตกรรมและการทำงานร่วมกัน
- การติดตั้งง่ายดาย: Ollama โดดเด่นด้วยกระบวนการติดตั้งที่เป็นมิตรต่อผู้ใช้ โดยนำเสนอวิธีการตั้งค่าที่ใช้งานง่ายและไม่ยุ่งยากสำหรับผู้ใช้ Windows, macOS และ Linux เราได้สร้างบทความเกี่ยวกับการดาวน์โหลดและใช้งาน Ollama โปรดตรวจสอบบล็อก (ลิงก์ที่ให้ไว้ในส่วนทรัพยากร)
- ชุมชน Ollama: ชุมชน Ollama เป็นชุมชนที่มีชีวิตชีวาและขับเคลื่อนด้วยโครงการซึ่งส่งเสริมการทำงานร่วมกันและนวัตกรรม พร้อมด้วยชุมชนโอเพนซอร์สที่กระตือรือร้นซึ่งช่วยปรับปรุงการพัฒนา เครื่องมือ และการบูรณาการ
คำแนะนำทีละขั้นตอนในการสร้างเอเจนต์ AI โดยใช้ LangGraph และ Ollama
ในการสาธิตนี้ เราจะสร้างตัวอย่างง่ายๆ ของตัวแทนที่ใช้โมเดล Mistral เอเจนต์นี้สามารถค้นหาเว็บโดยใช้ Tavily Search API และสร้างการตอบกลับได้
เราจะเริ่มต้นด้วยการติดตั้ง Langgraph ซึ่งเป็นไลบรารีที่ออกแบบมาเพื่อสร้างแอปพลิเคชันแบบมีสถานะและมีหลายตัวดำเนินการด้วย LLM ที่เหมาะสำหรับการสร้างเวิร์กโฟลว์ตัวแทนและหลายตัวแทน ได้รับแรงบันดาลใจจาก Pregel, Apache Beam และ NetworkX, LangGraph ได้รับการพัฒนาโดย LangChain Inc. และสามารถใช้งานได้โดยอิสระจาก LangChain
เราจะใช้ Mistral เป็นโมเดล LLM ซึ่งจะผสานรวมกับ Ollama และ Search API ของ Tavily API ของ Tavily ได้รับการปรับให้เหมาะกับ LLM โดยมอบประสบการณ์การค้นหาที่เป็นจริง มีประสิทธิภาพ และต่อเนื่อง
ในบทความก่อนหน้านี้ เราได้เรียนรู้วิธีใช้ Qwen2 โดยใช้ Ollama และเราได้เชื่อมโยงบทความนี้แล้ว โปรดติดตามบทความเพื่อติดตั้ง Ollama และวิธีเรียกใช้ LLM โดยใช้ Ollama
ก่อนที่เราจะเริ่มการติดตั้ง ให้เราตรวจสอบ GPU ของเราก่อน คุณสามารถเปิดเทอร์มินัลแล้วพิมพ์รหัสด้านล่างเพื่อตรวจสอบการกำหนดค่า GPU ของคุณ
nvidia-smi
ตอนนี้เราจะเริ่มต้นด้วยการติดตั้งของเรา
pip install -U langgraph
pip install -U langchain-nomic langchain_community tiktoken langchainhub chromadb langchain langgraph tavily-python
pip install langchain-openai
หลังจากติดตั้งเสร็จแล้ว เราจะไปยังขั้นตอนสำคัญถัดไป: จัดเตรียมคีย์ Travily API
export TAVILY_API_KEY="apikeygoeshere"
ตอนนี้เราจะเรียกใช้โค้ดด้านล่างเพื่อดึงโมเดล โปรดลองใช้ Llama หรือ Mistral เวอร์ชันอื่น
ollama pull mistral
นำเข้าไลบรารีที่จำเป็นทั้งหมดที่จำเป็นในการสร้างเอเจนต์
from langchain import hub
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain.prompts import PromptTemplate
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import JsonOutputParser
from langchain_community.chat_models import ChatOllama
เราจะเริ่มต้นด้วยการกำหนดเครื่องมือที่เราต้องการใช้และผูกเครื่องมือเข้ากับ llm สำหรับตัวอย่างง่ายๆ นี้ เราจะใช้เครื่องมือค้นหาในตัวผ่าน Tavily
tools = [TavilySearchResults(max_results=3)]
llm_with_tools = llm.bind_tools(tools)
ข้อมูลโค้ดด้านล่างดึงเทมเพลตพร้อมต์และพิมพ์ออกมาในรูปแบบที่อ่านได้ เทมเพลตนี้สามารถใช้หรือแก้ไขได้ตามต้องการสำหรับแอปพลิเคชัน
prompt = hub.pull("wfh/react-agent-executor")
prompt.pretty_print()
ต่อไป เราจะกำหนดค่าการใช้ Mistral ผ่านแพลตฟอร์ม Ollama
llm = ChatOpenAI(model="mistral", api_key="ollama", base_url="http://localhost:11434/v1",
)
สุดท้าย เราจะสร้างตัวแทนดำเนินการโดยใช้โมเดลภาษาของเรา (llm
) ชุดเครื่องมือ (เครื่องมือ
) และเทมเพลตพร้อมท์ (prompt
) เอเจนต์ได้รับการกำหนดค่าให้ตอบสนองต่ออินพุต ใช้เครื่องมือ และสร้างการตอบกลับตามพรอมต์ที่ระบุ ทำให้สามารถดำเนินงานในลักษณะที่ได้รับการควบคุมและมีประสิทธิภาพ
agent_executor = create_react_agent(llm, tools, messages_modifier=prompt)
================================ System Message ================================
You are a helpful assistant.
============================= Messages Placeholder =============================
{{messages}}
ข้อมูลโค้ดที่กำหนดจะเรียกใช้ผู้ดำเนินการตัวแทนเพื่อประมวลผลข้อความอินพุต ขั้นตอนนี้มีจุดมุ่งหมายเพื่อส่งคำถามไปยังผู้ดำเนินการตัวแทนและรับการตอบกลับ ตัวแทนจะใช้โมเดลภาษาที่กำหนดค่าไว้ (ในกรณีนี้คือ Mistral) เครื่องมือ และแจ้งให้ประมวลผลข้อความและสร้างการตอบกลับที่เหมาะสม
response = agent_executor.invoke({"messages": [("user", "explain artificial intelligence")]})
for message in response['messages']:
print(message.content)
และสิ่งนี้จะสร้างการตอบสนองด้านล่าง
บทสรุป
LangGraph และเครื่องมือต่างๆ เช่น AI Agent และ Ollama แสดงถึงก้าวสำคัญในการพัฒนาและปรับใช้โซลูชันปัญญาประดิษฐ์เฉพาะที่ ด้วยการใช้ประโยชน์จากความสามารถของ LangGraph ในการปรับปรุงส่วนประกอบ AI ต่างๆ และสถาปัตยกรรมแบบโมดูลาร์ นักพัฒนาจึงสามารถสร้างโซลูชัน AI ที่หลากหลายและปรับขนาดได้ ซึ่งมีประสิทธิภาพและปรับตัวได้สูงกับความต้องการที่เปลี่ยนแปลงไป
ตามที่บล็อกของเราอธิบายไว้ ตัวแทน AI นำเสนอแนวทางที่ยืดหยุ่นในการทำงานอัตโนมัติและปรับปรุงประสิทธิภาพการทำงาน ตัวแทนเหล่านี้สามารถปรับแต่งให้จัดการกับฟังก์ชันต่างๆ ได้ ตั้งแต่งานอัตโนมัติแบบง่ายๆ ไปจนถึงกระบวนการตัดสินใจที่ซับซ้อน ทำให้เป็นเครื่องมือที่ขาดไม่ได้สำหรับธุรกิจยุคใหม่
Ollama ซึ่งเป็นส่วนหนึ่งของระบบนิเวศนี้ ให้การสนับสนุนเพิ่มเติมโดยนำเสนอเครื่องมือและบริการพิเศษที่เสริมความสามารถของ LangGraph
โดยสรุป การบูรณาการ LangGraph และ Ollama ทำให้เกิดกรอบการทำงานที่แข็งแกร่งสำหรับการสร้างตัวแทน AI ที่มีประสิทธิภาพและประสิทธิผล คู่มือนี้เป็นแหล่งข้อมูลอันมีค่าสำหรับทุกคนที่ต้องการควบคุมศักยภาพของเทคโนโลยีเหล่านี้เพื่อขับเคลื่อนนวัตกรรมและบรรลุวัตถุประสงค์ในภูมิทัศน์ของปัญญาประดิษฐ์ที่พัฒนาอยู่ตลอดเวลา
แหล่งข้อมูลเพิ่มเติม
- วิธีย้ายจากตัวแทน LangChain ดั้งเดิมไปยัง LangGraph
- การเรียกเครื่องมือ
- เอกสาร LangGraph
- การเปรียบเทียบระบบ RAG และตัวแทน AI
- รหัสอ้างอิง