AutoGen - Multi Agent Fastapi
Azure OpenAIμ AutoGenμ νμ©ν μ§λ₯ν λ©ν° μμ΄μ νΈ μμ€ν μ λλ€. μ΄ νλ‘μ νΈλ Azure AI Avatarμ ν΅ν©λμ΄ μ€μκ° μμ± λνμ ν μ€νΈ μλ΅μ λμμ μ 곡νλ νμ μ μΈ AI μ±ν μμ€ν μ ꡬνν©λλ€.
- λ©ν° μμ΄μ νΈ νμ : κ³ν μμ΄μ νΈ, κΈ°μ μκ°, μ€ν¬λ¦½νΈ μκ°κ° νλ ₯νμ¬ μ΅μ νλ μλ΅ μμ±
- Azure AI Avatar ν΅ν©: μ€μκ° μμ± ν©μ±κ³Ό μλ°ν μ λλ©μ΄μ
- μ€μκ° WebSocket ν΅μ : λΉ λ₯Έ μλ΅κ³Ό μνν μ¬μ©μ κ²½ν
- Azure Search ν΅ν©: λ²‘ν° λ°μ΄ν°λ² μ΄μ€λ₯Ό νμ©ν μ νν μ 보 κ²μ
- μ΄μ€ μλ΅ μμ€ν : μμΈν ν μ€νΈ μλ΅κ³Ό μλ°νμ© μμ½ μ€ν¬λ¦½νΈ λμ μ 곡
μ¬μ©μ μ§λ¬Έ
β
Planning Agent (κ³ν μ립)
β
Technical Writer (μμΈ μλ΅ μμ±)
β
Script Writer (μλ°νμ© μ€ν¬λ¦½νΈ μμ±)
β
Azure AI Avatar (μμ± μΆλ ₯)
- Backend: FastAPI, Python 3.8+
- AI Framework: AutoGen, Azure OpenAI
- μ€μκ° ν΅μ : WebSocket
- μμ±/μλ°ν: Azure Speech Service, Azure AI Avatar
- κ²μ: Azure Cognitive Search
- Frontend: HTML5, CSS3, JavaScript
- λ°°ν¬: Gunicorn, Uvicorn
git clone https://github.com/your-username/autogen-multi-agent.git
cd autogen-multi-agent
python -m venv venv
source venv/bin/activate # Linux/Mac
# λλ
venv\Scripts\activate # Windows
pip install -r requirements.txt
.env
νμΌμ μμ±νκ³ λ€μ μ 보λ₯Ό μ
λ ₯νμΈμ:
# Azure OpenAI μ€μ
AZURE_OPENAI_API_KEY=your_api_key
AZURE_OPENAI_MODEL=your_model_name
AZURE_OPENAI_API_VERSION=2024-02-15-preview
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
# Azure Speech Service μ€μ
SPEECH_KEY=your_speech_key
SPEECH_REGION=your_region
# Azure Search μ€μ (Autogen_Chat_data.pyμμ μ¬μ©)
AZURE_SEARCH_ENDPOINT=your_search_endpoint
AZURE_SEARCH_API_KEY=your_search_key
AZURE_SEARCH_INDEX=your_index_name
python app.py
gunicorn app:app --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:3100
μ ν리μΌμ΄μ
μ΄ μ€νλλ©΄ http://localhost:8000
(κ°λ°) λλ http://localhost:3100
(νλ‘λμ
)μμ μ μν μ μμ΅λλ€.
autogen-multi-agent/
βββ app.py # λ©μΈ FastAPI μ ν리μΌμ΄μ
βββ Autogen_Chat_data.py # Azure Search ν΅ν© λ²μ
βββ requirements.txt # Python μ’
μμ±
βββ templates/
β βββ index.html # μΉ μΈν°νμ΄μ€
βββ static/
β βββ css/
β β βββ styles.css # μ€νμΌμνΈ
β βββ js/
β βββ script.js # ν΄λΌμ΄μΈνΈ JavaScript
βββ README.md # νλ‘μ νΈ λ¬Έμ
- 볡μ‘ν μμ μ νμ μμ μΌλ‘ λΆν΄
- λ€λ₯Έ μμ΄μ νΈλ€μκ² μμ ν λΉ
- νμ§ μ²΄ν¬λ¦¬μ€νΈ κΈ°λ° κ²μ¦
- Azure AI λ° κΈ°κ³νμ΅ κ΄λ ¨ μ λ¬Έ μ 보 μ 곡
- μμΈνκ³ κΈ°μ μ μΈ μλ΅ μμ±
- μ½λ μμ λ° μ€μ©μ κ°μ΄λ ν¬ν¨
- μλ°νκ° λ§νκΈ° νΈν ννλ‘ λ΄μ© μμ½
- Markdown λ¬Έλ² μ κ±° λ° μμ°μ€λ¬μ΄ λν체 λ³ν
- 100μ λ΄μΈμ κ°κ²°ν μ€ν¬λ¦½νΈ μμ±
- μΊλ¦ν°: Meg
- μ€νμΌ: Business
- λ°°κ²½μ: #FFFFFFFF
- μμ±: ko-KR-SunHiNeural
- μ΅λ ν΄ μ: 10
- μ’ λ£ μ‘°κ±΄: "TERMINATE" ν€μλ λλ μ΅λ λ©μμ§ μ λλ¬
GET /
: λ©μΈ μΉ μΈν°νμ΄μ€GET /health
: μλ² μν νμΈWebSocket /api/ws
: μ€μκ° μ±ν ν΅μ
- μΉ λΈλΌμ°μ μμ μ ν리μΌμ΄μ μ μ μ
- "μλ°ν μΈμ μμ" λ²νΌ ν΄λ¦
- μ§λ¬Έμ μ λ ₯νκ³ μ μ‘
- ν μ€νΈ μλ΅κ³Ό μλ°ν μμ± μλ΅μ λμμ νμΈ
- Azure μλΉμ€ ν€κ° μ¬λ°λ₯΄κ² μ€μ λμλμ§ νμΈνμΈμ
- WebRTCλ₯Ό μ§μνλ μ΅μ λΈλΌμ°μ λ₯Ό μ¬μ©νμΈμ
- HTTPS νκ²½μμ μλ°ν κΈ°λ₯μ΄ μ΅μ μΌλ‘ μλν©λλ€
- μ΄ μ μ₯μλ₯Ό ν¬ν¬νμΈμ
- μλ‘μ΄ κΈ°λ₯ λΈλμΉλ₯Ό μμ±νμΈμ (
git checkout -b feature/AmazingFeature
) - λ³κ²½μ¬νμ 컀λ°νμΈμ (
git commit -m 'Add some AmazingFeature'
) - λΈλμΉμ νΈμνμΈμ (
git push origin feature/AmazingFeature
) - Pull Requestλ₯Ό μμ±νμΈμ
μ΄ νλ‘μ νΈλ MIT λΌμ΄μ μ€ νμ λ°°ν¬λ©λλ€. μμΈν λ΄μ©μ LICENSE
νμΌμ μ°Έμ‘°νμΈμ.
λ¬Έμ κ° λ°μνκ±°λ μ§λ¬Έμ΄ μμΌμλ©΄ Issuesμ λ±λ‘ν΄μ£ΌμΈμ.
- v1.0.0: μ΄κΈ° 릴리μ¦
- λ©ν° μμ΄μ νΈ μμ€ν ꡬν
- Azure AI Avatar ν΅ν©
- WebSocket μ€μκ° ν΅μ