Generative-AI-for-beginners-java / lt
AGENTS.md557 starsChanged 5 months agoMITView on GitHub
Tai edukacinis repozitorijus, skirtas mokytis Generatyviosios AI kūrimo su Java. Jame pateikiamas išsamus praktinis kursas, apimantis Didelius kalbos modelius (LLM), užklausų inžineriją, įterpimus, RAG (Retrieval-Augmented Generation) ir Modelio konteksto protokolą (MCP). Pagrindinės technologijos: - Java 21 - Spring Boot 3.5.x - Spring AI 1.1.x - Maven - LangChain4j - Azure AI Foundry, Azure OpenAI ir OpenAI SDK Architektūra: - Keli atskiri Spring Boot aplikacijų projektai, sugrupuoti pagal skyrius - Pavyzdiniai projektai, demonstruojantys įvairius AI modelius - Paruošta naudoti GitHub Codespaces…
- Reads credentials
- Deletes or force-pushes
- Installs packages
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,542 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository55 other files it gives its agents.
- AGENTS.mdAGENTS.md
- translations/ar/AGENTS.mdAGENTS.md
- translations/bg/AGENTS.mdAGENTS.md
- translations/bn/AGENTS.mdAGENTS.md
- translations/cs/AGENTS.mdAGENTS.md
- translations/da/AGENTS.mdAGENTS.md
- translations/de/AGENTS.mdAGENTS.md
- translations/el/AGENTS.mdAGENTS.md
- translations/en/AGENTS.mdAGENTS.md
- translations/es/AGENTS.mdAGENTS.md
- translations/et/AGENTS.mdAGENTS.md
- translations/fa/AGENTS.mdAGENTS.md
- translations/fi/AGENTS.mdAGENTS.md
- translations/fr/AGENTS.mdAGENTS.md
- translations/he/AGENTS.mdAGENTS.md
- translations/hi/AGENTS.mdAGENTS.md
- translations/hr/AGENTS.mdAGENTS.md
- translations/hu/AGENTS.mdAGENTS.md
- translations/id/AGENTS.mdAGENTS.md
- translations/it/AGENTS.mdAGENTS.md
- translations/ja/AGENTS.mdAGENTS.md
- translations/km/AGENTS.mdAGENTS.md
- translations/kn/AGENTS.mdAGENTS.md
- translations/ko/AGENTS.mdAGENTS.md
- translations/ml/AGENTS.mdAGENTS.md
- translations/mr/AGENTS.mdAGENTS.md
- translations/ms/AGENTS.mdAGENTS.md
- translations/my/AGENTS.mdAGENTS.md
- translations/ne/AGENTS.mdAGENTS.md
- translations/nl/AGENTS.mdAGENTS.md
- translations/no/AGENTS.mdAGENTS.md
- translations/pa/AGENTS.mdAGENTS.md
- translations/pcm/AGENTS.mdAGENTS.md
- translations/pl/AGENTS.mdAGENTS.md
- translations/pt-BR/AGENTS.mdAGENTS.md
- translations/pt-PT/AGENTS.mdAGENTS.md
- translations/ro/AGENTS.mdAGENTS.md
- translations/ru/AGENTS.mdAGENTS.md
- translations/sk/AGENTS.mdAGENTS.md
- translations/sl/AGENTS.mdAGENTS.md
- translations/sr/AGENTS.mdAGENTS.md
- translations/sv/AGENTS.mdAGENTS.md
- translations/sw/AGENTS.mdAGENTS.md
- translations/ta/AGENTS.mdAGENTS.md
- translations/te/AGENTS.mdAGENTS.md
- translations/th/AGENTS.mdAGENTS.md
- translations/tl/AGENTS.mdAGENTS.md
- translations/tr/AGENTS.mdAGENTS.md
- translations/uk/AGENTS.mdAGENTS.md
- translations/ur/AGENTS.mdAGENTS.md
- translations/vi/AGENTS.mdAGENTS.md
- translations/zh-CN/AGENTS.mdAGENTS.md
- translations/zh-HK/AGENTS.mdAGENTS.md
- translations/zh-MO/AGENTS.mdAGENTS.md
- translations/zh-TW/AGENTS.mdAGENTS.md
The file
We split this AGENTS.md into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 159
Testų failai naudoja JUnit 5 (Jupiter)
- Very specific: line 160
Testų klasės yra src/test/java/ kataloge
- Very specific: line 245
Testų klasės: target/test-classes/
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AGENTS.md
Projekto apžvalga
Tai edukacinis repozitorijus, skirtas mokytis Generatyviosios AI kūrimo su Java. Jame pateikiamas išsamus praktinis kursas, apimantis Didelius kalbos modelius (LLM), užklausų inžineriją, įterpimus, RAG (Retrieval-Augmented Generation) ir Modelio konteksto protokolą (MCP).
Pagrindinės technologijos:
- Java 21
- Spring Boot 3.5.x
- Spring AI 1.1.x
- Maven
- LangChain4j
- Azure AI Foundry, Azure OpenAI ir OpenAI SDK
Architektūra:
- Keli atskiri Spring Boot aplikacijų projektai, sugrupuoti pagal skyrius
- Pavyzdiniai projektai, demonstruojantys įvairius AI modelius
- Paruošta naudoti GitHub Codespaces su iš anksto sukonfigūruotomis kūrimo aplinkomis
Diegimo komandos
Išankstiniai reikalavimai
- Java 21 arba naujesnė
- Maven 3.x
- Azure prenumerata su Azure AI Foundry modelio diegimu (sukuriama su
azd up) - Azure CLI (
az) ir Azure Developer CLI (azd), prisijungę naudotojai be raktų (keyless auth)
Aplinkos konfigūracija
Pasirinkimas 1: GitHub Codespaces (rekomenduojama)
# Sukurkite šaką (fork) saugykloje ir sukurkite kodų erdvę (codespace) iš GitHub sąsajos
# Kūrimo konteineris automatiškai įdiegs visas priklausomybes
# Palaukite apie 2 minutes, kol bus paruošta aplinkaPasirinkimas 2: Vietinis kūrimo konteineris
# Klonuoti repozitoriją
git clone https://github.com/microsoft/Generative-AI-for-beginners-java.git
cd Generative-AI-for-beginners-java
# Atidaryti VS Code su Dev Containers plėtiniu
# Pakartotinai atidaryti konteineryje, kai bus paprašytaPasirinkimas 3: Vietinis diegimas
# Įdiekite priklausomybes
sudo apt-get update
sudo apt-get install -y maven openjdk-21-jdk
# Patikrinkite diegimą
java -version
mvn -versionKonfigūracija
Azure AI Foundry diegimas (be raktų, rekomenduojama):
# Sukurkite Foundry paskyrą + modelių diegimus kaip kodą
cd 02-SetupDevEnvironment
azd auth login
az login
azd up
# azd įrašo examples/basic-chat-azure/.env su jūsų galiniu tašku (be rakto)Rankinė galinio taško konfigūracija:
# Jei nenaudojote azd, patys nustatykite galinį tašką (autentifikacija lieka be rakto per az login)
cd 02-SetupDevEnvironment/examples/basic-chat-azure
cp .env.example .env
# Redaguokite .env: AZURE_OPENAI_ENDPOINT=https://<resource>.openai.azure.com/Kūrimo darbo eiga
Projekto struktūra
/
├── 01-IntroToGenAI/ # Chapter 1: Introduction
├── 02-SetupDevEnvironment/ # Chapter 2: Environment setup
│ └── examples/ # Working examples
├── 03-CoreGenerativeAITechniques/ # Chapter 3: Core techniques
├── 04-PracticalSamples/ # Chapter 4: Sample projects
│ ├── calculator/ # MCP service example
│ ├── foundrylocal/ # Local model integration
│ └── petstory/ # Multi-modal app
├── 05-ResponsibleGenAI/ # Chapter 5: Responsible AI
└── translations/ # Multi-language supportAplikacijų paleidimas
Spring Boot aplikacijos paleidimas:
cd [project-directory]
mvn spring-boot:runProjekto kompiliavimas:
cd [project-directory]
mvn clean installMCP skaičiuoklio serverio paleidimas:
cd 04-PracticalSamples/calculator
mvn spring-boot:run
# Serveris veikia adresu http://localhost:8080Klientų pavyzdžių paleidimas:
# Po serverio paleidimo kitame terminale
cd 04-PracticalSamples/calculator
# Tiesioginis MCP klientas
mvn exec:java -Dexec.mainClass="com.microsoft.mcp.sample.client.SDKClient"
# AI varomas klientas (reikia AZURE_OPENAI_ENDPOINT + az prisijungimo)
mvn exec:java -Dexec.mainClass="com.microsoft.mcp.sample.client.LangChain4jClient"
# Interaktyvus botas
mvn exec:java -Dexec.mainClass="com.microsoft.mcp.sample.client.Bot"Karštasis persikrovimas
Spring Boot DevTools įtrauktos į projektus, kurie palaiko karštąjį persikrovimą:
# Pakeitimai Java failuose bus automatiškai perkraunami juos išsaugojus
mvn spring-boot:runTestavimo instrukcijos
Testų vykdymas
Visų projekto testų paleidimas:
cd [project-directory]
mvn testTestų paleidimas su išsamia išvestimi:
mvn test -XKonkrečios testų klasės paleidimas:
mvn test -Dtest=CalculatorServiceTestTestų struktūra
- Testų failai naudoja JUnit 5 (Jupiter)
- Testų klasės yra
src/test/java/kataloge - Klientų pavyzdžiai skaičiuoklio projekte yra
src/test/java/com/microsoft/mcp/sample/client/
Rankinis testavimas
Daugelis pavyzdžių yra interaktyvios aplikacijos, kurios reikalauja rankinio testavimo:
- Paleiskite aplikaciją komanda
mvn spring-boot:run - Testuokite galinius taškus arba bendraukite per komandų eilutę
- Patikrinkite, ar elgsena atitinka kiekvieno projekto README.md dokumentacijoje aprašytus lūkesčius
Testavimas su Azure AI Foundry
- Prisijunkite su
az loginprieš paleisdami pavyzdžius (be raktų autentifikavimas) - Užtikrinkite, kad jūsų paskyra turi Cognitive Services OpenAI User vaidmenį resurse
- Testuokite turinio filtravimą su atsakingos AI pavyzdžiu 5 skyriuje
Kodo stiliaus gairės
Java konvencijos
- Java versija: Java 21 su moderniomis funkcijomis
- Stilius: Laikytis standartinių Java konvencijų
- Pavadinimai:
- Klasės: PascalCase
- Metodai/kintamieji: camelCase
- Konstantos: UPPER_SNAKE_CASE
- Paketo pavadinimai: mažosiomis raidėmis
Spring Boot modeliai
- Naudoti
@Serviceverslo logikai - Naudoti
@RestControllerREST galiniams taškams - Konfigūracija per
application.ymlarbaapplication.properties - Aplinkos kintamieji preferuojami prieš kietai užkoduotas reikšmes
- Naudoti
@Toolanotaciją MCP eksponuotoms metodams
Failų organizavimas
src/
├── main/
│ ├── java/
│ │ └── com/microsoft/[component]/
│ │ ├── [Component]Application.java
│ │ ├── config/
│ │ ├── controller/
│ │ ├── service/
│ │ └── exception/
│ └── resources/
│ ├── application.yml
│ └── static/
└── test/
└── java/
└── com/microsoft/[component]/Priklausomybės
- Valdomos per Maven
pom.xml - Naudojamas Spring AI BOM versijų valdymui
- LangChain4j AI integracijoms
- Spring Boot starter parent Spring priklausomybėms
Kodo komentarai
- Rašyti JavaDoc viešajam API
- Įtraukti paaiškinamuosius komentarus sudėtingiems AI sąveikoms
- Aiškiai dokumentuoti MCP įrankių aprašymus
Kūrimas ir diegimas
Projektų kūrimas
Kūrimas be testų:
mvn clean install -DskipTestsKūrimas su visais patikrinimais:
mvn clean installAplikacijos paketavimas:
mvn package
# Sukuria JAR failą target/ katalogeIšvesties katalogai
- Surinktos klasės:
target/classes/ - Testų klasės:
target/test-classes/ - JAR failai:
target/*.jar - Maven artefaktai:
target/
Aplinkos specifinė konfiguracija
Vystymui:
# application.yml (keyless - no api-key; auth via DefaultAzureCredential)
spring:
ai:
azure:
openai:
endpoint: ${AZURE_OPENAI_ENDPOINT}
chat:
options:
deployment-name: ${AZURE_OPENAI_DEPLOYMENT:gpt-4o-mini}Gamybai:
- Naudoti valdomą tapatybę vietoje
az loginkeyless autentifikavimui - Nustatyti
AZURE_OPENAI_ENDPOINTį savo gamybinį Foundry resursą - Valdyti konfigūraciją per aplinkos kintamuosius arba Azure Key Vault
Diegimo pastabos
- Tai edukacinis repozitorijus su pavyzdinėmis aplikacijomis
- Nėra skirtas gamybiniam diegimui be papildomų adaptacijų
- Pavyzdžiai demonstruoja modelius, kuriuos galima pritaikyti gamybinėms reikmėms
- Peržiūrėkite individualių projektų README.md dėl konkrečių diegimo pastabų
Papildomos pastabos
Azure AI Foundry
- Keyless autentifikacija: jungtis per Microsoft Entra ID — nereikia valdyti API raktų
- Pankodinis diegimas: Bicep + azd (
azd up) sukuria paskyrą ir modelių diegimus - Toks pats OpenAI suderinamas kodas veikia vietoje (
az login) ir Azure aplinkoje (valdomos tapatybės)
Darbas su keliais projektais
Kiekvienas pavyzdinis projektas yra atskiras:
# Pereikite į konkretų projektą
cd 04-PracticalSamples/[project-name]
# Kiekvienas turi savo pom.xml ir gali būti statomas nepriklausomai
mvn clean installDažnos problemos
Java versijų neatitikimas:
# Patikrinti Java 21
java -version
# Atnaujinti JAVA_HOME, jei reikia
export JAVA_HOME=/usr/lib/jvm/msopenjdk-currentPriklausomybių atsisiuntimo problemos:
# Išvalykite Maven talpyklą ir bandykite dar kartą
rm -rf ~/.m2/repository
mvn clean installGalinio taško arba prisijungimo nepavykimas:
# Nustatykite galutinį tašką dabartinėje sesijoje ir prisijunkite (be rakto)
export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com/"
az login
# Arba naudokite .env failą projekto kataloge
echo "AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/" > .envPrievadas jau užimtas:
# Spring Boot pagal numatytuosius nustatymus naudoja 8080 prievadą
# Keisti application.properties faile:
server.port=8081Daugiakalbystės palaikymas
- Dokumentacija prieinama daugiau nei 45 kalbomis per automatinį vertimą
- Vertimai saugomi
translations/kataloge - Vertimo valdymas atliekamas per GitHub Actions darbo eigą
Mokymosi kelias
- Pradėkite nuo 02-SetupDevEnvironment
- Sekite skyrius pagal eilę (01 → 05)
- Atlikite praktinius pavyzdžius kiekviename skyriuje
- Tyrinėkite pavyzdinius projektus 4 skyriuje
- Mokykitės atsakingos AI praktikos 5 skyriuje
Kūrimo konteineris
Failas .devcontainer/devcontainer.json konfigūruoja:
- Java 21 kūrimo aplinką
- Iš anksto įdiegtą Maven
- VS Code Java plėtinius
- Spring Boot įrankius
- GitHub Copilot integraciją
- Docker-in-Docker palaikymą
- Azure CLI
Veikimo našumo aspektai
- Azure AI Foundry diegimuose yra minučių tokenų/užklausų kvotos
- Naudokite tinkamus paketus įterpimams
- Apsvarstykite kešavimą pakartotinėms API užklausoms
- Stebėkite tokenų naudojimą kaštų optimizavimui
Saugumo pastabos
- Niekada nekelkite
.envfailų (jie jau įtraukti į.gitignore) - Prioritetinis keyless autentifikavimas (Microsoft Entra ID) prieš API raktus
- Naudokite valdomas tapatybes Azure;
az loginvietiniam vystymui - Vadovaukitės atsakingos AI gairėmis 5 skyriuje
<!-- CO-OP TRANSLATOR DISCLAIMER START -->Atsakomybės apribojimas: Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą Co-op Translator. Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba laikomas autoritetingu šaltiniu. Svarbiai informacijai rekomenduojama naudoti profesionalų žmogiškąjį vertimą. Mes neatsakome už jokius nesusipratimus ar neteisingą interpretaciją, kilusią naudojantis šiuo vertimu.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

