Агар шумо дохил карда шуда бошед дар ҷаҳони таҳияи нармафзор, AI ва моделҳои забони калон (LLM), шумо эҳтимол ҳамеша дар бораи агентҳои AI сӯҳбат мекунед ва истифода мебаред. Агар шумо хоҳед, ки аз истифодаи агентҳо берун равед ва ба эҷоди худ шурӯъ кунед, ин мақола барои шумост.
Аммо пеш аз сохтани аввалини худ, оё шумо ягон бор дар бораи он ки агенти AI чист фикр карданро бас кардаед? Биёед аниқ муайян кунем, ки истилоҳ чӣ маъно дорад – агент.
Тавре ки шумо интизор будед, ба ин савол ҳамон қадар ҷавобҳои LLM вуҷуд доранд, аммо ман фикр мекунам, ки таърифи васеъе, ки аксарият бо он розӣ ҳастанд, ин аст …
Агенти AI як системаи нармафзорест, ки LLM-ро истифода мебарад, ки як ё якчанд асбобҳоро дар як ҳалқа барои расидан ба ҳадаф даъват мекунад.
“Ҳадаф”-и агент ба даст оварда метавонад аз посух додан ба саволи оддӣ то назорати браузери шумо барои брон кардани чиптаи ҳавопаймо ё таҳияи нармафзори хеле мураккаб.
Дар хотир доред, ки дар системаҳои агентӣ ҳалқа давраро байни модел, барнома ва асбобҳои он тавсиф мекунад. Он ҳарфро талаб намекунад while ё for изхорот. Намунае, ки ман истифода хоҳам кард, яке аз ин давраро мегузарад: модел асбоберо талаб мекунад, Python онро иҷро мекунад ва модел барои посух додан натиҷаро истифода мебарад. Азбаски як гардиш кофӣ аст, қадамҳо ба таври возеҳ навишта шудаанд.
Дар қисми боқимондаи ин мақола, ман ба шумо нишон медиҳам, ки чӣ гуна аввалин агенти AI-и худро бунёд кунед. Он ҳеҷ чизи мураккабро иҷро намекунад, аммо ин аз рӯи тарҳ барои нигоҳ доштани чизҳои оддӣ барои оғоз кардан аст, на аз он сабаб, ки ин наметавонад.
Мушкилоте, ки агенти AI-и мо ҳал хоҳад кард
Фарз мекунем, ки шумо як мағозаи хурди онлайн кор мекунед ва мехоҳед ёвари дастгирӣ дошта бошед, ки метавонад ба саволҳо дар бораи фармоишҳо ҷавоб диҳад. Маълумоти фармоишӣ дар пойгоҳи додаҳо ҷойгир аст, аз ин рӯ модели забон мустақилона ба ин саволҳо ҷавоб дода наметавонад. Он ба роҳи назоратшаванда ниёз дорад, то аз аризаи шумо далелҳоро талаб кунад.
Мо ин масири идорашавандаро бо истифода аз мағозаи афсонавӣ ва пойгоҳи додаи хурди SQLite месозем. Пойгоҳи додаҳо ду ҷадвал дорад. Дар фармон медихад ҷадвал рақами фармоиш, фармоишгар ва санаро нигоҳ медорад. Дар адад_фармоиш ҷадвал маҳсулот, миқдор ва нархҳоро барои ҳар як фармоиш нигоҳ медорад.
Пойгоҳи намунавии мо дорои фармоиши 1001 барои Сара Ҷонс мебошад. Вай як клавиатураи механикиро бо нархи 79,95 фунт стерлинг ва ду кабели USB-C бо нархи 8,50 фунт стерлинг харидааст. Ҳамин тариқ, маблағи дурусти фармоиш 96,95 GBP аст.
Ба ҷои он ки корбар фармоишро ҷустуҷӯ кунад ва SQL нависед, мо ба онҳо иҷозат медиҳем, ки аз LLM пурсанд:
Арзиши умумии фармоиши 1001 чанд аст?
Модел эътироф мекунад, ки ба он миқдори умумии фармоиш ниёз дорад ва функсияи Python-ро талаб мекунад умумии_фармоишро гиред. Ин функсия SQLite-ро дархост мекунад ва арзиши воқеиро бармегардонад. Он гоҳ модел метавонад натиҷаро ба як ҷумлаи оддӣ табдил диҳад.
Модел метавонад амалиётро талаб кунад, аммо Python тасмим мегирад, ки оё он иҷозат аст ва онро иҷро мекунад.
Варианти якуми мо дорои чор қисмати ҳаракаткунанда аст:
1. Модели забон савол ва тавсифи функсияи Python мегирад.
2. Модел хоҳиш мекунад, ки ин функсия бо баъзе аргументҳо даъват карда шавад.
3. Python номи функсияи дархостшударо тафтиш мекунад, функсияи иҷозатдодашударо даъват мекунад ва натиҷаи онро бармегардонад.
4. Модел бо истифода аз натиҷа ҷавоб менависад.
Модел функсияро иҷро намекунад ё ба SQLite пайваст намешавад. Барномаи Python-и шумо то ҳол ҳардуро назорат мекунад. Мо моделро ба таври маҳаллӣ тавассути Ollama иҷро хоҳем кард, бинобар ин барои мисол ҳисоби абрӣ ё калиди API лозим нест. Барнома инчунин функсияи дархостшуда, аргументҳои он ва натиҷаи пойгоҳи додаҳоро чоп мекунад ва мубодиларо ба ҷои пинҳон кардани он дар чаҳорчӯбаи агент намоён месозад.
Рамзи ин мақола китобхонаи Python-и Ollama-ро истифода мебарад, аммо намунаи умумии асбоби муштарӣ аз ҷониби дигар API-ҳои LLM, аз ҷумла OpenAI ва Anthropic мубодила мешавад. Синфҳои SDK, номҳои майдонҳо ва форматҳои паёмҳо аз рӯи провайдер фарқ мекунанд, аз ин рӯ ин скрипт ҳамчунон қобили интиқол нест. Қисмҳое, ки бояд интиқол дода шаванд, ин рӯйхати иҷозатдодашуда, тасдиқи далелҳо, фиристодани функсия, натиҷаи баргардонидашудаи асбоб ва ҳалқаи маҳдуд мебошанд.
Чӣ ба шумо лозим аст
Ба шумо Windows 10 ё 11, фазои кофӣ дар диск барои модели маҳаллӣ ва PowerShell лозим аст. Мисол инчунин дар macOS ва Linux кор мекунад, гарчанде ки фармонҳои насбкунӣ фарқ мекунанд.
Мо истифода мебарем uv барои насб кардани Python ва идоракунии лоиҳа. Агар uv аллакай насб нашуда бошад, PowerShell-ро кушоед ва иҷро кунед:
PowerShell-ро пӯшед, равзанаи навро кушоед ва онро санҷед:
Баъд, Ollama-ро насб кунед. Агар шумо ҳеҷ гоҳ дар бораи Оллама нашунида бошед, ин як абзори бисёрҷониба ва пурқувватест, ки ба шумо имкон медиҳад, ки моделҳои забонҳои калонро мустақиман дар мошини маҳаллии худ иҷро кунед, ба шарте ки шумо барои ҷойгир кардани модели интихобкардаи худ RAM кофӣ дошта бошед. Насбкунандаи Windows-ро аз иҷро кардани он зеркашӣ кунед, пас равзанаи нави PowerShell-ро кушоед ва фармони дар зер нишон додашударо иҷро кунед.
Зеркашӣ тақрибан 3,4 ГБ аст, то ин ки ин навиштан. Мавҷудияти модел ва андозаҳо метавонанд тағир ёбанд, бинобар ин ҳангоми иҷро кардани фармони боло хатогиҳоро тафтиш кунед ва боварӣ ҳосил кунед, ки модел дар хотираи шумо мувофиқ аст.
Лоиҳа эҷод кунед
Феҳристи нав эҷод кунед ва китобхонаи Ollama Python -ро илова кунед:
uv Python 3.14-ро зеркашӣ хоҳад кард, агар он нусхаи мувофиқро наёбад. Ба шумо лозим нест, ки муҳити виртуалиро фаъол созед; uv run онро ба таври худкор истифода мебарад.
Мо пеш аз ҷалби модел базаи маълумотро месозем. Ин ба мо чизи муайянкунанда медиҳад, ки тафтиш кунем: агар махзани маълумот маълумоти нодуруст дошта бошад, барои ислоҳ кардани агент ҳеҷ маъно надорад.
Пойгоҳи додаҳо дар паҳлӯи скриптҳои Python ҷойгир хоҳад шуд ва мумкин аст, вақте ки шумо мехоҳед намунаро аз нав барқарор кунед.
Эҷоди пойгоҳи тестии мо
Файлро эҷод кунед сохтани_мағозаи_database.py бо ин код:
Онро чунин иҷро кунед:
SQLite як қисми китобхонаи стандартии Python аст, бинобар ин ба шумо сервери пойгоҳи додаҳо насб кардан лозим нест. Дар баста (…) wrapper талаб карда мешавад, зеро, гарчанде sqlite3.Connection дар як ҳамвор истифода бурда мешавад бо блок амалиётҳоро идора мекунад, вақте ки блок ба итмом мерасад, он пайвастро намебандад. Ба таври возеҳ пӯшидани он аз файли махзани қулфшуда дар Windows канорагирӣ мекунад
Эҷоди агенти AI-и мо
Файлро эҷод кунед ягона_tool.py ва рамзи зеринро ворид кунед.
Чӣ тавр рамзи агент кор мекунад
Тағйирёбандаи MODEL дорои номи модели Ollama мебошад. Хондани он аз муҳити OLLAMA_MODEL ба шумо имкон медиҳад, ки модели дигари насбшударо бидуни таҳрири скрипт санҷед. DATABASE_PATH ба файли пойгоҳи додаҳо ишора мекунад shop_agent.db дар ҳамон феҳрист ягона_tool.pyбинобар ин фармон новобаста аз диски ҷории шумо ё ҷузвдони корбари шумо кор мекунад.
get_order_total() рамзи маъмулии барнома аст. Он SQLite-ро дар реҷаи танҳо барои хондан мекушояд, дархости параметриро иҷро мекунад ва JSON-ро бармегардонад. Модел ҳеҷ гоҳ SQL-ро намебинад ва наметавонад ба худи махзани маълумот пайваст шавад.
Номи функсия, тавзеҳи навъи ва ҳуҷҷатҳо инчунин асбобро ба Оллама тавсиф мекунанд. Вақте ки скрипт мегузарад восита =[get_order_total]китобхонаи Ollama он маълумотро ба схемаи JSON табдил медиҳад. Он схемаро ба модел мефиристад, на рамзи сарчашмаи Python.
паёмҳо то ҳол сӯҳбат аст. Паёми системавӣ ба модел чӣ гуна рафтор карданро мегӯяд ва паёми корбар саволро дар бар мегирад. Аввал сӯҳбат () занг ин паёмҳоро дар якҷоягӣ бо схемаи асбоб мефиристад
Он занг иҷро намекунад get_order_total() асбоб. Агар модел қарор кунад, ки ба асбоб ниёз дорад, он дархостро дар он бармегардонад answer.message.tool_calls. Барои ин савол, дархост ба инҳо баробар аст:
Скрипт замима мешавад посух.хабар ба таърих, зеро занги модели навбатӣ бояд дархости асбоби худро бубинад. Он гоҳ тафтиш мекунад, ки асбоб дархост шудааст ва номи он дақиқ аст умумии_фармоишро гиред.
Ин сатр дар он ҷоест, ки асбоб воқеан кор мекунад:
** далелҳо гардиш мекунад {“order_id”: 1001} ба занги муқаррарии Python гирифтани_тартибот. Натиҷа ба сӯҳбат бо нақши асбоб илова карда мешавад. асбоб_номи моделеро мегӯяд, ки кадом функсияи дархостшуда онро тавлид кардааст.
Дуюм сӯҳбат () занг таърихи пурраро мегирад: саволи аслӣ, дархости абзори модел ва натиҷаи JSON, ки аз ҷониби Python баргардонида шудааст. Модел ҳоло тамоми маълумоти заруриро дорад ва метавонад ҳукми ниҳоиро нависад.
Иҷрои агент
Танҳо онро тавре иҷро кунед, ки шумо ягон скрипти дигари муқаррарии Python, ба монанди ин
Давраи аввал метавонад таваққуф кунад, вақте ки Оллама моделро ба хотира бор мекунад. Ҳангоми санҷиши ман, барнома чоп кард:
Ҷумлаи ниҳоӣ метавонад фарқ кунад. Моделҳои забони маҳаллӣ ба ҷои интихоби посухи собит матн тавлид мекунанд, аммо арзиш бояд 96,95 боқӣ монад, зеро Python онро ҳисоб кардааст. Масалан, вақте ки ман онро бори дуюм иҷро кардам, ман натиҷаи каме дигар гирифтам.
Санҷиши роҳҳои нокомӣ
Чӣ мешавад, агар мо саволро ба тартиби мавҷуда иваз кунем:
Ин баромади ман буд.
Функсия маълумоти хатои сохториро бармегардонад. Модел бояд тавзеҳ диҳад, ки фармоиш ба ҷои ихтироъ кардани маҷмӯъ пайдо нашудааст.
Ҳоло барои пурсидани чизе, ки асбоб наметавонад муқаррар кунад:
Ҷавоби ман чунин буд:
Модел метавонад то ҳол аз маълумоти умумӣ ё тахмин ҷавоб диҳад. Паёми система кӯмак мекунад, аммо он сарҳади сахти амниятӣ нест. Агар ҷавоб бояд аз маълумоти тасдиқшуда гирифта шавад, барномаи шумо бояд тафтиш кунад, ки асбоби мувофиқ даъват карда шудааст ва қарор кунад, ки дар сурати набудани он чӣ кор кардан лозим аст. Бо вуҷуди ин, ҷавобе, ки мо гирифтем, ба назари ман хеле хуб буд.
Схемаеро, ки модел қабул мекунад, бубинед
Бароҳатии интиқоли функсияи Python метавонад як ҷузъи муҳимро пинҳон кунад. Оллама рамзи сарчашмаи шуморо ба модел намефиристад. SDK функсияро тафтиш мекунад ва схемаи JSON-ро ба ин монанд месозад:
Модел инро дар баробари сӯҳбат мебинад. Вазифаи он муайян кардани он аст, ки оё функсия мувофиқ аст ва агар ин тавр бошад, далелҳои мувофиқи схемаро эҷод кунед. Аз ин рӯ, ба функсияи худ илова кардани ҳуҷҷати хуб муҳим аст, зеро модел метавонад аз он самаранок истифода барад.
Насли схема тасдиқ нест. Модел ҳоло ҳам метавонад сатреро фиристад, ки дар он рақами бутун дархост шуда буд, майдони мавҷуд нест ё функсияеро, ки таблиғ нашудааст, дархост кунад. Мо дар қисматҳои оянда чӣ гуна ҳалли баъзе аз ин масъалаҳоро меомӯзем.
Ислоҳоти натиҷа, агар модел хато кунад
Вақте ки агент ҷавоби нодуруст медиҳад, бо пайгирии асбоб оғоз кунед. Се нокомии гуногун метавонанд ба корбар монанд бошанд.
-
Агар не асбоб_зангҳо баргардонида шуданд, модел қарор кард, ки он метавонад бидуни функсия ҷавоб диҳад. Паёми системаро пурзӯр кунед, тавсифи асбобро такмил диҳед ё моделеро бо рафтори қавитари занги асбоб истифода баред.
-
Он чизеро, ки шумо ҳамчун аргумент ба Python фиристодаед, тавассути тафтиши натиҷаи чопи call.function.arguments, тавре ки ин скрипт мекунад, дубора санҷед. Махзани маълумот наметавонад фармоиши 1001-ро баргардонад, вақте ки модел 1010 дархост кардааст.
-
Агар натиҷаи Python дуруст бошад, аммо ҷавоби ниҳоӣ нодуруст бошад, нокомӣ дар ҳоле рух дод, ки модел баромади асбобро тафсир мекард. Натиҷаҳоро кӯтоҳ ва сохторӣ нигоҳ доред. Барои намуна, {“total_gbp”: 96,95} нисбат ба параграфе, ки якчанд рақам дорад, нодуруст хондан душвортар аст. Агар ҳама чизи дигар наояд, ба шумо шояд модели пурқувват лозим шавад.
Истифодаи модели дигар
Скрипт тағирёбандаи муҳити OLLAMA_MODEL-ро мехонад, ки ҳангоми зарурат иваз кардани моделҳоро осон мекунад. Олламаро барои кашидани модели дигари қобили истифода истифода баред ва пас тағирёбандаро барои як сессияи PowerShell насб кунед. Барои намуна,
Модели калонтар ба хотираи бештар ва фазои диск ниёз дорад ва одатан дар ҳамон сахтафзор сусттар ҷавоб медиҳад. Фикр накунед, ки ҳукми ниҳоии равон маънои истифодаи беҳтари абзорро дорад. Кӯшиш кунед, ки идентификаторҳои фармоиш, саволҳои номуайян ва калимаҳои номуайянро санҷед, пас функсия ва далелҳои дархостшударо муқоиса кунед.
Хулоса
Аз таърифи воқеан агенти AI сар карда, ин мақола ба шумо нишон дод, ки чӣ гуна як агенти оддиро бо истифода аз Python, Ollama ва SQLite созед, ки бе ҳисоби абрӣ ё калиди API ба таври маҳаллӣ кор мекунад.
Бо истифода аз маълумот оид ба фармоиши дӯкони афсонавӣ, он фаҳмид, ки чӣ гуна модели забон асбоберо дархост мекунад, чӣ гуна Python ин дархостро тафтиш ва иҷро мекунад ва чӣ гуна модел натиҷаро ба ҷавоб табдил медиҳад.
Дар ин роҳ, шумо фаҳмидед, ки схемаҳои асбобҳо чӣ гуна кор мекунанд ва чӣ гуна мушкилотро ҳангоми хатогиҳои модел ташхис кардан мумкин аст.
Ин мисоли дидаю дониста содда механикаро намоён нигоҳ медорад ва барои агентҳое, ки асбобҳои гуногунро дар якчанд марҳила истифода мебаранд, нуқтаи ибтидоӣ фароҳам меорад.
Ин кори мақолаи оянда аст.