ສ້າງ RAG | B4N1

ສ້າງ RAG

7 months ago · b4n1 Read time: 2 min

ການ​ນໍາ​ໃຊ້​ເຄື່ອງ​ມື Orchestration ສໍາ​ລັບ AI-Powered Software Architecture

ການ​ນໍາ​ສະ​ເຫນີ

ຄວາມຕ້ອງການທີ່ເພີ່ມຂຶ້ນສໍາລັບສະຖາປັດຕະຍະກໍາຊອບແວທີ່ຂັບເຄື່ອນດ້ວຍ AI ໄດ້ນໍາໄປສູ່ການພັດທະນາຂອງເຄື່ອງມື orchestration ຕ່າງໆທີ່ເຮັດໃຫ້ການເຊື່ອມໂຍງຂອງ Artificial Intelligence (AI) ແລະຄວາມສາມາດຂອງການຮຽນຮູ້ເຄື່ອງຈັກ (ML) ເຂົ້າໄປໃນລະບົບຊອບແວ. ໃນບົດຄວາມນີ້, ພວກເຮົາຈະຄົ້ນຫາການປະຕິບັດສະຖາປັດຕະຍະກໍາຊອບແວທີ່ຂັບເຄື່ອນດ້ວຍ AI ໂດຍໃຊ້ເຄື່ອງມື orchestration ເຊັ່ນ LangChain ແລະ DSPy, ໂດຍສຸມໃສ່ການລວມເອົາຄວາມສາມາດຂອງ RAG (Reasoning and Action Graph) ແລະ LLM (Large Language Model) ສໍາລັບການເພີ່ມປະສິດທິພາບການຂະຫຍາຍ, ການປະຕິບັດ, ແລະຄວາມປອດໄພ.

ເຄື່ອງມື Orchestration ແມ່ນຫຍັງ?

ເຄື່ອງມື Orchestration ແມ່ນກອບຊອບແວທີ່ຊ່ວຍໃຫ້ອັດຕະໂນມັດຂອງຂະບວນການເຮັດວຽກທີ່ສັບສົນແລະຂະບວນການໂດຍການລວມເອົາການບໍລິການ, ແອັບພລິເຄຊັນແລະລະບົບຫຼາຍອັນ. ພວກເຂົາເຈົ້າສະຫນອງເວທີສູນກາງສໍາລັບການຄຸ້ມຄອງແລະການປະສານງານການໂຕ້ຕອບລະຫວ່າງອົງປະກອບທີ່ແຕກຕ່າງກັນ, ຮັບປະກັນການປະຕິບັດວຽກງານທີ່ມີປະສິດທິພາບແລະສາມາດຂະຫຍາຍໄດ້.

LangChain: ເຄື່ອງມື Orchestration Python-Based

LangChain ເປັນຫ້ອງສະໝຸດ Python ແຫຼ່ງເປີດທີ່ສະໜອງກອບວຽກທີ່ສົມບູນແບບສຳລັບການສ້າງສະຖາປັດຕະຍະກຳຊອບແວທີ່ຂັບເຄື່ອນດ້ວຍ AI. ມັນ​ສະ​ຫນອງ​ປະ​ເພດ​ຂອງ​ຄຸນ​ນະ​ສົມ​ບັດ​, ລວມ​ທັງ​:

  • RAG (Reasoning and Action Graph) Integration: LangChain ສະໜອງການຈັດຕັ້ງປະຕິບັດ RAG ທີ່ມີໃນຕົວ, ເຮັດໃຫ້ການສ້າງຕາຕະລາງເຫດຜົນ ແລະການປະຕິບັດທີ່ຊັບຊ້ອນທີ່ສາມາດໃຊ້ເພື່ອສ້າງແບບຈໍາລອງ ແລະປະຕິບັດຂັ້ນຕອນການເຮັດວຽກທີ່ຂັບເຄື່ອນດ້ວຍ AI.
  • ** LLM (ຕົວ​ແບບ​ພາ​ສາ​ຂະ​ຫນາດ​ໃຫຍ່​) ການ​ເຊື່ອມ​ໂຍງ **​: LangChain ສະ​ຫນັບ​ສະ​ຫນູນ​ການ​ເຊື່ອມ​ໂຍງ​ຂອງ LLMs​, ເຊັ່ນ​: LLaMA ແລະ BERT​, ສໍາ​ລັບ​ການ​ປຸງ​ແຕ່ງ​ພາ​ສາ​ທໍາ​ມະ​ຊາດ​ແລະ​ວຽກ​ງານ​ການ​ຜະ​ລິດ​.
  • ** ຄວາມ​ສາ​ມາດ​ຂະ​ຫຍາຍ​ຕົວ​ແລະ​ປະ​ສິດ​ທິ​ພາບ **​: LangChain ໄດ້​ຖືກ​ອອກ​ແບບ​ເພື່ອ​ຈັດ​ການ​ຂະ​ຫນາດ​ໃຫຍ່ AI workloads​, ສະ​ຫນອງ​ການ​ປະ​ຕິ​ບັດ​ວຽກ​ງານ​ປະ​ສິດ​ທິ​ພາບ​ແລະ​ຂະ​ຫນາດ​ໃຫຍ່​.

ການ​ປະ​ຕິ​ບັດ​ສະ​ຖາ​ປັດ​ຕະ​ຍະ​ການ​ຊອບ​ແວ​ທີ່​ຂັບ​ເຄື່ອນ AI ກັບ LangChain

ເພື່ອສະແດງໃຫ້ເຫັນການປະຕິບັດສະຖາປັດຕະຍະກໍາຊອບແວທີ່ຂັບເຄື່ອນດ້ວຍ AI ໂດຍໃຊ້ LangChain, ໃຫ້ພວກເຮົາພິຈາລະນາຕົວຢ່າງທີ່ງ່າຍດາຍຂອງ chatbot ທີ່ໃຊ້ RAG ເພື່ອສົມເຫດສົມຜົນກ່ຽວກັບການສອບຖາມຂອງຜູ້ໃຊ້ແລະສ້າງຄໍາຕອບ.

`` python ການ​ນໍາ​ເຂົ້າ langchain​ ຈາກ langchain.chains ນໍາເຂົ້າ llm

rag = langchain.RAG( name="chatbot_rag", nodes=[ {"name": "ທັກທາຍ", "text": "ສະບາຍດີ, ຂ້ອຍຊ່ວຍເຈົ້າໄດ້ແນວໃດ?"}, {"name": "goodbye", "text": "ສະບາຍດີ, ມັນເປັນການລົມກັບທ່ານ."}, ], ຂອບ=[ {"from": "ທັກທາຍ", "ເຖິງ": "ສະບາຍດີ", "ເງື່ອນໄຂ": "user_says_goodbye"}, ], )

ສ້າງ LLM

llm = llm.LLM( name="chatbot_llm", model="llama", max_tokens=100, )

ສ້າງລະບົບຕ່ອງໂສ້ chatbot

chain = langchain.Chain( name="chatbot_chain", llm=llm, rag=rag, )

ທົດສອບ chatbot

user_input = "ສະບາຍດີ, ເຈົ້າສະບາຍດີບໍ?" ຕອບ = chain.run(user_input) ພິມ(ຕອບ)


**DSPy: ເຄື່ອງ​ມື Orchestration ທີ່​ເປັນ​ສະ​ນິມ**


DSPy ເປັນເຄື່ອງມື orchestration ທີ່ອີງໃສ່ Rust ທີ່ສະຫນອງກອບທີ່ມີປະສິດທິພາບສູງແລະສາມາດຂະຫຍາຍໄດ້ສໍາລັບການກໍ່ສ້າງສະຖາປັດຕະຍະກໍາຊອບແວ AI. ມັນ​ສະ​ຫນອງ​ປະ​ເພດ​ຂອງ​ຄຸນ​ນະ​ສົມ​ບັດ​, ລວມ​ທັງ​:

* **RAG (Reasoning and Action Graph) Integration**: DSPy ສະໜອງການຈັດຕັ້ງປະຕິບັດ RAG ທີ່ມີໃນຕົວ, ເຮັດໃຫ້ການສ້າງຕາຕະລາງເຫດຜົນ ແລະການປະຕິບັດທີ່ຊັບຊ້ອນທີ່ສາມາດໃຊ້ເພື່ອສ້າງແບບຈໍາລອງ ແລະປະຕິບັດຂັ້ນຕອນການເຮັດວຽກທີ່ຂັບເຄື່ອນດ້ວຍ AI.
* ** LLM (ຕົວແບບພາສາຂະຫນາດໃຫຍ່) ການເຊື່ອມໂຍງ**: DSPy ສະຫນັບສະຫນູນການລວມຕົວຂອງ LLMs, ເຊັ່ນ LLaMA ແລະ BERT, ສໍາລັບວຽກງານການປຸງແຕ່ງພາສາທໍາມະຊາດແລະການຜະລິດ.
* ** ຄວາມ​ສາ​ມາດ​ຂະ​ຫຍາຍ​ຕົວ​ແລະ​ປະ​ສິດ​ທິ​ພາບ **: DSPy ຖືກ​ອອກ​ແບບ​ເພື່ອ​ຈັດ​ການ​ຂະ​ຫນາດ​ໃຫຍ່ AI workloads​, ສະ​ຫນອງ​ການ​ປະ​ຕິ​ບັດ​ວຽກ​ງານ​ປະ​ສິດ​ທິ​ພາບ​ແລະ​ຂະ​ຫນາດ​ໃຫຍ່​.

** ການ​ປະ​ຕິ​ບັດ​ສະ​ຖາ​ປັດ​ຕະ​ຍະ​ການ​ຊອບ​ແວ​ທີ່​ຂັບ​ເຄື່ອນ AI ກັບ DSPy **


ເພື່ອສະແດງໃຫ້ເຫັນການປະຕິບັດສະຖາປັດຕະຍະກໍາຊອບແວທີ່ຂັບເຄື່ອນດ້ວຍ AI ໂດຍໃຊ້ DSPy, ໃຫ້ພວກເຮົາພິຈາລະນາຕົວຢ່າງງ່າຍໆຂອງ chatbot ທີ່ໃຊ້ RAG ເພື່ອຫາເຫດຜົນກ່ຽວກັບການສອບຖາມຂອງຜູ້ໃຊ້ແລະສ້າງຄໍາຕອບ.

``ຂີ້ໝ້ຽງ
ໃຊ້ dspy::ຕ່ອງໂສ້;
ໃຊ້ dspy::llm;

// ສ້າງ RAG
ໃຫ້ rag = chain::RAG::new(
    "chatbot_rag",
    ວີກ![
        chain::Node::new("ທັກທາຍ", "ສະບາຍດີ, ຂ້ອຍຊ່ວຍເຈົ້າໄດ້ແນວໃດ?"),
        chain::Node::new("ສະບາຍດີ", "ສະບາຍດີ, ມັນດີທີ່ຈະລົມກັບເຈົ້າ."),
    ],
    ວີກ![
        ລະບົບຕ່ອງໂສ້::Edge::new("ທັກທາຍ", "ສະບາຍດີ", "user_says_goodbye"),
    ],
);

// ສ້າງ LLM
ໃຫ້ llm = llm::LLM::new(
    "chatbot_llm",
    "ລາມາ",
    100,
);

// ສ້າງລະບົບຕ່ອງໂສ້ chatbot
ໃຫ້ຕ່ອງໂສ້ = ສາຍຕ່ອງໂສ້::ຕ່ອງໂສ້::ໃໝ່(
    "chatbot_chain",
    llm,
    ຜ້າກັ້ງ,
);

// ທົດສອບ chatbot
let user_input = "ສະບາຍດີ, ເຈົ້າສະບາຍດີບໍ?";
let response = chain.run(user_input);
println!("{}", ຕອບສະຫນອງ);

5-10 ຄໍາສັ່ງທີ່ໃຊ້ຫຼາຍທີ່ສຸດ / ສະນິບເພັດ

ນີ້ແມ່ນບາງຄໍາສັ່ງ ແລະ snippets ທີ່ໃຊ້ທົ່ວໄປທີ່ສຸດສໍາລັບ LangChain ແລະ DSPy:

  • LangChain:
    • langchain.RAG(): ສ້າງຕົວຢ່າງ RAG ໃໝ່.
    • langchain.LLM(): ສ້າງຕົວຢ່າງ LLM ໃໝ່.
    • langchain.Chain(): ສ້າງຕົວຢ່າງລະບົບຕ່ອງໂສ້ໃໝ່.
    • rag.run(): ແລ່ນ RAG ແລະສ້າງການຕອບສະໜອງ.
    • llm.run(): ແລ່ນ LLM ແລະສ້າງການຕອບສະໜອງ.
  • DSPy:
    • dspy::chain::RAG::new(): ສ້າງຕົວຢ່າງ RAG ໃໝ່.
    • dspy::llm::LLM::new(): ສ້າງຕົວຢ່າງ LLM ໃໝ່.
    • dspy::chain::Chain::new(): ສ້າງຕົວຢ່າງລະບົບຕ່ອງໂສ້ໃໝ່.
    • chain.run(): ແລ່ນລະບົບຕ່ອງໂສ້ ແລະສ້າງການຕອບສະໜອງ.

ການສະແດງພາບ

ນີ້ແມ່ນພາບທີ່ງ່າຍດາຍຂອງຄວາມສາມາດຂອງ RAG ແລະ LLM ໂດຍໃຊ້ Chart.js:

``javascript const ctx = document.getElementById('myChart').getContext('2d'); const chart = ຕາຕະລາງໃຫມ່(ctx, { ປະເພດ: 'bar', ຂໍ້ມູນ: { ປ້າຍກຳກັບ: ['RAG', 'LLM'], ຊຸດຂໍ້ມູນ: [{ ປ້າຍກຳກັບ: 'ຄວາມສາມາດ', ຂໍ້ມູນ: [10, 20], ສີພື້ນຫລັງ: [ 'rgba(255, 99, 132, 0.2)', 'rgba(54, 162, 235, 0.2)', ], ສີຊາຍແດນ: [ 'rgba(255, 99, 132, 1)', 'rgba(54, 162, 235, 1)', ], ຄວາມກວ້າງຊາຍແດນ: 1 }] }, ທາງເລືອກ: { ເກັດ: { y: { beginAtZero: ແທ້ } } } });


** ສະ​ຫຼຸບ **


LangChain ແລະ DSPy ແມ່ນເຄື່ອງມືຈັດວາງທີ່ມີປະສິດທິພາບທີ່ຊ່ວຍໃຫ້ການປະຕິບັດສະຖາປັດຕະຍະກໍາຊອບແວທີ່ຂັບເຄື່ອນດ້ວຍ AI ໂດຍໃຊ້ຄວາມສາມາດຂອງ RAG ແລະ LLM. ໂດຍການໃຊ້ເຄື່ອງມືເຫຼົ່ານີ້, ຜູ້ພັດທະນາສາມາດສ້າງລະບົບຊອບແວທີ່ສາມາດປັບຂະ ໜາດ ໄດ້, ມີປະສິດທິພາບ, ແລະປອດໄພທີ່ສາມາດຈັດການກັບວຽກທີ່ສັບສົນຂອງ AI. ດ້ວຍຄວາມສະດວກໃນການນໍາໃຊ້ແລະຄວາມຍືດຫຍຸ່ນຂອງພວກເຂົາ, LangChain ແລະ DSPy ແມ່ນທາງເລືອກທີ່ເຫມາະສົມສໍາລັບການສ້າງສະຖາປັດຕະຍະກໍາຊອບແວ AI.

** ຄໍາ​ແນະ​ນໍາ **


ອີງຕາມການສົນທະນາໃນບົດຄວາມນີ້, ນີ້ແມ່ນບາງຄໍາແນະນໍາສໍາລັບນັກພັດທະນາທີ່ຕ້ອງການປະຕິບັດສະຖາປັດຕະຍະກໍາຊອບແວ AI-driven ໂດຍໃຊ້ LangChain ແລະ DSPy:

* ເລີ່ມຕົ້ນໂດຍການຮຽນຮູ້ພື້ນຖານຂອງ LangChain ແລະ DSPy, ລວມທັງຄວາມສາມາດຂອງ RAG ແລະ LLM.
* ທົດລອງກັບຕົວຢ່າງທີ່ງ່າຍດາຍ, ເຊັ່ນຕົວຢ່າງຂອງ chatbot, ເພື່ອໃຫ້ໄດ້ຮັບຄວາມຮູ້ສຶກສໍາລັບວິທີການເຮັດວຽກຂອງເຄື່ອງມື.
* ຄ່ອຍໆກ້າວໄປສູ່ໂຄງການທີ່ຊັບຊ້ອນຫຼາຍຂຶ້ນ ເຊັ່ນ: ການສ້າງລະບົບການແນະນຳ ຫຼື ທໍ່ການປຸງແຕ່ງພາສາທຳມະຊາດ.
* ໃຊ້ 5-10 ພາກສ່ວນຄຳສັ່ງ/ສະນິບເພັດທີ່ໃຊ້ຫຼາຍທີ່ສຸດເປັນຄູ່ມືອ້າງອີງສຳລັບຄຳສັ່ງທົ່ວໄປ ແລະສະນິບເພັດ.
* ເບິ່ງເຫັນຄວາມສາມາດຂອງ RAG ແລະ LLM ຂອງທ່ານໂດຍໃຊ້ Chart.js ເພື່ອໃຫ້ໄດ້ຮັບຄວາມເຂົ້າໃຈດີຂຶ້ນກ່ຽວກັບຄວາມສໍາພັນລະຫວ່າງອົງປະກອບທີ່ແຕກຕ່າງກັນ.

ໂດຍການປະຕິບັດຕາມຄໍາແນະນໍາເຫຼົ່ານີ້, ນັກພັດທະນາສາມາດປົດລັອກທ່າແຮງອັນເຕັມທີ່ຂອງ LangChain ແລະ DSPy ແລະສ້າງສະຖາປັດຕະຍະກໍາຊອບແວທີ່ໃຊ້ AI ທີ່ສາມາດຈັດການກັບວຽກທີ່ສັບສົນແລະສະຫນອງການປະຕິບັດພິເສດແລະການຂະຫຍາຍ.

Have Questions?

Let's Talk

Contact me on LinkedIn