Аркестрацыя распрацоўкі праграмнага забеспячэння на базе AI з дапамогай LangChain і DSPy | B4N1

Аркестрацыя распрацоўкі праграмнага забеспячэння на базе AI з дапамогай LangChain і DSPy

6 months ago · b4n1 Read time: 4 min

Аркестрацыя распрацоўкі праграмнага забеспячэння на базе AI з дапамогай LangChain і DSPy

Уводзіны

Ландшафт распрацоўкі праграмнага забеспячэння імкліва развіваецца, і інструменты і тэхналогіі на базе штучнага інтэлекту адыгрываюць усё большую ролю ў аўтаматызацыі DevOps і архітэктуры праграмнага забеспячэння. Двума вядомымі гульцамі ў гэтай прасторы з'яўляюцца LangChain і DSPy, якія прапануюць магутныя магчымасці аркестроўкі для стварэння канвеераў распрацоўкі праграмнага забеспячэння, кіраваных AI. У гэтым артыкуле мы паглыбімся ў свет LangChain і DSPy, даследуем іх магчымасці, перавагі і практычнае прымяненне ў распрацоўцы праграмнага забеспячэння на базе AI.

Што такое LangChain?

LangChain - гэта фрэймворк з адкрытым зыходным кодам на аснове Python для стварэння размоўных праграм AI. Ён забяспечвае надзейны набор інструментаў для апрацоўкі натуральнай мовы (NLP), машыннага навучання (ML) і распрацоўкі праграмнага забеспячэння, што робіць яго ідэальным выбарам для канвеераў распрацоўкі праграмнага забеспячэння на базе AI. Асноўныя функцыі LangChain ўключаюць:

  • Размоўны штучны інтэлект: LangChain дазваляе распрацоўшчыкам ствараць размоўныя інтэрфейсы, такія як чат-боты і галасавыя памочнікі, выкарыстоўваючы метады 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
з langchain.chains імпартаваць ConversationalAI
з langchain.llms імпартаваць LLM


канвеер = Гутарковы AI(
    llm=LLM("text-davinci-003"),
    ланцужок=[
        langchain.PipelineStep(
            name="Стварэнне кода",
            func=lambda x: f"import flask\napp = flask.Flask(__name__)\n@app.route('/')\ndef index():\n return 'Hello World!",
        ),
        langchain.PipelineStep(
            name="Агляд кода",
            func=lambda x: "Згенераваны код выглядае добра, але варта дадаць апрацоўку памылак.",
        ),
        langchain.PipelineStep(
            name="Тэставанне",
            func=lambda x: "Запуск тэстаў...\nPASS: index()",
        ),
        langchain.PipelineStep(
            імя = "Разгортванне",
            func=lambda x: "Разгортванне на воблачнай платформе...\nПоспех!",
        ),
    ],
)

# Запусціце канвеер
вынік = pipeline.run(input="Стварэнне базавага сцэнарыя Python для вэб-праграмы.")

друк (вынік)

Гэты блок кода дэманструе, як выкарыстоўваць LangChain і DSPy для аўтаматызацыі размоўнага канвеера распрацоўкі праграмнага забеспячэння на базе AI. Канвеер складаецца з чатырох этапаў: генерацыя кода, агляд кода, тэставанне і разгортванне. Кожны крок рэалізуецца з дапамогай кроку канвеера LangChain, які вызначае пэўную задачу для выканання.

Перавагі LangChain і DSPy

Перавагі выкарыстання LangChain і DSPy пры распрацоўцы праграмнага забеспячэння на аснове штучнага інтэлекту шматлікія:

  • Аўтаматызацыя: LangChain і DSPy дазваляюць распрацоўшчыкам аўтаматызаваць складаныя працоўныя працэсы і канвееры, палягчаючы кіраванне буйнамаштабнымі праектамі распрацоўкі праграмнага забеспячэння.
  • Эфектыўнасць: аўтаматызуючы паўтаральныя задачы, распрацоўшчыкі могуць засяродзіцца на задачах больш высокага ўзроўню, якія патрабуюць творчага падыходу і навыкаў рашэння праблем.
  • Узгодненасць: LangChain і DSPy забяспечваюць паслядоўнасць працэсаў распрацоўкі праграмнага забеспячэння, зніжаючы рызыку памылак і паляпшаючы агульную якасць.
  • Маштабаванасць: LangChain і DSPy дазваляюць распрацоўшчыкам маштабаваць канвееры распрацоўкі праграмнага забеспячэння ў адпаведнасці з патрабаваннямі буйнамаштабных праектаў.

Топ-5-10 найбольш часта выкарыстоўваюцца каманд/фрагментаў

Вось 5-10 найбольш часта выкарыстоўваюцца каманд/фрагментаў для LangChain і DSPy:

  1. langchain.PipelineStep: вызначае канкрэтную задачу, якая павінна быць выканана ў канвееры.
pipeline_step = langchain.PipelineStep(
    name="Стварэнне кода",
    func=lambda x: f"import flask\napp = flask.Flask(__name__)\n@app.route('/')\ndef index():\n return 'Hello World!",
)
  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["column1"] + x["column2"],
)
  1. DSPy.ModelPipeline: вызначае канвеер машыннага навучання.
канвеер = DSPy.ModelPipeline(
    мадэль = "лінейная_рэгрэсія",
    data_source="https://example.com/data.csv",
    data_transformer=лямбда x: x["column1"] + x["column2"],
)
  1. langchain.LLM: вызначае моўную мадэль.
llm = langchain.LLM("тэкст-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(data_source="https://example.com/data.csv")
  1. DSPy.ModelDeployer: вызначае праграму разгортвання мадэлі.
дэплоер = DSPy.ModelDeployer(мадэль="лінейная_рэгрэсія")

Візуалізацыя

Вось візуалізацыя канвеера LangChain і DSPy з выкарыстаннем Chart.js:

{
  "тып": "бар",
  "дадзеныя": {
    "labels": ["Стварэнне кода", "Агляд кода", "Тэставанне", "Разгортванне"],
    "наборы дадзеных": [
      {
        "label": "LangChain",
        "дадзеныя": [10, 8, 12, 15],
        "backgroundColor": "rgba(255, 99, 132, 0,2)",
        "borderColor": "rgba(255, 99, 132, 1)",
        "borderWidth": 1
      },
      {
        "label": "DSPy",
        "дадзеныя": [8, 10, 12, 15],
        "backgroundColor": "rgba(54, 162, 235, 0,2)",
        "borderColor": "rgba(54, 162, 235, 1)",
        "borderWidth": 1
      }
    ]
  },
  "параметры": {
    "назва": {
      "дысплей": праўда,
      "text": "Канвеер LangChain і DSPy"
    },
    "шалі": {
      "yAxes": [
        {
          "цікі": {
            "beginAtZero": праўда
          }
        }
      ]
    }
  }
}

Гэтая візуалізацыя паказвае колькасць задач, якія выконваюцца LangChain і DSPy у канвееры. Па восі х адкладзены задачы, а па восі у - колькасць выкананых задач.

Выснова

LangChain і DSPy прапануюць магутныя магчымасці аркестроўкі для стварэння канвеераў распрацоўкі праграмнага забеспячэння, якія кіруюцца штучным інтэлектам. Аўтаматызуючы складаныя працоўныя працэсы і канвееры, распрацоўшчыкі могуць засяродзіцца на задачах больш высокага ўзроўню, якія патрабуюць творчага падыходу і навыкаў рашэння праблем. Перавагі выкарыстання LangChain і DSPy ўключаюць аўтаматызацыю, эфектыўнасць, паслядоўнасць і маштабаванасць. З дапамогай LangChain і DSPy распрацоўшчыкі могуць будаваць размоўныя канвееры распрацоўкі праграмнага забеспячэння на базе штучнага інтэлекту, якія адпавядаюць патрабаванням буйнамаштабных праектаў.


Have Questions?

Let's Talk

Contact me on LinkedIn