AI Framework
Чувствали ли сте се претоварени, опитвайки се да създадете AI приложения от нулата? Не сте сами! AI рамките са като швейцарски нож за разработка на AI - те са мощни инструменти, които могат да ви спестят време и главоболия при създаването на интелигентни приложения. Помислете за AI рамка като за добре организирана библиотека: тя предоставя предварително изготвени компоненти, стандартизирани API и умни абстракции, за да можете да се фокусирате върху решаването на проблеми, вместо да се борите с детайлите по имплементацията. В този урок ще разгледаме как рамки като LangChain могат да превърнат някогашните сложни задачи по интеграция на AI в чист, четим код. Ще откриете как да се справяте с реални предизвикателства като проследяване на разговори, имплементиране на повикване на инструменти и управление на различни AI модели чрез единно интерфейс. Към края на урока ще знаете кога да използвате рамки вместо директни API повиквания, как да използвате техните абстракции ефективно и как да изградите AI приложения, готови за реална употреба. Нека разгледаме какво могат да направят AI рамките за вашите проекти.
⚡ Какво можете да направите в следващите 5 минути
Бърз старт за заети разработчици - Минута 1: Инсталирайте LangChain: pip install langchain langchain-openai - Минута 2: Настройте своя GitHub токен и импортирайте ChatOpenAI клиента - Минута 3: Създайте прост разговор със системни и човешки съобщения - Минута 4: Добавете основен инструмент (като функция за събиране) и вижте повикването на AI инструменти - Минута 5: Усетете разликата между директни API повиквания и абстракция чрез рамката Бърз тестов код: Защо е важно това: За 5 минути ще изпитате как AI рамките преобразуват сложната интеграция на AI в прости методови повиквания. Това е основата, която захранва продукционни AI приложения.
Защо да изберете рамка?
Така че сте готови да изградите AI приложение - страхотно! Но ето какво: имате няколко различни пътища, по които можете да тръгнете, и всеки има своите плюсове и минуси. Това е като да избирате между ходене пеша, каране на велосипед или шофиране – всички ще ви отведат до там, но преживяването (и усилието) ще е коренно различно. Нека разгледаме трите основни начина, по които можете да интегрирате AI в проектите си:
Ползи от рамките на практика
Защо рамките са важни: - Обединяват множество AI доставчици под един интерфейс - Управляват паметта на разговора автоматично - Предоставят готови инструменти за общи задачи като embeddings и повикване на функции - Менажират обработка на грешки и логика за повторни опити - Превръщат сложни работни потоци в четими методови повиквания Заключение: Подобно на избора между специализираните инструменти на майстор и пълна работилница, става дума да съчетаете инструмента с задачата. Рамките блестят при сложни, богати на функции приложения, докато директните API са добър избор за праволинейни случаи.
🗺️ Вашето обучително пътешествие към майсторство в AI рамките
Вашата цел в пътуването: Към края на този урок ще сте овладели разработката с AI рамки и ще можете да изграждате сложни AI приложения, готови за продукция, с които конкурирате търговските AI асистенти.
Въведение
В този урок ще научите: - Как да използвате обща AI рамка. - Как да адресирате често срещани проблеми като чат разговори, използване на инструменти, памет и контекст. - Как да използвате това за създаване на AI приложения.
🧠 Екосистема за разработка на AI рамки
Основен принцип: AI рамките абстрахират сложността, като същевременно предоставят мощни абстракции за управление на разговори, интеграция на инструменти и обработка на документи, позволявайки на разработчиците да създават сложни AI приложения с чист и поддържим код.
Вашият първи AI промпт
Нека започнем с основите като създадем първото ви AI приложение, което изпраща въпрос и получава отговор. Подобно на Архимед, който открил принципа на изместване във ваната си, понякога най-простите наблюдения водят до най-мощните прозрения – а рамките правят тези прозрения достъпни.
Настройване на LangChain с GitHub модели
Ще използваме LangChain за връзка с GitHub модели, което е страхотно, защото ви дава безплатен достъп до различни AI модели. Най-хубавото? Трябват ви само няколко прости параметъра за конфигурация, за да започнете: Нека разгледаме какво се случва тук: - Създава LangChain клиент чрез класа ChatOpenAI – това е вашата врата към AI! - Конфигурира връзката към GitHub модели с вашия автентикационен токен - Посочва кой AI модел да се използва (gpt-4o-mini) – като да избирате вашия AI асистент - Изпраща въпроса ви с метода invoke() – тук става магията - Извлича и показва отговора – voilà, вие чатите с AI! Очакван изход:
Създаване на разговорен AI
Първият пример демонстрира основите, но е само една размяна – вие задавате въпрос, получавате отговор и толкова. В реални приложения искате вашият AI да помни за какво сте разговаряли, както Watson и Holmes изграждаха своите разследващи разговори с времето. Тук LangChain става особено полезен. Той предоставя различни типове съобщения, които помагат за структурирането на разговорите и ви позволяват да дадете личност на вашия AI. Ще изграждате чат преживявания, които запазват контекста и характера.
Разбиране на типовете съобщения
Помислете за тези типове съобщения като различни „шапки“, които участниците носят в разговора. LangChain използва различни класове съобщения, за да следи кой какво казва:
Създаване на първия си разговор
Нека създадем разговор, в който нашият AI поема конкретна роля. Ще го направим да влезе в ролята на капитан Пикар – персонаж, известен със своята дипломатическа мъдрост и лидерство: Разгледайте тази настройка на разговора: - Установява ролята и личността на AI чрез SystemMessage - Предоставя началната потребителска заявка чрез HumanMessage - Създава основа за многообменен разговор Пълният код за този пример изглежда така: Трябва да видите резултат, подобен на: За да поддържате непрекъснатост в разговора (вместо да нулирате контекста всеки път), трябва да продължите да добавяте отговори към списъка със съобщения. Подобно на устните традиции, които съхраняват истории през поколения, този подход изгражда дълготрайна памет: Много готино, нали? Това, което става тук, е, че извикваме LLM два пъти – първо с нашите две първоначални съобщения, а после пак с цялата история на разговора. Като че ли AI всъщност следи нашия чат! Когато изпълните този код, ще получите втори отговор, който звучи приблизително така: Ще приема това като „може би“ ;)
Поточно предаване на отговори
Забелязвали ли сте как ChatGPT сякаш „писка“ отговорите си в реално време? Това е поточно предаване в действие. Като наблюдаване на майстор-калиграф – да виждате как буквите се появяват щрих по щрих, а не изведнъж – поточното предаване прави взаимодействието по-естествено и осигурява незабавна обратна връзка.
Имплементиране на поточно предаване с LangChain
Защо поточното предаване е страхотно: - Показва съдържанието докато се създава – няма повече неловко чакане! - Прави потребителите да чувстват, че нещо наистина се случва - Изглежда по-бързо, дори когато технически не е - Позволява на потребителите да започнат да четат, докато AI все още „мисли“
🎯 Педагогическа проверка: Ползи от абстракцията на рамките
Пауза и размисъл: Току-що изпитахте мощта на абстракциите в AI рамките. Сравнете това, което научихте, с директните API повиквания от предишните уроци. Бърза самопроверка: - Можете ли да обясните как LangChain опростява управлението на разговорите спрямо ръчното проследяване на съобщения? - Каква е разликата между методите invoke() и stream(), и кога би използвали всеки? - Как системата за типове съобщения подобрява организацията на кода? Връзка с реалния свят: Абстрактните модели, които научихте (типове съобщения, поточни интерфейси, памет на разговори), се използват във всяко голямо AI приложение – от интерфейса на ChatGPT до асистенцията на GitHub Copilot. Вие овладявате същите архитектурни модели, които използват професионалните AI екипи. Въпрос за предизвикателство: Как бихте проектирали абстракция на рамка за обработка на различни доставчици на AI модели (OpenAI, Anthropic, Google) с единен интерфейс? Обмислете предимствата и компромисите.
Шаблони за промпти
Шаблоните за промпти работят като реторическите структури, използвани в класическата ораторска реч – помислете как Цицерон адаптираше речите си за различни аудитории, запазвайки една и съща убедителна рамка. Те ви позволяват да създавате многократно използваеми промпти, където можете да заменяте различни елементи информация без да преписвате всичко отначало. След като настроите шаблона, просто попълвате променливите с необходимите стойности.
Създаване на многократно използваеми промпти
Защо ще харесате използването на шаблони: - Запазват консистентност на промптите из цялото приложение - Без повече объркващи конкатенации на низове – само чисти, прости променливи - AI-то ви се държи предвидимо, защото структурата остава същата - Обновленията са лесни – променяте шаблона веднъж и е поправено навсякъде
Структуриран изход
Калвало ли ви е да се ядосвате, опитвайки се да разчетете AI отговори, върнати като неструктуриран текст? Структурираният изход е като да научите AI да следва систематичния подход на Линей за биологична класификация – организирана, предвидима и лесна за работа. Можете да изисквате JSON, конкретни структури от данни или всякакъв формат, който ви е нужен.
Определяне на схеми за изход
Защо структурираният изход е революционен: - Няма повече чудене за формата, който ще получите – винаги е последователен - Свързва се директно с вашите бази данни и API без допълнителна работа - Хваща странни AI отговори преди да счупят вашето приложение - Прави кода ви по-чист, защото знаете точно с какво работите
Повикване на инструменти
Сега достигаме до една от най-мощните функции: инструментите. Това е начинът да дадете на AI практични възможности отвъд разговора. Подобно на средновековните гилдии, които разработваха специализирани инструменти за конкретни занаяти, можете да оборудвате AI с фокусирани инструменти. Описвате наличните инструменти и когато някой поиска нещо, което съвпада, AI може да предприеме действие.
Използване на Python
Нека добавим някои инструменти по следния начин: Какво се случва тук? Създаваме план за инструмент, наречен add. Наследявайки се от TypedDict и използвайки тези елегантни типове Annotated за a и b, даваме на LLM ясна представа какво прави този инструмент и от какво има нужда. Речникът functions е като нашият инструментариум – казва на кода ни какво точно да прави, когато AI реши да използва конкретен инструмент. Нека видим как после извикваме LLM с този инструмент: Тук извикваме bind_tools с нашия масив tools, и по този начин LLM llm_with_tools вече има познания за този инструмент. За да използваме този нов LLM, можем да напишем следния код: Сега, когато извикваме invoke на този нов llm със инструменти, свойството tool_calls може да е запълнено. Ако е така, всеки идентифициран инструмент има свойства name и args, които показват кой инструмент трябва да бъде извикан и с какви аргументи. Пълният код изглежда така: При изпълнение на този код трябва да видите изход подобен на: AI разгледа “Какво е 3 + 12” и разпозна това като задача за инструмента add. Подобно на опитния библиотекар, който знае какъв справочник да консултира в зависимост от вида на зададения въпрос, AI направи това определяне въз основа на името, описанието и спецификациите на полето на инструмента. Резултатът 15 идва от нашия речник functions, който изпълнява инструмента:
По-интересен инструмент, който извиква уеб API
Добавянето на числа демонстрира концепцията, но реалните инструменти обикновено извършват по-сложни операции, като викане на уеб API. Нека разширим примера, така че AI да изтегля съдържание от интернет - подобно на начина, по който телеграфните оператори някога свързваха отдалечени места: Ако стартирате този код, ще получите отговор, казващ нещо като: Ето кода в цялост:
Вграждания и обработка на документи
Вгражданията представляват едно от най-елегантните решения в съвременния AI. Представете си, че можете да вземете всеки текст и да го преобразувате в числови координати, които улавят неговото значение. Това точно правят вгражданията - превръщат текст в точки в многомерно пространство, където подобни концепции се групират заедно. Това е като да имате координатна система за идеи, наподобяваща начина, по който Менделеев е организирал периодичната таблица по атомни свойства.
Създаване и използване на вграждания
Зареждачи на документи за различни формати
Какво може да направите с вграждания: - Изградете търсене, което наистина разбира значението ви, а не просто съвпадение на ключови думи - Създайте AI, който може да отговаря на въпроси за вашите документи - Направете системи за препоръчване, които предлагат действително релевантно съдържание - Автоматично организирайте и категоризирайте съдържанието си
Изграждане на пълно AI приложение
Сега ще интегрираме всичко, което сте научили, в цялостно приложение - асистент за кодиране, който може да отговаря на въпроси, да използва инструменти и да поддържа спомен за разговора. По подобие на начина, по който печатната преса комбинира съществуващи технологии (подвижен шрифт, мастило, хартия и натиск) в нещо трансформиращо, ние ще съчетаем нашите AI компоненти в нещо практично и полезно.
Пример за цялостно приложение
Архитектура на приложението: Основни функции, които сме реализирали: - Запомня целия ви разговор за контекстна последователност - Изпълнява действия чрез викане на инструменти, не само чрез чат - Следва прогнозируеми модели на взаимодействие - Управлява обработка на грешки и сложни работни процеси автоматично
🎯 Педагогическа проверка: Производствена AI архитектура
Разбиране на архитектурата: Изградили сте пълно AI приложение, което съчетава управление на разговори, извикване на инструменти и структурирани работни потоци. Това представлява разработка на AI приложение на производствено ниво. Основни усвоени концепции: - Архитектура на базата на класове: Организирана, поддържаща се структура на AI приложението - Интеграция на инструменти: Персонализирана функционалност извън разговора - Управление на паметта: Психическа последователност на разговора - Обработка на грешки: Здрава работа на приложението Връзка с индустрията: Патърните на архитектурата, които сте имплементирали (класове за разговори, системи с инструменти, управление на паметта) са същите, които се използват в корпоративни AI приложения като AI асистента на Slack, GitHub Copilot и Microsoft Copilot. Вие изграждате с професионално мислене за архитектура. Въпрос за размисъл: Как бихте разширили това приложение, за да поддържа множество потребители, постоянна памет или интеграция с външни бази данни? Обмислете предизвикателствата при мащабируемост и управление на състоянието.
Задача: Изградете собствен AI-подпомаган учебен асистент
Цел: Създайте AI приложение, което помага на студентите да научат програмни концепции, предоставяйки обяснения, кодови примери и интерактивни тестове.
Изисквания
Основни функции (задължителни): 1. Разговорен интерфейс: Имплементирайте чат система, която поддържа контекст през множество въпроси 2. Образователни инструменти: Създайте поне два инструмента, които подпомагат ученето: - Инструмент за обяснение на код - Генератор на концептуални тестове 3. Персонализирано обучение: Използвайте системни съобщения, за да адаптирате отговорите спрямо различни нива на умения 4. Форматиране на отговори: Имплементирайте структурирани изходни данни за въпроси от тестовете
Стъпки за реализация
Стъпка 1: Настройте средата си Стъпка 2: Базова чат функционалност - Създайте клас StudyAssistant - Имплементирайте памет на разговорите - Добавете конфигурация на личността за образователна подкрепа Стъпка 3: Добавете образователни инструменти - Обяснител на кода: Разбива кода на разбираеми части - Генератор на тестове: Създава въпроси за програмни концепции - Тракер за напредък: Проследява покритите теми Стъпка 4: Подобрени функции (по избор) - Имплементирайте стрийминг на отговори за по-добро потребителско изживяване - Добавете зареждане на документи, за да включите учебни материали - Създайте вграждания за извличане на съдържание на база сходство
Критерии за оценяване
Примерна структура на кода
Допълнителни предизвикателства: - Добавете възможности за гласов вход/изход - Имплементирайте уеб интерфейс с Streamlit или Flask - Създайте база знания от учебни материали с помощта на вграждания - Добавете проследяване на напредъка и персонализирани учебни пътеки
📈 Времева линия за овладяване на разработката на AI рамка
🎓 Крайъгълен камък при завършване: Успешно овладяхте разработката на AI рамка с помощта на същите инструменти и патърни, които захранват съвременните AI приложения. Тези умения представляват върха на развитието на AI приложения и ви подготвят за изграждане на интелигентни системи на корпоративно ниво. 🔄 Следващо ниво възможности: - Готови сте да изследвате напреднали AI архитектури (агенти, мултиагентни системи) - Подготвени сте да изградите RAG системи с векторни бази данни - Оборудвани сте да създавате мултимодални AI приложения - Поставили сте основата за мащабиране и оптимизация на AI приложения
Обобщение
🎉 Вече сте овладели основите на разработката на AI рамки и сте научили как да изграждате сложни AI приложения с помощта на LangChain. Като завършване на пълноценно обучение, придобихте значителен набор от умения. Нека обобщим какво сте постигнали.
Какво научихте
Основни концепции на рамката: - Предимства на рамките: Разбиране кога да изберете рамки пред директни API обаждания - Основи на LangChain: Настройка и конфигуриране на връзки с AI модели - Типове съобщения: Използване на SystemMessage, HumanMessage и AIMessage за структуриран разговор Разширени функции: - Викане на инструменти: Създаване и интегриране на персонализирани инструменти за разширени AI възможности - Памет на разговорите: Поддържане на контекст през множество обръщения в разговора - Стрийминг на отговори: Имплементиране на реакция в реално време - Шаблони за промпти: Изграждане на многократно използваеми, динамични шаблони - Структуриран изход: Гарантиране на конзистентни, пригодни за парсване AI отговори - Вграждания: Създаване на семантично търсене и обработка на документи Практическа употреба: - Изграждане на пълни приложения: Комбиниране на множество функции в приложения, готови за продукция - Обработка на грешки: Имплементиране на здрава обработка на грешки и валидация - Интеграция на инструменти: Създаване на персонализирани инструменти, разширяващи AI възможностите
Основни изводи
Рамка за взимане на решения за AI интеграция:
Къде да продължите оттук?
Започнете да изграждате веднага: - Вземете тези концепции и създайте нещо, което ВАС вдъхновява! - Играйте си с различни AI модели чрез LangChain - това е като игрище за AI модели - Създайте инструменти, които решават реални проблеми във вашата работа или проекти Готови ли сте за следващото ниво? - AI агенти: Изградете AI системи, които могат да планират и изпълняват сложни задачи сами - RAG (Retrieval-Augmented Generation): Комбинирайте AI с вашите бази знания за супер мощни приложения - Мултимодален AI: Работете с текст, изображения и аудио заедно - възможностите са безкрайни! - Производствено внедряване: Научете как да мащабирате вашите AI приложения и да ги наблюдавате в реалния свят Присъединете се към общността: - Общността на LangChain е отлична за оставане в крак с новостите и усвояване на добри практики - GitHub Models ви дава достъп до най-новите AI възможности - перфектно за експериментиране - Продължавайте да практикувате с различни случаи - всеки проект ще ви научи на нещо ново Сега имате знанията да изграждате интелигентни, разговорни приложения, които могат да помагат на хората да решават реални проблеми. Подобно на ренесансовите майстори, които съчетавали артистично виждане с технически умения, вие можете да слеете AI възможностите с практическо приложение. Въпросът е: какво ще създадете? 🚀
Предизвикателство GitHub Copilot Agent 🚀
Използвайте Agent режима, за да изпълните следното предизвикателство: Описание: Създайте напреднал AI асистент за преглед на код, който комбинира множество LangChain функции, включително викане на инструменти, структуриран изход и памет за разговори, за да осигури обстойни отзиви за кодови подавания. Промпт: Създайте клас CodeReviewAssistant, който имплементира: 1. Инструмент за анализ на сложността на кода и предлагане на подобрения 2. Инструмент за проверка на кода спрямо най-добрите практики 3. Структуриран изход с Pydantic модели за еднакъв формат на прегледа 4. Памет за разговори, за да следи сесиите на преглед 5. Основен чат интерфейс, който може да обработва кодови подавания и да дава подробна, приложима обратна връзка Асистентът трябва да може да преглежда код на множество програмни езици, да поддържа контекст през няколко кодови подавания в сесия и да предоставя както обобщени оценки, така и подробни предложения за подобрение.
Научете повече за агент режим тук.
Отказ от отговорност: Този документ е преведен с помощта на AI преводаческа услуга Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Не носим отговорност за каквито и да било недоразумения или неправилни тълкувания, възникнали от използването на този превод.
flowchart LR
A[⚡ 5 минути] --> B[Инсталирай LangChain]
B --> C[Създай ChatOpenAI клиент]
C --> D[Изпрати първия подканващ текст]
D --> E[Виж силата на фреймуърка]
Follow the lesson from Microsoft Web-Dev-For-Beginners course