Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

دستیار هوشمند آشپزی ایرانی

این پروژه یک دستیار ساده برای پیشنهاد غذاهای ایرانی است. کاربر مواد اولیه موجود را وارد می‌کند و برنامه با استفاده از Gemini API چند غذای مناسب پیشنهاد می‌دهد.

ظاهر سایت با HTML، CSS و JavaScript ساخته شده است و بک‌اند با Python و Flask اجرا می‌شود.

برای ارتباط با Gemini از SDK رسمی زیر استفاده شده است:

google-genai

مدل پروژه:

gemini-2.5-flash

امکانات

  • پیشنهاد غذای ایرانی بر اساس مواد اولیه
  • در نظر گرفتن تعداد نفرات
  • در نظر گرفتن زمان پخت
  • در نظر گرفتن سبک غذا
  • دریافت خروجی ساختاریافته
  • نمایش پاسخ سریع به صورت Streaming
  • شمارش توکن ورودی
  • چت با دستیار آشپزی
  • تحلیل تصویر مواد اولیه
  • بررسی وضعیت اتصال به Gemini API

نصب پروژه

ابتدا وارد پوشه پروژه شوید.

ساخت محیط مجازی:

python -m venv venv

فعال‌سازی محیط مجازی در ویندوز:

venv\Scripts\activate

فعال‌سازی محیط مجازی در Linux و macOS:

source venv/bin/activate

نصب کتابخانه‌ها:

pip install -r requirements.txt

تنظیم کلید API

فایل .env.example را کپی کنید و نام فایل جدید را .env بگذارید.

محتوای فایل .env:

GOOGLE_API_KEY=your_api_key_here
PORT=3001

به جای your_api_key_here کلید واقعی Gemini API را قرار دهید.

اجرای پروژه

python app.py

سپس آدرس زیر را در مرورگر باز کنید:

http://localhost:3001

مسیرهای بک‌اند

روش مسیر کاربرد
GET /api/health بررسی اتصال به Gemini API
POST /api/count-tokens شمارش توکن ورودی
POST /api/recipes دریافت پیشنهاد کامل غذا
POST /api/recipes/stream دریافت پاسخ سریع
POST /api/chat چت با دستیار آشپزی
POST /api/image-recipes تحلیل تصویر مواد اولیه

ساختار پوشه پروژه

gemini-recipe-assistant/
├── app.py
├── requirements.txt
├── README.md
├── .env
├── .env.example
├── .gitignore
├── 01_original_notebook.ipynb
└── public/
    ├── index.html
    ├── style.css
    ├── app.js
    └── iranian-table.png

ارتباط با Gemini

ساخت Client مانند Notebook اصلی انجام می‌شود:

from google import genai

client = genai.Client()

نمونه تولید پاسخ:

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="متن درخواست",
)

در پروژه از قابلیت‌های زیر استفاده شده است:

  • generate_content
  • generate_content_stream
  • count_tokens
  • chats.create
  • Part.from_bytes
  • GenerateContentConfig
  • ThinkingConfig
  • Structured Output با Pydantic
  • usage_metadata

نکات امنیتی

  • کلید واقعی API را داخل کد قرار ندهید.
  • کلید واقعی را داخل .env.example قرار ندهید.
  • فایل .env را در Git ثبت نکنید.
  • در صورت افشای کلید، آن را غیرفعال کنید و کلید جدید بسازید.

About

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages