Generative-AI-for-beginners-java / fa
AGENTS.md557 starsChanged 5 months agoMITView on GitHub
این یک مخزن آموزشی برای یادگیری توسعه هوش مصنوعی مولد با جاوا است. این دوره جامع عملی شامل مدلهای زبانی بزرگ (LLMs)، مهندسی پرامپت، جاسازیها، RAG (تولید با بازیابی تقویتشده) و پروتکل متن مدل (MCP) است. تکنولوژیهای کلیدی: - جاوا ۲۱ - Spring Boot نسخه ۳.۵.x - Spring AI نسخه ۱.۱.x - Maven - LangChain4j - Azure AI Foundry، Azure OpenAI و SDKهای OpenAI معماری: - چندین برنامه مستقل Spring Boot سازماندهی شده بر اساس فصلها - پروژههای نمونه که…
- 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/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/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
Files
AGENTS.md
مرور پروژه
این یک مخزن آموزشی برای یادگیری توسعه هوش مصنوعی مولد با جاوا است. این دوره جامع عملی شامل مدلهای زبانی بزرگ (LLMs)، مهندسی پرامپت، جاسازیها، RAG (تولید با بازیابی تقویتشده) و پروتکل متن مدل (MCP) است.
تکنولوژیهای کلیدی:
- جاوا ۲۱
- Spring Boot نسخه ۳.۵.x
- Spring AI نسخه ۱.۱.x
- Maven
- LangChain4j
- Azure AI Foundry، Azure OpenAI و SDKهای OpenAI
معماری:
- چندین برنامه مستقل Spring Boot سازماندهی شده بر اساس فصلها
- پروژههای نمونه که الگوهای مختلف AI را نشان میدهند
- آماده GitHub Codespaces با کانتینرهای توسعه از پیش پیکربندی شده
دستورات راهاندازی
پیشنیازها
- جاوا ۲۱ یا بالاتر
- Maven نسخه ۳.x
- اشتراک Azure با استقرار مدل Azure AI Foundry (با
azd upتهیه شده) - Azure CLI (
az) و Azure Developer CLI (azd)، وارد شده برای احراز هویت بدون کلید
تنظیم محیط
گزینه ۱: GitHub Codespaces (توصیه شده)
# فورک مخزن و ایجاد یک محیط کد از طریق رابط گیتهاب
# کانتینر توسعه به صورت خودکار تمام وابستگیها را نصب میکند
# حدود ۲ دقیقه برای راهاندازی محیط صبر کنیدگزینه ۲: کانتینر توسعه محلی
# کلون مخزن
git clone https://github.com/microsoft/Generative-AI-for-beginners-java.git
cd Generative-AI-for-beginners-java
# باز کردن در VS Code با افزونه Dev Containers
# باز کردن مجدد در کانتینر هنگام درخواستگزینه ۳: راهاندازی محلی
# نصب وابستگیها
sudo apt-get update
sudo apt-get install -y maven openjdk-21-jdk
# بررسی صحت نصب
java -version
mvn -versionپیکربندی
تنظیم Azure AI Foundry (بدون کلید، توصیه شده):
# تامین حساب Foundry و استقرار مدلها به صورت کد
cd 02-SetupDevEnvironment
azd auth login
az login
azd up
# azd فایل examples/basic-chat-azure/.env را با نقطه انتهایی شما (بدون کلید) مینویسدپیکربندی دستی نقطه انتهایی:
# اگر از azd استفاده نکردید، نقطه پایان را خودتان تنظیم کنید (توکن ورود از طریق az login بدون کلید باقی میماند)
cd 02-SetupDevEnvironment/examples/basic-chat-azure
cp .env.example .env
# فایل .env را ویرایش کنید: AZURE_OPENAI_ENDPOINT=https://<resource>.openai.azure.com/جریان توسعه
ساختار پروژه
/
├── 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 supportاجرای برنامهها
اجرای یک برنامه Spring Boot:
cd [project-directory]
mvn spring-boot:runساخت پروژه:
cd [project-directory]
mvn clean installراهاندازی سرور محاسبهگر MCP:
cd 04-PracticalSamples/calculator
mvn spring-boot:run
# سرور روی http://localhost:8080 اجرا میشوداجرای نمونههای مشتری:
# پس از راهاندازی سرور در ترمینال دیگر
cd 04-PracticalSamples/calculator
# کلاینت مستقیم MCP
mvn exec:java -Dexec.mainClass="com.microsoft.mcp.sample.client.SDKClient"
# کلاینت مجهز به هوش مصنوعی (نیازمند AZURE_OPENAI_ENDPOINT و ورود az)
mvn exec:java -Dexec.mainClass="com.microsoft.mcp.sample.client.LangChain4jClient"
# ربات تعاملی
mvn exec:java -Dexec.mainClass="com.microsoft.mcp.sample.client.Bot"بارگذاری مجدد داغ
ابزار Spring Boot DevTools در پروژههایی که از بارگذاری مجدد داغ پشتیبانی میکنند، گنجانده شده است:
# تغییرات در فایلهای جاوا هنگام ذخیره بهطور خودکار بارگذاری مجدد میشوند
mvn spring-boot:runدستورالعملهای آزمون
اجرای تستها
اجرای همه تستها در یک پروژه:
cd [project-directory]
mvn testاجرای تستها با خروجی مفصل:
mvn test -Xاجرای کلاس تست خاص:
mvn test -Dtest=CalculatorServiceTestساختار تست
- فایلهای تست از JUnit 5 (Jupiter) استفاده میکنند
- کلاسهای تست در مسیر
src/test/java/قرار دارند - نمونههای مشتری در پروژه محاسبهگر در مسیر
src/test/java/com/microsoft/mcp/sample/client/هستند
تست دستی
بسیاری از نمونهها برنامههای تعاملی هستند که نیاز به تست دستی دارند:
- برنامه را با دستور
mvn spring-boot:runاجرا کنید - نقاط انتهایی را آزمایش کرده یا با CLI تعامل کنید
- مطمئن شوید رفتار مورد انتظار با مستندات README.md هر پروژه مطابقت دارد
تست با Azure AI Foundry
- قبل از اجرای نمونهها با
az loginوارد شوید (احراز هویت بدون کلید) - مطمئن شوید حساب شما نقش Cognitive Services OpenAI User را روی منبع دارد
- فیلتر کردن محتوا را با مثال مسئولانه AI در فصل ۵ آزمایش کنید
راهنمای سبک کد
قراردادهای جاوا
- نسخه جاوا: جاوا ۲۱ با ویژگیهای مدرن
- سبک: پیروی از قراردادهای استاندارد جاوا
- نامگذاری:
- کلاسها: PascalCase
- متدها/متغیرها: camelCase
- ثابتها: UPPER_SNAKE_CASE
- نام بستهها: حروف کوچک
الگوهای Spring Boot
- استفاده از
@Serviceبرای منطق کسبوکار - استفاده از
@RestControllerبرای نقاط انتهایی REST - پیکربندی از طریق
application.ymlیاapplication.properties - ترجیح متغیرهای محیطی بر مقادیر سختکد شده
- استفاده از annotation
@Toolبرای متدهای نمایانشده توسط MCP
سازماندهی فایلها
src/
├── main/
│ ├── java/
│ │ └── com/microsoft/[component]/
│ │ ├── [Component]Application.java
│ │ ├── config/
│ │ ├── controller/
│ │ ├── service/
│ │ └── exception/
│ └── resources/
│ ├── application.yml
│ └── static/
└── test/
└── java/
└── com/microsoft/[component]/وابستگیها
- مدیریتشده از طریق Maven
pom.xml - Spring AI BOM برای مدیریت نسخهها
- LangChain4j برای ادغامهای AI
- والد استارتر Spring Boot برای وابستگیهای Spring
توضیحات کد
- اضافه کردن JavaDoc برای APIهای عمومی
- شامل کامنتهای توضیحی برای تعاملات پیچیده AI
- مستندسازی واضح توصیف ابزارهای MCP
ساخت و استقرار
ساخت پروژهها
ساخت بدون تست:
mvn clean install -DskipTestsساخت با همه بررسیها:
mvn clean installبستهبندی برنامه:
mvn package
# ایجاد JAR در دایرکتوری target/دایرکتوریهای خروجی
- کلاسهای کامپایل شده:
target/classes/ - کلاسهای تست:
target/test-classes/ - فایلهای JAR:
target/*.jar - آرشیوهای Maven:
target/
پیکربندی مختص محیط
توسعه:
# 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}تولید:
- استفاده از یک هویت مدیریت شده به جای
az loginبرای احراز هویت بدون کلید - اشاره
AZURE_OPENAI_ENDPOINTبه منبع تولید Foundry شما - مدیریت پیکربندی از طریق متغیرهای محیطی یا Azure Key Vault
ملاحظات استقرار
- این یک مخزن آموزشی با برنامههای نمونه است
- برای استقرار به صورت مستقیم در تولید طراحی نشده است
- نمونهها الگوهایی را برای تطبیق در استفاده تولیدی نشان میدهند
- نکات استقرار خاص را در READMEهای پروژههای جداگانه ببینید
یادداشتهای اضافی
Azure AI Foundry
- احراز هویت بدون کلید: اتصال با Microsoft Entra ID — بدون کلید API برای مدیریت
- تأمین به صورت کد: Bicep + azd (
azd up) حساب و استقرارهای مدل را ایجاد میکنند - همان کد سازگار با OpenAI هم به صورت محلی (
az login) و هم در Azure (هویت مدیریت شده) اجرا میشود
کار با چند پروژه
هر پروژه نمونه به صورت مستقل است:
# به پروژه خاصی بروید
cd 04-PracticalSamples/[project-name]
# هر کدام فایل pom.xml مخصوص به خود را دارند و میتوانند به طور مستقل ساخته شوند
mvn clean installمشکلات رایج
اختلاف نسخه جاوا:
# تأیید جاوا ۲۱
java -version
# در صورت نیاز، JAVA_HOME را بهروزرسانی کنید
export JAVA_HOME=/usr/lib/jvm/msopenjdk-currentمشکلات دانلود وابستگی:
# پاک کردن کش Maven و تلاش مجدد
rm -rf ~/.m2/repository
mvn clean installنقطه انتهایی یا ورود یافت نشد:
# نقطه انتهایی را در جلسه جاری تنظیم کنید و وارد شوید (بدون کلید)
export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com/"
az login
# یا از یک فایل .env در دایرکتوری پروژه استفاده کنید
echo "AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/" > .envپورت قبلاً در استفاده است:
# اسپرینگ بوت به طور پیشفرض از پورت ۸۰۸۰ استفاده میکند
# تغییر در application.properties:
server.port=8081پشتیبانی چندزبانه
- مستندات به بیش از ۴۵ زبان با ترجمه خودکار در دسترس است
- ترجمهها در پوشه
translations/ - ترجمه توسط گردش کاری GitHub Actions مدیریت میشود
مسیر یادگیری
- با 02-SetupDevEnvironment شروع کنید
- فصلها را به ترتیب دنبال کنید (۰۱ → ۰۵)
- نمونههای عملی در هر فصل را به پایان برسانید
- پروژههای نمونه در فصل ۴ را کاوش کنید
- تمرین هوش مصنوعی مسئولانه را در فصل ۵ بیاموزید
کانتینر توسعه
فایل .devcontainer/devcontainer.json شامل:
- محیط توسعه جاوا ۲۱
- Maven از پیش نصب شده
- افزونههای Java برای VS Code
- ابزارهای Spring Boot
- یکپارچهسازی GitHub Copilot
- پشتیبانی از Docker-in-Docker
- Azure CLI
ملاحظات عملکرد
- استقرارهای Azure AI Foundry محدودیتهای تعداد توکن/درخواست دقیقهای دارند
- از اندازه دسته مناسب برای جاسازیها استفاده کنید
- برای فراخوانیهای مکرر API کش را مد نظر قرار دهید
- مصرف توکن را برای بهینهسازی هزینه زیر نظر بگیرید
نکات امنیتی
- هرگز فایلهای
.envرا کامیت نکنید (در.gitignoreقرار دارند) - احراز هویت بدون کلید (Microsoft Entra ID) را به جای کلیدهای API ترجیح دهید
- در Azure از هویتهای مدیریت شده استفاده کنید؛ برای توسعه محلی از
az login - دستورالعملهای هوش مصنوعی مسئولانه را در فصل ۵ دنبال کنید
<!-- CO-OP TRANSLATOR DISCLAIMER START -->سلب مسئولیت: این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیهایی باشند. سند اصلی به زبان مادری خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما در قبال هرگونه سوء تفاهم یا برداشت نادرست ناشی از استفاده از این ترجمه مسئولیتی نداریم.
<!-- 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.

