AGENTS.md
Projektáttekintés
Ez a tároló egy átfogó, 21 leckéből álló tananyagot tartalmaz, amely a generatív mesterséges intelligencia alapjait és alkalmazásfejlesztését tanítja. A kurzus kezdőknek készült, és a legfontosabb fogalmaktól a gyártásra kész alkalmazások építéséig mindent lefed.
Kulcstechnológiák:
- Python 3.9+ könyvtárakkal:
openai,python-dotenv,tiktoken,azure-ai-inference,pandas,numpy,matplotlib - TypeScript/JavaScript Node.js-szel és könyvtárakkal:
@azure/openai,@azure-rest/ai-inference,openai - Azure OpenAI Service, OpenAI API és GitHub Modellek
- Jupyter Notebooks interaktív tanuláshoz
- Dev Containers az egységes fejlesztési környezethez
Tároló felépítése:
- 21 számozott lecke könyvtár (00-21), amelyek README fájlokat, kódpéldákat és feladatokat tartalmaznak
- Többféle megvalósítás: Python, TypeScript, és néha .NET példák
- Fordítások könyvtára több mint 40 nyelvi verzióval
- Központosított konfiguráció
.envfájlon keresztül (használja a.env.copysablont)
Beállítási parancsok
Tároló kezdeti beállítása
# Clone the repository
git clone https://github.com/microsoft/generative-ai-for-beginners.git
cd generative-ai-for-beginners
# Copy environment template
cp .env.copy .env
# Edit .env with your API keys and endpoints
Python környezet beállítása
# Create virtual environment
python3 -m venv venv
# Activate virtual environment
# On macOS/Linux:
source venv/bin/activate
# On Windows:
venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
Node.js/TypeScript beállítása
# Install root-level dependencies (for documentation tooling)
npm install
# For individual lesson TypeScript examples, navigate to the specific lesson:
cd 06-text-generation-apps/typescript/recipe-app
npm install
Dev Container beállítása (ajánlott)
A tároló tartalmaz egy .devcontainer konfigurációt GitHub Codespaces vagy VS Code Dev Containers számára:
- Nyissa meg a tárolót GitHub Codespaces-ben vagy VS Code-ban a Dev Containers bővítménnyel
- A Dev Container automatikusan:
- Telepíti a Python függőségeket a
requirements.txtfájlból - Lefuttatja a post-create scriptet (
.devcontainer/post-create.sh) - Beállítja a Jupyter kernelt
- Telepíti a Python függőségeket a
Fejlesztési munkafolyamat
Környezeti változók
Minden API-hozzáférést igénylő lecke a .env fájlban definiált környezeti változókat használja:
OPENAI_API_KEY- OpenAI API-hozAZURE_OPENAI_API_KEY- Azure OpenAI Service-hezAZURE_OPENAI_ENDPOINT- Azure OpenAI végpont URL-jeAZURE_OPENAI_DEPLOYMENT- Chat completion modell telepítési neveAZURE_OPENAI_EMBEDDINGS_DEPLOYMENT- Embeddings modell telepítési neveAZURE_OPENAI_API_VERSION- API verzió (alapértelmezett:2024-02-01)HUGGING_FACE_API_KEY- Hugging Face modellekhezGITHUB_TOKEN- GitHub Modellekhez
Python példák futtatása
# Navigate to lesson directory
cd 06-text-generation-apps/python
# Run a Python script
python aoai-app.py
TypeScript példák futtatása
# Navigate to TypeScript app directory
cd 06-text-generation-apps/typescript/recipe-app
# Build the TypeScript code
npm run build
# Run the application
npm start
Jupyter Notebooks futtatása
# Start Jupyter in the repository root
jupyter notebook
# Or use VS Code with Jupyter extension
Különböző lecketípusokkal való munka
- "Learn" leckék: README.md dokumentációra és fogalmakra fókuszálnak
- "Build" leckék: Működő kódpéldákat tartalmaznak Pythonban és TypeScriptben
- Minden lecke tartalmaz egy README.md fájlt elmélettel, kódismertetőkkel és videós tartalmakra mutató hivatkozásokkal
Kódstílus irányelvek
Python
- Használja a
python-dotenvkönyvtárat a környezeti változók kezeléséhez - Importálja az
openaikönyvtárat az API interakciókhoz - Használja a
pylinteszközt linteléshez (néhány példa tartalmazza a# pylint: disable=allmegjegyzést az egyszerűség kedvéért) - Kövesse a PEP 8 elnevezési konvenciókat
- API hitelesítő adatokat
.envfájlban tárolja, soha ne a kódban
TypeScript
- Használja a
dotenvcsomagot a környezeti változókhoz - TypeScript konfiguráció
tsconfig.jsonfájlban minden alkalmazáshoz - Használja az
@azure/openaivagy@azure-rest/ai-inferencekönyvtárakat az Azure szolgáltatásokhoz - Használja a
nodemoneszközt automatikus újratöltéssel a fejlesztéshez - Építse meg a futtatás előtt:
npm run build, majdnpm start
Általános konvenciók
- Tartsa a kódpéldákat egyszerűnek és oktatónak
- Tartalmazzon megjegyzéseket a kulcsfogalmak magyarázatához
- Minden lecke kódja legyen önállóan futtatható
- Használjon következetes elnevezést:
aoai-előtag az Azure OpenAI-hoz,oai-az OpenAI API-hoz,githubmodels-a GitHub Modellekhez
Dokumentációs irányelvek
Markdown stílus
- Minden URL-t
[szöveg](../../url)formátumban kell megadni, extra szóközök nélkül - Relatív hivatkozásoknak
./vagy../-vel kell kezdődniük - Minden Microsoft domainre mutató hivatkozásnak tartalmaznia kell követési azonosítót:
?WT.mc_id=academic-105485-koreyst - Ne használjon ország-specifikus lokalizációkat az URL-ekben (kerülje a
/en-us/-t) - Képek a
./imagesmappában tárolva, leíró nevekkel - Fájlnévben csak angol karakterek, számok és kötőjelek legyenek
Fordítási támogatás
- A tároló több mint 40 nyelvet támogat automatikus GitHub Actions segítségével
- Fordítások a
translations/könyvtárban tárolva - Ne küldjön be részleges fordításokat
- Gépi fordításokat nem fogadunk el
- Fordított képek a
translated_images/könyvtárban tárolva
Tesztelés és validálás
Beküldés előtti ellenőrzések
Ez a tároló GitHub Actions-t használ validáláshoz. PR beküldése előtt:
-
Markdown hivatkozások ellenőrzése:
# The validate-markdown.yml workflow checks: # - Broken relative paths # - Missing tracking IDs on paths # - Missing tracking IDs on URLs # - URLs with country locale # - Broken external URLs -
Manuális tesztelés:
- Python példák tesztelése: Aktiválja a venv-et és futtassa a szkripteket
- TypeScript példák tesztelése:
npm install,npm run build,npm start - Ellenőrizze, hogy a környezeti változók megfelelően vannak konfigurálva
- Győződjön meg róla, hogy az API kulcsok működnek a kódpéldákkal
-
Kódpéldák:
- Győződjön meg róla, hogy minden kód hiba nélkül fut
- Tesztelje az Azure OpenAI és OpenAI API-val, ahol alkalmazható
- Ellenőrizze, hogy a példák működnek-e a GitHub Modellekkel, ahol támogatott
Nincs automatizált tesztelés
Ez egy oktatási tároló, amely oktatóanyagokra és példákra fókuszál. Nincsenek egységtesztek vagy integrációs tesztek. A validálás főként:
- Kódpéldák manuális tesztelése
- GitHub Actions Markdown validáláshoz
- Közösségi véleményezés az oktatási tartalomról
Pull Request irányelvek
Beküldés előtt
- Tesztelje a kódváltoztatásokat Pythonban és TypeScriptben, ahol alkalmazható
- Futtassa a Markdown validálást (automatikusan elindul PR esetén)
- Győződjön meg róla, hogy minden Microsoft URL tartalmaz követési azonosítót
- Ellenőrizze, hogy a relatív hivatkozások érvényesek
- Ellenőrizze, hogy a képek megfelelően vannak hivatkozva
PR cím formátuma
- Használjon leíró címeket:
[Lecke 06] Python példa elírás javításavagyREADME frissítése a 08-as leckéhez - Hivatkozzon probléma számokra, ahol alkalmazható:
Fixes #123
PR leírás
- Magyarázza el, mi változott és miért
- Linkeljen kapcsolódó problémákra
- Kódváltoztatások esetén adja meg, mely példákat tesztelte
- Fordítási PR-ek esetén tartalmazza az összes fájlt a teljes fordításhoz
Hozzájárulási követelmények
- Írja alá a Microsoft CLA-t (automatikus az első PR-nél)
- Forkolja a tárolót a saját fiókjába, mielőtt változtatásokat végez
- Egy PR logikai változtatásonként (ne kombináljon nem kapcsolódó javításokat)
- Tartsa a PR-eket fókuszáltan és kicsiben, ha lehetséges
Gyakori munkafolyamatok
Új kódpélda hozzáadása
- Navigáljon a megfelelő lecke könyvtárba
- Hozzon létre példát a
python/vagytypescript/alkönyvtárban - Kövesse az elnevezési konvenciót:
{provider}-{example-name}.{py|ts|js} - Tesztelje valódi API hitelesítő adatokkal
- Dokumentálja az új környezeti változókat a lecke README fájljában
Dokumentáció frissítése
- Szerkessze a README.md fájlt a lecke könyvtárában
- Kövesse a Markdown irányelveket (követési azonosítók, relatív hivatkozások)
- A fordítások GitHub Actions által kezelve (ne szerkessze manuálisan)
- Tesztelje, hogy minden hivatkozás érvényes
Dev Containers használata
- A tároló tartalmazza a
.devcontainer/devcontainer.jsonfájlt - A post-create script automatikusan telepíti a Python függőségeket
- Python és Jupyter bővítmények előre konfigurálva
- A környezet az
mcr.microsoft.com/devcontainers/universal:2.11.2alapú
Telepítés és publikálás
Ez egy oktatási tároló - nincs telepítési folyamat. A tananyagot az alábbiak használják:
- GitHub tároló: Közvetlen hozzáférés a kódhoz és dokumentációhoz
- GitHub Codespaces: Azonnali fejlesztési környezet előre konfigurált beállítással
- Microsoft Learn: Tartalom szindikálása az hivatalos tanulási platformra
- docsify: Dokumentációs oldal Markdown alapján (lásd
docsifytopdf.jséspackage.json)
Dokumentációs oldal építése
# Generate PDF from documentation (if needed)
npm run convert
Hibakeresés
Gyakori problémák
Python importálási hibák:
- Győződjön meg róla, hogy a virtuális környezet aktiválva van
- Futtassa a
pip install -r requirements.txtparancsot - Ellenőrizze, hogy a Python verzió 3.9+
TypeScript build hibák:
- Futtassa az
npm installparancsot az adott alkalmazás könyvtárában - Ellenőrizze, hogy a Node.js verzió kompatibilis
- Törölje a
node_moduleskönyvtárat, és telepítse újra, ha szükséges
API hitelesítési hibák:
- Ellenőrizze, hogy a
.envfájl létezik és helyes értékeket tartalmaz - Győződjön meg róla, hogy az API kulcsok érvényesek és nem jártak le
- Ellenőrizze, hogy a végpont URL-ek helyesek az Ön régiójában
Hiányzó környezeti változók:
- Másolja a
.env.copyfájlt.envnéven - Töltse ki az összes szükséges értéket az aktuális leckéhez
- Indítsa újra az alkalmazást a
.envfrissítése után
További források
- Kurzus beállítási útmutató
- Hozzájárulási irányelvek
- Magatartási kódex
- Biztonsági irányelvek
- Azure AI Discord
- Haladó kódminták gyűjteménye
Projekt-specifikus megjegyzések
- Ez egy oktatási tároló, amely a tanulásra fókuszál, nem gyártási kódra
- A példák szándékosan egyszerűek és oktatási célokat szolgálnak
- A kódminőség az oktatási érthetőséggel van egyensúlyban
- Minden lecke önálló, és külön-külön elvégezhető
- A tároló több API szolgáltatót támogat: Azure OpenAI, OpenAI és GitHub Modellek
- A tartalom többnyelvű, automatikus fordítási munkafolyamatokkal
- Aktív közösség a Discordon kérdések és támogatás céljából
Felelősség kizárása:
Ez a dokumentum az Co-op Translator AI fordítási szolgáltatás segítségével került lefordításra. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.