DSPy እና LangChainን በመጠቀም ለተሻሻለ የሶፍትዌር ልማት ቅልጥፍና ባለብዙ ወኪል AI ስርዓቶችን ማደራጀት | B4N1

DSPy እና LangChainን በመጠቀም ለተሻሻለ የሶፍትዌር ልማት ቅልጥፍና ባለብዙ ወኪል AI ስርዓቶችን ማደራጀት

3 months ago · b4n1 Read time: 4 min

መግቢያ

የሶፍትዌር ልማት ሂደት ከጊዜ ወደ ጊዜ ውስብስብ እየሆነ መጥቷል፣ በርካታ ባለድርሻ አካላት፣ ተግባራት እና ቴክኖሎጂዎች ተሳትፈዋል። በመሆኑም ከፍተኛ ጥራት ያላቸውን ሶፍትዌሮችን በወቅቱ ለማድረስ ገንቢዎች እነዚህን የተለያዩ አካላት በማስተዳደር እና በማስተባበር ረገድ ከፍተኛ ፈተናዎች ይገጥሟቸዋል። እነዚህን ተግዳሮቶች ለመቅረፍ አንዱ ተስፋ ሰጪ አካሄድ የእድገት ሂደቶችን በራስ-ሰር የሚያስተካክል እና የሚያቀላጥፍ የባለብዙ ወኪል AI ስርዓቶችን መጠቀም ነው። በዚህ ጽሑፍ ውስጥ የሶፍትዌር ልማት ቅልጥፍናን ለማሻሻል ባላቸው አቅም ላይ በማተኮር እንደ DSPy እና LangChain ያሉ የባለብዙ ወኪል AI ኦርኬስትራ መሳሪያዎችን ቴክኒካዊ አተገባበር እንቃኛለን።

መልቲ-ኤጀንት AI ሲስተምስ ምንድናቸው?

ባለብዙ ወኪል AI ስርዓቶች አንድ የጋራ ግብን ለማሳካት እርስ በርስ የሚገናኙ ብዙ ራሳቸውን ችለው የሚንቀሳቀሱ ወኪሎችን ያቀፉ ናቸው። እነዚህ ወኪሎች የሶፍትዌር ፕሮግራሞች፣ ሰዎች ወይም የሁለቱም ጥምር ሊሆኑ ይችላሉ። እያንዳንዱ ወኪል የራሱ የሆነ አቅም፣ እውቀት እና ግቦች አሉት፣ እነሱም በጋራ አካባቢ ወይም የግንኙነት ፕሮቶኮል የተቀናጁ። ተወካዮቹ እርስ በርሳቸው መማር፣ ከተለዋዋጭ ሁኔታዎች ጋር መላመድ እና በግል እና በጋራ እውቀታቸው ላይ ተመስርተው ውሳኔ ማድረግ ይችላሉ።

DSPy ምንድን ነው?

DSPy የብዙ ወኪል AI ስርዓቶችን ለመገንባት እና ለማስተዳደር የፓይዘን ቤተ-መጽሐፍት ነው። ወኪሎችን ለመፍጠር፣ ባህሪያቸውን ለመወሰን እና ግንኙነታቸውን ለማስተባበር ቀላል እና ሊታወቅ የሚችል ኤፒአይ ያቀርባል። DSPy በጣም ተለዋዋጭ እና ሊሰፋ የሚችል እንዲሆን የተነደፈ ነው, ይህም ገንቢዎች ውስብስብ ስርዓቶችን በቀላሉ እንዲገነቡ ያስችላቸዋል. አንዳንድ የ DSPy ቁልፍ ባህሪያት ያካትታሉ፡

  • ወኪል መፍጠር፡ DSPy ገንቢዎች ብጁ ባህሪ፣ እውቀት እና ግቦች ወኪሎች እንዲፈጥሩ ያስችላቸዋል። ** የወኪል ማስተባበር ***፡ DSPy ወኪሎች እንዲግባቡ እና ድርጊቶቻቸውን እንዲያቀናጁ ስልቶችን ያቀርባል።
  • ** ልኬት ***: DSPy ብዙ ወኪሎችን እና ውስብስብ ስርዓቶችን ለማስተናገድ የተነደፈ ነው።

LangChain ምንድን ነው?

LangChain የተፈጥሮ ቋንቋ ማቀነባበሪያ (NLP) ቴክኒኮችን በመጠቀም የብዙ ወኪል AI ስርዓቶችን ለመገንባት እና ለማስተዳደር የፓይዘን ቤተ-መጽሐፍት ነው። ሰው መሰል ቋንቋን የሚረዱ እና የሚያመነጩ ወኪሎችን ለመፍጠር የተለያዩ መሳሪያዎችን እና ኤፒአይዎችን ያቀርባል። LangChain በጣም ተለዋዋጭ እና ሊሰፋ የሚችል እንዲሆን የተነደፈ ነው, ይህም ገንቢዎች ውስብስብ ስርዓቶችን በቀላሉ እንዲገነቡ ያስችላቸዋል. አንዳንድ የ LangChain ቁልፍ ባህሪያት የሚከተሉትን ያካትታሉ:

  • ** የተፈጥሮ ቋንቋ መረዳት ***: LangChain ወኪሎች የሰው ቋንቋ እንዲረዱ እና ተዛማጅ መረጃዎችን እንዲያወጡ ኤፒአይዎችን ያቀርባል።
  • ተፈጥሮአዊ ቋንቋ ማመንጨት፡ LangChain ወኪሎች ሰው የሚመስል ቋንቋ እንዲያመነጩ እና ከሌሎች ወኪሎች ጋር እንዲግባቡ ኤፒአይዎችን ያቀርባል።
  • ** Scalability ***: LangChain የተነደፈው ትልቅ የቋንቋ ውሂብ እና ውስብስብ ስርዓቶችን ለማስተናገድ ነው።

የቴክኒክ አተገባበር

የ DSPy እና LangChain ቴክኒካዊ አተገባበርን ለማሳየት፣ ለሶፍትዌር ልማት የባለብዙ ወኪል AI ስርዓት ቀላል ምሳሌን እንመልከት። በዚህ ምሳሌ፣ ሁለት ወኪሎችን እንፈጥራለን፡- የገንቢ ወኪል እና የፕሮጀክት አስተዳዳሪ ወኪል።

የገንቢ ወኪል

የገንቢ ወኪሉ ኮድ የመፃፍ፣ የመሞከር እና የሶፍትዌር ማረም ሃላፊነት አለበት። ድርጊቶቹን እና ከሌሎች ወኪሎች ጋር ያለውን ግንኙነት የሚገልጹ የባህሪዎች ስብስብ ለመፍጠር DSPy ይጠቀማል።

`` ፓይቶን አስመጣ dspy

የገንቢ ወኪል ይፍጠሩ

developer_agent = dspy.ኤጀንት( ስም = "ገንቢ", ባህሪያት=[ dspy.ባህሪ( ስም = "የጻፍ_ኮድ", action=dspy.Action("write_code", {"code": "def hello_world(): አትም('ሄሎ አለም!')"})፣ ሁኔታዎች=[dspy.ሁኔታ("ፕሮጀክት_አስተዳዳሪ_የተመደበ_ተግባር")]] ), dspy.ባህሪ( ስም = "የሙከራ_ኮድ", action=dspy.Action("test_code"፣ {"የሙከራ_ኬዝ"፡ ["ሙከራ_ሠላም_አለም"]})፣ ሁኔታዎች=[dspy.ሁኔታ("ኮድ_የተፃፈ")] ) ] )


### የፕሮጀክት አስተዳዳሪ ወኪል

የፕሮጀክት ማኔጀር ኤጀንት ተግባራትን የመመደብ፣ ሂደትን የመከታተል እና የእድገት ሂደቱን የማስተዳደር ሃላፊነት አለበት። ተግባራቶቹን እና ከሌሎች ወኪሎች ጋር ያለውን ግንኙነት የሚገልጹ የባህሪዎች ስብስብ ለመፍጠር LangChainን ይጠቀማል።

`` ፓይቶን
አስመጣ langchain

# የፕሮጀክት አስተዳዳሪ ወኪል ይፍጠሩ
project_manager_agent = langchain. ወኪል(
    ስም = "የፕሮጀክት አስተዳዳሪ",
    ባህሪያት=[
        langchain.ባህሪ(
            ስም = "መመደብ_ተግባር",
            action=langchain.ድርጊት("assign_task"፣ {"ተግባር"፡ "የመግባት ተግባርን ተግብር"})፣
            ሁኔታዎች=[langchain.ሁኔታ("ገንቢ_የሚገኝ")]
        ),
        langchain.ባህሪ(
            ስም = "የትራክ_ሂደት",
            እርምጃ=langchain።እርምጃ("track_progress"፣ {"progress": "50%"})፣
            ሁኔታዎች=[langchain.ሁኔታ("ገንቢ_የተሰራ_ሂደት")]
        )
    ]
)

ከፍተኛ 5-10 በብዛት ጥቅም ላይ የዋሉ ትዕዛዞች/ቅንጣዎች

በDSPy እና LangChain ውስጥ በብዛት ጥቅም ላይ የዋሉት አንዳንድ ትዕዛዞች እና ቅንጥቦች እዚህ አሉ፡

DSPy

  • dspy.Agent(ስም =ኤጀንት»፣ባህሪዎች=[...])፡ በተሰጠው ስም እና ባህሪ አዲስ ወኪል ይፍጠሩ።
  • dspy.Behavior(name="Behavior", action=dspy.Action("Action", {...}))፡ በተሰጠው ስም እና ድርጊት አዲስ ባህሪ ይፍጠሩ።
  • dspy.Condition(name="Condition", predicate=dspy.Predicate("ተሳቢ", {...}))፡ በተሰጠው ስም እና ተሳቢ አዲስ ሁኔታ ይፍጠሩ።
  • dspy.Action(name="Action", {...})፡ በተሰጠው ስም እና ግቤቶች አዲስ እርምጃ ይፍጠሩ።
  • dspy.Predicate(name="predicate", {...})፡ በተሰጠው ስም እና ግቤቶች አዲስ ተሳቢ ይፍጠሩ።

LangChain

  • langchain. ወኪል(ስም = "ወኪል"፣ባህሪዎች=[...])፡ በተሰጠው ስም እና ባህሪ አዲስ ወኪል ይፍጠሩ።
  • langchain. Behavior(name="Behavior", action=langchain.Action("Action", {...}))፡ በተሰጠው ስም እና ድርጊት አዲስ ባህሪ ይፍጠሩ።
  • langchain.Condition(name="Condition", predicate=langchain.Predicate("ተሳቢ", {...}))፡ በተሰጠው ስም እና ተሳቢ አዲስ ሁኔታ ይፍጠሩ።
  • langchain.Action(name="Action", {...})፡ በተሰጠው ስም እና ግቤቶች አዲስ እርምጃ ይፍጠሩ።
  • langchain.Predicate(name="predicate", {...})፡ በተሰጠው ስም እና ግቤቶች አዲስ ተሳቢ ይፍጠሩ።

እይታ

የባለብዙ ወኪል AI ስርዓትን በዓይነ ሕሊና ለማየት፣ ወኪሎቹን፣ ባህሪያትን እና ግንኙነቶችን ለመወከል ቻርትን መጠቀም እንችላለን። Chart.jsን የሚጠቀም የገበታ ምሳሌ እዚህ አለ፡-

``json { "አይነት": "ፓይ", "ውሂብ": { "labels": ["ገንቢ ወኪል", "የፕሮጀክት አስተዳዳሪ ወኪል"], "መረጃዎች": [ { "label": "ባህሪዎች", "ውሂብ": [3, 2], "backgroundColor": ["#4CAF50", "#FF9800"] } ] } "አማራጮች": { "ርዕስ": { "ማሳያ": እውነት, "text": "ባለብዙ ወኪል AI ስርዓት" } "አፈ ታሪክ": { "ማሳያ": እውነት } } }


ይህ ገበታ ሁለቱን ወኪሎች፣ የገንቢ ወኪል እና የፕሮጀክት አስተዳዳሪ ወኪልን ከየራሳቸው ባህሪ ያሳያል። ሰንጠረዡ ተጨማሪ መረጃን ለማሳየት እንደ በተወካዮች መካከል ያሉ ግንኙነቶች ብዛት ወይም የባህሪው ውስብስብነት ያሉ መረጃዎችን ለማሳየት ሊበጅ ይችላል።

## መደምደሚያ

በዚህ ጽሑፍ ውስጥ እንደ DSPy እና LangChain ያሉ የባለብዙ ወኪል AI ኦርኬስትራ መሳሪያዎችን በሶፍትዌር ልማት ውስጥ ቴክኒካዊ አተገባበርን መርምረናል። እነዚህ መሳሪያዎች ከበርካታ ወኪሎች፣ ባህሪያት እና መስተጋብሮች ጋር ውስብስብ ስርዓቶችን ለመፍጠር እንዴት ጥቅም ላይ እንደሚውሉ አሳይተናል። እንዲሁም ለሶፍትዌር ልማት የባለብዙ ወኪል AI ስርዓት ቀላል ምሳሌ አቅርበን እና በDSPy እና LangChain ውስጥ በብዛት ጥቅም ላይ የዋሉ ትዕዛዞችን እና ቅንጥቦችን አጉልተናል። በመጨረሻም፣ ወኪሎቹን፣ ባህሪያትን እና መስተጋብርን ለመወከል ቻርትን በመጠቀም የባለብዙ ወኪል AI ስርዓትን አይተናል።

#የወደፊት ስራ

እንደ DSPy እና LangChain ባሉ ባለብዙ ወኪል AI ኦርኬስትራ መሳሪያዎች ውስጥ ለወደፊት ስራ ብዙ ቦታዎች አሉ። አንዳንድ ሊሆኑ የሚችሉ ቦታዎች የሚከተሉትን ያካትታሉ:

* ** የመጠን ችሎታ ***: ብዙ ወኪሎችን እና ውስብስብ ስርዓቶችን ማስተናገድ የሚችሉ መሳሪያዎችን ማዘጋጀት።
**ተለዋዋጭነት**: ልዩ ፍላጎቶችን ለማሟላት በቀላሉ ሊበጁ እና ሊራዘሙ የሚችሉ መሳሪያዎችን መፍጠር።
** መስተጋብር ***: ከሌሎች ስርዓቶች እና ቴክኖሎጂዎች ጋር ሊጣመሩ የሚችሉ መሳሪያዎችን ማዘጋጀት.
** የማብራራት ችሎታ ***፡ ስለ ወኪሎች የውሳኔ አሰጣጥ ሂደቶች እና አጠቃላይ ስርዓቱ ግንዛቤዎችን ሊሰጡ የሚችሉ መሳሪያዎችን መፍጠር።

እነዚህን ዘርፎች በማስተናገድ የሶፍትዌር ልማት ሂደቶችን ውጤታማነት እና ውጤታማነት የበለጠ ማሻሻል እና ውስብስብ እና የተራቀቁ ስርዓቶችን መፍጠር እንችላለን።

Have Questions?

Let's Talk

Contact me on LinkedIn