Generative-AI-for-beginners-java / pl
AGENTS.md557 starsChanged 5 months agoMITView on GitHub
To jest edukacyjne repozytorium do nauki tworzenia generatywnej sztucznej inteligencji w Javie. Zapewnia kompleksowy kurs praktyczny obejmujący duże modele językowe (LLM), inżynierię promptów, embeddingi, RAG (Retrieval-Augmented Generation) oraz protokół kontekstu modelu (MCP). Kluczowe technologie: - Java 21 - Spring Boot 3.5.x - Spring AI 1.1.x - Maven - LangChain4j - Azure AI Foundry, Azure OpenAI oraz SDK OpenAI Architektura: - Wiele samodzielnych aplikacji Spring Boot zorganizowanych wg rozdziałów - Przykładowe projekty demonstrujące różne wzorce AI - Gotowe do uruchomienia w…
- Reads credentials
- Deletes or force-pushes
- Installs packages
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/lt/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/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
Files
AGENTS.md
Przegląd projektu
To jest edukacyjne repozytorium do nauki tworzenia generatywnej sztucznej inteligencji w Javie. Zapewnia kompleksowy kurs praktyczny obejmujący duże modele językowe (LLM), inżynierię promptów, embeddingi, RAG (Retrieval-Augmented Generation) oraz protokół kontekstu modelu (MCP).
Kluczowe technologie:
- Java 21
- Spring Boot 3.5.x
- Spring AI 1.1.x
- Maven
- LangChain4j
- Azure AI Foundry, Azure OpenAI oraz SDK OpenAI
Architektura:
- Wiele samodzielnych aplikacji Spring Boot zorganizowanych wg rozdziałów
- Przykładowe projekty demonstrujące różne wzorce AI
- Gotowe do uruchomienia w GitHub Codespaces z wstępnie skonfigurowanymi kontenerami deweloperskimi
Komendy instalacyjne
Wymagania wstępne
- Java 21 lub nowsza
- Maven 3.x
- Subskrypcja Azure z wdrożeniem modelu Azure AI Foundry (prowizja przez
azd up) - Azure CLI (
az) i Azure Developer CLI (azd), zalogowane dla autoryzacji bezkluczowej
Konfiguracja środowiska
Opcja 1: GitHub Codespaces (zalecane)
# Utwórz fork repozytorium i stwórz codespace z interfejsu GitHub
# Kontener deweloperski automatycznie zainstaluje wszystkie zależności
# Poczekaj około 2 minuty na przygotowanie środowiskaOpcja 2: Lokalny kontener deweloperski
# Sklonuj repozytorium
git clone https://github.com/microsoft/Generative-AI-for-beginners-java.git
cd Generative-AI-for-beginners-java
# Otwórz w VS Code z rozszerzeniem Dev Containers
# Ponownie otwórz w kontenerze, gdy pojawi się monitOpcja 3: Lokalne uruchomienie
# Zainstaluj zależności
sudo apt-get update
sudo apt-get install -y maven openjdk-21-jdk
# Zweryfikuj instalację
java -version
mvn -versionKonfiguracja
Azure AI Foundry (bezkluczowa, zalecana):
# Przygotuj konto Foundry + wdrożenia modeli jako kod
cd 02-SetupDevEnvironment
azd auth login
az login
azd up
# azd zapisuje examples/basic-chat-azure/.env z twoim punktem końcowym (bez klucza)Ręczna konfiguracja punktu końcowego:
# Jeśli nie używałeś azd, ustaw punkt końcowy samodzielnie (uwierzytelnianie pozostaje bezkluczowe przez az login)
cd 02-SetupDevEnvironment/examples/basic-chat-azure
cp .env.example .env
# Edytuj .env: AZURE_OPENAI_ENDPOINT=https://<resource>.openai.azure.com/Przebieg prac rozwojowych
Struktura projektu
/
├── 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 supportUruchamianie aplikacji
Uruchamianie aplikacji Spring Boot:
cd [project-directory]
mvn spring-boot:runBudowanie projektu:
cd [project-directory]
mvn clean installUruchamianie serwera kalkulatora MCP:
cd 04-PracticalSamples/calculator
mvn spring-boot:run
# Serwer działa na http://localhost:8080Uruchamianie przykładów klienta:
# Po uruchomieniu serwera w innym terminalu
cd 04-PracticalSamples/calculator
# Bezpośredni klient MCP
mvn exec:java -Dexec.mainClass="com.microsoft.mcp.sample.client.SDKClient"
# Klient zasilany przez AI (wymaga AZURE_OPENAI_ENDPOINT + az login)
mvn exec:java -Dexec.mainClass="com.microsoft.mcp.sample.client.LangChain4jClient"
# Interaktywny bot
mvn exec:java -Dexec.mainClass="com.microsoft.mcp.sample.client.Bot"Hot Reload
Spring Boot DevTools jest dołączony w projektach obsługujących hot reload:
# Zmiany w plikach Java zostaną automatycznie przeładowane po zapisaniu
mvn spring-boot:runInstrukcje testowania
Uruchamianie testów
Uruchom wszystkie testy w projekcie:
cd [project-directory]
mvn testUruchom testy z wyjściem szczegółowym:
mvn test -XUruchom konkretną klasę testową:
mvn test -Dtest=CalculatorServiceTestStruktura testów
- Pliki testowe korzystają z JUnit 5 (Jupiter)
- Klasy testowe znajdują się w
src/test/java/ - Przykłady klienta w projekcie kalkulatora są w
src/test/java/com/microsoft/mcp/sample/client/
Testowanie ręczne
Wiele przykładów to aplikacje interaktywne wymagające testów manualnych:
- Uruchom aplikację za pomocą
mvn spring-boot:run - Testuj endpointy lub korzystaj z CLI
- Sprawdź, czy oczekiwane zachowanie zgadza się z dokumentacją w README.md każdego projektu
Testowanie z Azure AI Foundry
- Zaloguj się za pomocą
az loginprzed uruchomieniem przykładów (autoryzacja bezkluczowa) - Upewnij się, że Twoje konto ma rolę Cognitive Services OpenAI User dla zasobu
- Przetestuj filtrowanie treści za pomocą przykładu odpowiedzialnej AI z rozdziału 5
Wytyczne dotyczące stylu kodu
Konwencje Java
- Wersja Javy: Java 21 z nowoczesnymi funkcjami
- Styl: Zgodny ze standardowymi konwencjami Javy
- Nazewnictwo:
- Klasy: PascalCase
- Metody/zmienne: camelCase
- Stałe: UPPER_SNAKE_CASE
- Nazwy pakietów: małe litery
Wzorce Spring Boot
- Używaj
@Servicedo logiki biznesowej - Używaj
@RestControllerdo endpointów REST - Konfiguracja przez
application.ymllubapplication.properties - Preferuj zmienne środowiskowe zamiast wartości na sztywno
- Używaj adnotacji
@Tooldla metod udostępnianych przez MCP
Organizacja plików
src/
├── main/
│ ├── java/
│ │ └── com/microsoft/[component]/
│ │ ├── [Component]Application.java
│ │ ├── config/
│ │ ├── controller/
│ │ ├── service/
│ │ └── exception/
│ └── resources/
│ ├── application.yml
│ └── static/
└── test/
└── java/
└── com/microsoft/[component]/Zależności
- Zarządzane przez Maven
pom.xml - Spring AI BOM do zarządzania wersjami
- LangChain4j dla integracji AI
- Spring Boot starter parent dla zależności Spring
Komentarze w kodzie
- Dodawaj JavaDoc do publicznych API
- Zawieraj wyjaśniające komentarze przy złożonych interakcjach AI
- Jasno dokumentuj opisy narzędzi MCP
Budowanie i wdrażanie
Budowanie projektów
Budowanie bez testów:
mvn clean install -DskipTestsBudowanie ze wszystkimi kontrolami:
mvn clean installPakowanie aplikacji:
mvn package
# Tworzy plik JAR w katalogu target/Katalogi wyjściowe
- Skompilowane klasy:
target/classes/ - Klasy testowe:
target/test-classes/ - Pliki JAR:
target/*.jar - Artefakty Maven:
target/
Konfiguracja specyficzna dla środowiska
Deweloperskie:
# 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}Produkcja:
- Używaj tożsamości zarządzanej zamiast
az logindla autoryzacji bezkluczowej - Ustaw
AZURE_OPENAI_ENDPOINTna zasób Foundry produkcji - Zarządzaj konfiguracją przez zmienne środowiskowe lub Azure Key Vault
Uwagi do wdrożenia
- To repozytorium edukacyjne z przykładowymi aplikacjami
- Nie jest przeznaczone do produkcyjnego wdrożenia bez modyfikacji
- Przykłady pokazują wzorce, które można zaadaptować produkcyjnie
- Zobacz README poszczególnych projektów dla konkretnych wskazówek wdrożeniowych
Dodatkowe informacje
Azure AI Foundry
- Autoryzacja bezkluczowa: łącz się za pomocą Microsoft Entra ID — brak konieczności zarządzania kluczami API
- Prowizja jako kod: Bicep + azd (
azd up) tworzą konto i wdrożenia modeli - Ten sam kod kompatybilny z OpenAI działa lokalnie (
az login) i w Azure (tożsamość zarządzana)
Praca z wieloma projektami
Każdy projekt przykładowy jest samodzielny:
# Przejdź do konkretnego projektu
cd 04-PracticalSamples/[project-name]
# Każdy ma własny plik pom.xml i może być budowany niezależnie
mvn clean installTypowe problemy
Niezgodność wersji Javy:
# Zweryfikuj Java 21
java -version
# Zaktualizuj JAVA_HOME w razie potrzeby
export JAVA_HOME=/usr/lib/jvm/msopenjdk-currentProblemy z pobraniem zależności:
# Wyczyść pamięć podręczną Maven i spróbuj ponownie
rm -rf ~/.m2/repository
mvn clean installBrak punktu końcowego lub logowania:
# Ustaw endpoint w bieżącej sesji i zaloguj się (bez klucza)
export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com/"
az login
# Lub użyj pliku .env w katalogu projektu
echo "AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/" > .envPort już zajęty:
# Spring Boot domyślnie używa portu 8080
# Zmiana w application.properties:
server.port=8081Wsparcie wielojęzyczne
- Dokumentacja dostępna w ponad 45 językach dzięki automatycznemu tłumaczeniu
- Tłumaczenia w katalogu
translations/ - Zarządzanie tłumaczeniami przez workflow GitHub Actions
Ścieżka nauki
- Zacznij od 02-SetupDevEnvironment
- Stosuj się do kolejności rozdziałów (01 → 05)
- Wykonaj praktyczne przykłady w każdym rozdziale
- Zbadaj projekty przykładowe w rozdziale 4
- Poznaj praktyki odpowiedzialnej AI w rozdziale 5
Kontener deweloperski
Plik .devcontainer/devcontainer.json konfiguruje:
- Środowisko deweloperskie Java 21
- Preinstalowany Maven
- Rozszerzenia Java do VS Code
- Narzędzia Spring Boot
- Integrację GitHub Copilot
- Obsługę Docker-in-Docker
- Azure CLI
Wskazówki dotyczące wydajności
- Wdrożenia Azure AI Foundry mają limity tokenów/żądań na minutę
- Używaj odpowiednich rozmiarów pakietów w embeddingach
- Rozważ cache’owanie dla powtarzających się wywołań API
- Monitoruj zużycie tokenów w celu optymalizacji kosztów
Uwagi dotyczące bezpieczeństwa
- Nigdy nie commituj plików
.env(są już w.gitignore) - Preferuj autoryzację bezkluczową (Microsoft Entra ID) zamiast kluczy API
- Używaj tożsamości zarządzanych w Azure;
az logindo środowiska lokalnego - Stosuj się do wytycznych odpowiedzialnej AI z rozdziału 5
<!-- CO-OP TRANSLATOR DISCLAIMER START -->Zastrzeżenie: Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Choć dążymy do dokładności, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub niedokładności. Oryginalny dokument w jego języku źródłowym należy uznawać za autorytatywne źródło. W przypadku informacji krytycznych zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.
<!-- 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.

