จัดเตรียมเอเจนต์ AI ด้วย LangChain และ DSPy สำหรับสถาปัตยกรรมซอฟต์แวร์ที่ได้รับการปรับปรุง | B4N1

จัดเตรียมเอเจนต์ AI ด้วย LangChain และ DSPy สำหรับสถาปัตยกรรมซอฟต์แวร์ที่ได้รับการปรับปรุง

8 months ago · b4n1 Read time: 2 min

การประสานตัวแทน AI ด้วย LangChain และ DSPy สำหรับสถาปัตยกรรมซอฟต์แวร์ที่ได้รับการปรับปรุง

บทนำ

ในโลกดิจิทัลที่เปลี่ยนแปลงอย่างรวดเร็วในปัจจุบัน ระบบซอฟต์แวร์มีความซับซ้อนมากขึ้น ด้วยการบูรณาการความสามารถด้านปัญญาประดิษฐ์ (AI) และการเรียนรู้ของเครื่อง (ML) ด้วยเหตุนี้ การออกแบบระบบที่ปรับขนาดได้และยืดหยุ่นซึ่งสามารถประสานตัวแทน AI ได้อย่างมีประสิทธิภาพจึงกลายเป็นข้อกังวลเร่งด่วนสำหรับวิศวกรซอฟต์แวร์ บทความนี้สำรวจจุดตัดกันของ AI วิศวกรรมซอฟต์แวร์ และเครื่องมือการประสานเพื่อออกแบบสถาปัตยกรรมซอฟต์แวร์ที่มีประสิทธิภาพ โดยมุ่งเน้นไปที่การนำเอเจนต์ AI ไปใช้โดยใช้ LangChain และ DSPy

ความจำเป็นในการจัดระบบ AI

ระบบซอฟต์แวร์แบบดั้งเดิมมักได้รับการออกแบบด้วยสถาปัตยกรรมแบบเสาหิน ซึ่งส่วนประกอบทั้งหมดเชื่อมต่อกันอย่างแน่นหนาและทำงานร่วมกันในลักษณะเชิงเส้นตรง อย่างไรก็ตาม ด้วยการถือกำเนิดของ AI และ ML ระบบซอฟต์แวร์จึงมีการกระจายและกระจายอำนาจมากขึ้น โดยมีตัวแทนหลายรายทำงานร่วมกันเพื่อบรรลุเป้าหมายร่วมกัน สิ่งนี้นำไปสู่ความจำเป็นในการจัดประสาน AI ซึ่งเกี่ยวข้องกับการออกแบบระบบที่สามารถจัดการและประสานงานการโต้ตอบระหว่างตัวแทน AI หลายคนได้อย่างมีประสิทธิภาพ

LangChain: กรอบการทำงานสำหรับการสร้างตัวแทน AI

LangChain เป็นเฟรมเวิร์ก Python สำหรับการสร้างเอเจนต์ AI ที่สามารถโต้ตอบระหว่างกันและกับระบบภายนอกได้ มีชุดเครื่องมือและไลบรารีที่ช่วยให้นักพัฒนาสามารถสร้างตัวแทนที่สามารถให้เหตุผล เรียนรู้ และปรับให้เข้ากับสภาพแวดล้อมที่เปลี่ยนแปลงได้ LangChain สร้างขึ้นจากภาษาการเขียนโปรแกรม Rust และมอบ API ระดับสูงสำหรับการสร้างตัวแทน AI

DSPy: กรอบการทำงานสำหรับการเรียบเรียง

DSPy เป็นเฟรมเวิร์ก Python สำหรับการสร้างระบบแบบกระจายที่สามารถควบคุมเอเจนต์ AI หลายตัวได้ มีชุดเครื่องมือและไลบรารีที่ช่วยให้นักพัฒนาสามารถออกแบบและปรับใช้ระบบที่ปรับขนาดได้และยืดหยุ่น ซึ่งสามารถจัดการการโต้ตอบที่ซับซ้อนระหว่างเอเจนต์หลายตัวได้ DSPy สร้างขึ้นบนระบบส่งข้อความ Apache Kafka และมอบ API ระดับสูงสำหรับการสร้างระบบแบบกระจาย

การนำ AI Agent ไปใช้ด้วย LangChain และ DSPy

หากต้องการใช้งานเอเจนต์ AI โดยใช้ LangChain และ DSPy เราต้องทำตามขั้นตอนเหล่านี้:

  1. กำหนดสถาปัตยกรรมเอเจนต์: กำหนดสถาปัตยกรรมของเอเจนต์ AI รวมถึงอินพุต เอาท์พุต และการโต้ตอบกับเอเจนต์อื่นๆ
  2. ใช้งานตรรกะของตัวแทน: นำตรรกะของตัวแทน AI ไปใช้งานโดยใช้ LangChain รวมถึงกลไกการใช้เหตุผล การเรียนรู้ และการปรับตัว
  3. ประสานการโต้ตอบของตัวแทน: ใช้ DSPy เพื่อประสานการโต้ตอบระหว่างเอเจนต์ AI หลายตัว รวมถึงโปรโตคอลการสื่อสารและกลไกการแลกเปลี่ยนข้อมูล
  4. ปรับใช้ระบบ: ปรับใช้ระบบโดยใช้แพลตฟอร์มคลาวด์หรือกรอบงานคอนเทนเนอร์ เช่น Docker

ตัวอย่างโค้ด: การใช้งาน AI Agent อย่างง่ายด้วย LangChain

นี่คือตัวอย่างโค้ดง่ายๆ ที่สาธิตวิธีการใช้เอเจนต์ AI โดยใช้ LangChain:

นำเข้า langchain
จาก langchain.chains นำเข้า LLMChain


ตัวแทน = langchain.Agent (
    input_schema={"ข้อความ": str},
    output_schema={"ข้อความ": str},
    เชน=LLMเชน(
        model="davinci:instructix",
        ความยาวสูงสุด=2048,
        อุณหภูมิ=0.7,
    )
)

# นำตรรกะของตัวแทนไปใช้
def agent_logic (อินพุต_ข้อความ):
    output_text = agent.run (อินพุต_ข้อความ)
    ส่งคืนเอาต์พุต_ข้อความ

#ทดสอบตัวแทน
input_text = "ความหมายของชีวิตคืออะไร"
output_text = agent_logic (อินพุต_ข้อความ)
พิมพ์ (output_text)

ตัวอย่างโค้ดนี้สาธิตวิธีการกำหนดเอเจนต์ AI โดยใช้ LangChain รวมถึงสคีมาอินพุตและเอาท์พุต และตรรกะของเอเจนต์ เอเจนต์ถูกนำไปใช้โดยใช้เชน Large Language Model (LLM) ซึ่งเป็นเอเจนต์ AI ประเภทหนึ่งที่สามารถให้เหตุผลและสร้างข้อความได้

คำสั่ง/ตัวอย่างที่ใช้มากที่สุด 5-10 อันดับแรกสำหรับ LangChain และ DSPy

ต่อไปนี้เป็นคำสั่ง/ตัวอย่างที่ใช้มากที่สุด 5-10 อันดับแรกสำหรับ LangChain และ DSPy:

  1. langchain.Agent(): สร้างอินสแตนซ์ตัวแทน AI ใหม่
ตัวแทน = langchain.Agent (
    input_schema={"ข้อความ": str},
    output_schema={"ข้อความ": str},
    เชน=LLMเชน(
        model="davinci:instructix",
        ความยาวสูงสุด=2048,
        อุณหภูมิ=0.7,
    )
)
  1. agent.run(): รันเอเจนต์ AI ด้วยอินพุตที่กำหนด
output_text = agent.run (อินพุต_ข้อความ)
  1. DSPy.create_cluster(): สร้างคลัสเตอร์ใหม่ของโหนดสำหรับระบบแบบกระจาย
คลัสเตอร์ = DSPy.create_cluster(
    num_nodes=5,
    node_type = "คนงาน",
)
  1. DSPy.create_agent(): สร้างอินสแตนซ์เอเจนต์ AI ใหม่สำหรับระบบแบบกระจาย
ตัวแทน = DSPy.create_agent(
    คลัสเตอร์=คลัสเตอร์
    agent_type="LLM",
)
  1. DSPy.deploy_agent(): ปรับใช้เอเจนต์ AI ไปยังระบบแบบกระจาย
DSPy.deploy_agent(
    ตัวแทน=ตัวแทน
    คลัสเตอร์=คลัสเตอร์
)
  1. DSPy.get_agent_status(): ดึงข้อมูลสถานะของตัวแทน AI
สถานะ = DSPy.get_agent_status(
    ตัวแทน=ตัวแทน
    คลัสเตอร์=คลัสเตอร์
)
  1. DSPy.update_agent(): อัปเดตเอเจนต์ AI ด้วยข้อมูลหรือพารามิเตอร์ใหม่
DSPy.update_agent(
    ตัวแทน=ตัวแทน
    คลัสเตอร์=คลัสเตอร์
    new_data={"text": "ข้อความที่ป้อนใหม่"},
)
  1. DSPy.delete_agent(): ลบ AI agent ออกจากระบบแบบกระจาย
DSPy.delete_agent(
    ตัวแทน=ตัวแทน
    คลัสเตอร์=คลัสเตอร์
)
  1. DSPy.create_chain(): สร้างเชนใหม่ของเอเจนต์ AI สำหรับระบบแบบกระจาย
เชน = DSPy.create_chain(
    ตัวแทน=[ตัวแทน1, ตัวแทน2, ตัวแทน3],
)
  1. DSPy.deploy_chain(): ปรับใช้เชนของตัวแทน AI ไปยังระบบแบบกระจาย
DSPy.deploy_chain(
    โซ่=โซ่
    คลัสเตอร์=คลัสเตอร์
)

การแสดงภาพ

นี่คือการแสดงภาพสถาปัตยกรรม LangChain และ DSPy โดยใช้ Chart.js:

{
  "type": "แผนภูมิวงกลม",
  "ข้อมูล": {
    "labels": ["LangChain", "DSPy"],
    "ชุดข้อมูล": [
      {
        "label": "ตัวแทน AI",
        "ข้อมูล": [50, 50],
        "สีพื้นหลัง": ["#4CAF50", #FF9800"]
      }
    ]
  },
  "ตัวเลือก": {
    "ชื่อ": {
      "จอแสดงผล": จริง
      "text": "สถาปัตยกรรม LangChain และ DSPy"
    },
    "ตำนาน": {
      "จอแสดงผล": จริง
    }
  }
}

การแสดงภาพนี้แสดงให้เห็นถึงการกระจายของเอเจนต์ AI ระหว่าง LangChain และ DSPy โดย 50% ของเอเจนต์ทำงานบน LangChain และ 50% ทำงานบน DSPy

บทสรุป

LangChain และ DSPy มอบเฟรมเวิร์กที่ทรงพลังสำหรับการสร้างและประสานเอเจนต์ AI ซึ่งช่วยให้นักพัฒนาสามารถออกแบบระบบที่ปรับขนาดได้และยืดหยุ่น ซึ่งสามารถจัดการการโต้ตอบที่ซับซ้อนระหว่างเอเจนต์หลายตัวได้อย่างมีประสิทธิภาพ ด้วยการทำตามขั้นตอนที่ระบุไว้ในบทความนี้ นักพัฒนาสามารถใช้เอเจนต์ AI โดยใช้ LangChain และ DSPy และปรับใช้กับระบบแบบกระจายโดยใช้ DSPy ตัวอย่างโค้ดและการแสดงภาพที่มีให้แสดงให้เห็นถึงความสามารถของ LangChain และ DSPy และคำสั่ง/ตัวอย่างที่ใช้มากที่สุด 5-10 อันดับแรกจะเป็นข้อมูลอ้างอิงโดยย่อสำหรับนักพัฒนา


Have Questions?

Let's Talk

Contact me on LinkedIn