Оркестрирајќи развој на софтвер со вештачка интелигенција со LangChain и DSPy | B4N1

Оркестрирајќи развој на софтвер со вештачка интелигенција со LangChain и DSPy

3 months ago · b4n1 Read time: 5 min

Оркестрирајќи развој на софтвер со AI со LangChain и DSPy

Вовед

Пејзажот за развој на софтвер брзо се развива, а алатките и технологиите напојувани со вештачка интелигенција играат сè позначајна улога во автоматизацијата и софтверската архитектура на DevOps. Двајца значајни играчи во овој простор се LangChain и DSPy, кои нудат моќни способности за оркестрација за изградба на цевководи за развој на софтвер управувани од вештачка интелигенција. Во оваа статија, ќе истражуваме во светот на LangChain и DSPy, истражувајќи ги нивните способности, придобивки и практични апликации во развојот на софтвер со ВИ.

Што е LangChain?

LangChain е рамка со отворен код, базирана на Python за градење апликации за разговорна вештачка интелигенција. Обезбедува робустен сет на алатки за обработка на природен јазик (NLP), машинско учење (ML) и развој на софтвер, што го прави идеален избор за цевководи за развој на софтвер напојуван со вештачка интелигенција. Основните карактеристики на LangChain вклучуваат:

  • Разговорна вештачка интелигенција: LangChain им овозможува на програмерите да градат интерфејси за разговор, како што се chatbots и гласовни асистенти, користејќи NLP и ML техники.
  • Развој на софтвер: LangChain обезбедува низа алатки за развој на софтвер, вклучувајќи генерирање код, дебагирање и тестирање.
  • Оркестрација: способностите за оркестрација на LangChain им овозможуваат на програмерите да ги автоматизираат сложените работни текови и цевководи, што го олеснува управувањето со големи проекти за развој на софтвер.

Што е DSPy?

DSPy е рамка заснована на Python за градење на цевководи за наука за податоци и машинско учење. Обезбедува низа алатки за претходна обработка на податоци, инженерство на карактеристики, обука за модели и распоредување. Основните карактеристики на DSPy вклучуваат:

  • Наука за податоци: DSPy им овозможува на програмерите да градат цевководи за наука за податоци, вклучително и внесување, обработка и анализа на податоци.
  • Машинско учење: DSPy обезбедува низа алатки за машинско учење, вклучувајќи обука за модели, подесување и распоредување.
  • Оркестрација: способностите за оркестрација на DSPy им овозможуваат на програмерите да ги автоматизираат сложените работни текови и цевководи, што го олеснува управувањето со проекти за наука за податоци и машинско учење од големи размери.

Оркестрирајќи развој на софтвер со AI со LangChain и DSPy

За да ја илустрираме моќта на LangChain и DSPy во развојот на софтвер со AI, ајде да разгледаме едноставен пример. Да претпоставиме дека сакаме да изградиме разговорна линија за развој на софтвер напојувана со вештачка интелигенција која ги автоматизира следните задачи:

  1. Генерација на кодови: Генерирајте основна Python скрипта за веб-апликација користејќи шаблон.
  2. Преглед на код: Прегледајте го генерираниот код за грешки и предложете подобрувања.
  3. Тестирање: извршете автоматизирани тестови на генерираниот код за да се уверите дека ги исполнува бараните стандарди.
  4. Распоредување: распоредете го генерираниот код на платформа базирана на облак.

Еве едноставен блок код кој покажува како да се користат LangChain и DSPy за автоматизирање на овој гасовод:

увозен лангсин
од langchain.синџири увезуваат ConversationalAI
од langchain.llms увоз LLM


гасовод = ConversationalAI(
    llm=LLM("text-davinci-003"),
    синџир =[
        langchain.PipelineStep(
            име = "Генерација на кодови",
            func=lambda x: f"inport flask\napp = flask.Flask(__name__)\n@app.route('/')\ndef index():\n врати 'Здраво свет!'",
        ),
        langchain.PipelineStep(
            име = "Преглед на код",
            func=lambda x: „Генерираниот код изгледа добро, но размислете да додадете справување со грешки.“,
        ),
        langchain.PipelineStep(
            име "Тестирање",
            func=lambda x: „Тестови што се извршуваат...\nПОМИНИ: индекс()“,
        ),
        langchain.PipelineStep(
            име "Распоредување",
            func=lambda x: "Се распоредува на облак платформа...\nУспешно!",
        ),
    ],
)

# Стартувај го гасоводот
result = pipeline.run(input="Генерира основна Python скрипта за веб апликација.")

печатење (резултат)

Овој блок за кодови покажува како да се користат LangChain и DSPy за автоматизирање на цевковод за развој на софтвер за разговор со вештачка интелигенција. Гасоводот се состои од четири чекори: генерирање код, преглед на код, тестирање и распоредување. Секој чекор се имплементира со помош на чекор на гасоводот LangChain, кој дефинира одредена задача што треба да се изврши.

Придобивки од LangChain и DSPy

Придобивките од користењето на LangChain и DSPy во развојот на софтвер со вештачка интелигенција се многубројни:

  • Автоматизација: LangChain и DSPy им овозможуваат на програмерите да ги автоматизираат сложените работни текови и цевководи, што го олеснува управувањето со големи проекти за развој на софтвер.
  • Ефикасност: со автоматизирање на повторувачките задачи, програмерите можат да се фокусираат на задачи од повисоко ниво кои бараат креативност и вештини за решавање проблеми.
  • Конзистентност: LangChain и DSPy обезбедуваат конзистентност во процесите на развој на софтвер, намалувајќи го ризикот од грешки и подобрувајќи го севкупниот квалитет.
  • Приспособливост: LangChain и DSPy им овозможуваат на програмерите да ги размерат цевките за развој на софтвер за да ги задоволат барањата на големите проекти.

** Топ 5-10 најкористени команди/парчиња**

Еве ги првите 5-10 најкористени команди/парчиња за LangChain и DSPy:

  1. langchain.PipelineStep: Дефинира одредена задача што треба да се изврши во гасоводот.
pipeline_step = langchain.PipelineStep(
    име = "Генерација на кодови",
    func=lambda x: f"inport flask\napp = flask.Flask(__name__)\n@app.route('/')\ndef index():\n врати 'Здраво свет!'",
)
  1. langchain.ConversationalAI: Дефинира цевковод за разговорна вештачка интелигенција.
цевковод = langchain.ConversationalAI(
    llm=LLM("text-davinci-003"),
    синџир=[цевковод_чекор],
)
  1. DSPy.DataPipeline: Дефинира цевковод за наука за податоци.
цевковод = DSPy.DataPipeline(
    data_source="https://example.com/data.csv",
    data_transformer=ламбда x: x["колона1"] + x["колона2"],
)
  1. DSPy.ModelPipeline: Дефинира цевковод за машинско учење.
цевковод = DSPy.ModelPipeline(
    модел = "линеарна_регресија",
    data_source="https://example.com/data.csv",
    data_transformer=ламбда x: x["колона1"] + x["колона2"],
)
  1. langchain.LLM: Дефинира јазичен модел.
llm = langchain.LLM ("text-davinci-003")
  1. DSPy.DataTransformer: Дефинира трансформатор на податоци.
трансформатор = DSPy.DataTransformer(ламбда x: x["колона1"] + x["колона2"])
  1. DSPy.ModelTrainer: Дефинира модел на тренер.
тренер = DSPy.ModelTrainer(модел = "линеарна_регресија")
  1. langchain.Pipeline: Дефинира цевковод.
гасовод = langchain.Pipeline(
    синџир=[цевковод_чекор],
)
  1. DSPy.DataLoader: Дефинира вчитувач на податоци.
подигнувач = DSPy.DataLoader(податоци_извор="https://example.com/data.csv")
  1. DSPy.ModelDeployer: Дефинира распоредувач на модел.
распоредувач = DSPy.ModelDeployer(модел = "линеарна_регресија")

Визуелизација

Еве визуелизација на гасоводот LangChain и DSPy користејќи Chart.js:

{
  "тип": "бар",
  "податоци": {
    "етикети": ["Генерација на код", "Преглед на код", "Тестирање", "распоредување"],
    "збирки на податоци": [
      {
        "етикета": "LangChain",
        "податоци": [10, 8, 12, 15],
        "backgroundColor": "rgba(255, 99, 132, 0.2)",
        "borderColor": "rgba(255, 99, 132, 1)",
        „Ширина на границата“: 1
      },
      {
        "етикета": "DSPy",
        „податоци“: [8, 10, 12, 15],
        "backgroundColor": "rgba(54, 162, 235, 0.2)",
        "borderColor": "rgba(54, 162, 235, 1)",
        „Ширина на границата“: 1
      }
    ]
  },
  "опции": {
    "наслов": {
      „екран“: точно,
      "text": "LangChain и DSPy Pipeline"
    },
    "вага": {
      „yOxes“: [
        {
          "крлежи": {
            "beginAtZero": точно
          }
        }
      ]
    }
  }
}

Оваа визуелизација го прикажува бројот на задачи што ги извршуваат LangChain и DSPy во цевковод. Оската x ги претставува задачите, а y-оската го претставува бројот на извршени задачи.

Заклучок

LangChain и DSPy нудат моќни способности за оркестрација за изградба на цевководи за развој на софтвер управувани од вештачка интелигенција. Со автоматизирање на сложените работни текови и цевководи, програмерите можат да се фокусираат на задачи на повисоко ниво кои бараат креативност и вештини за решавање проблеми. Придобивките од користењето на LangChain и DSPy вклучуваат автоматизација, ефикасност, конзистентност и приспособливост. Со LangChain и DSPy, програмерите можат да градат разговорни цевководи за развој на софтвер напојуван со вештачка интелигенција кои ги задоволуваат барањата на големите проекти.


Have Questions?

Let's Talk

Contact me on LinkedIn