Skip to content

duphlot/ScheStudy-Hackathon_SummerSchool

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

77 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽ“ Summer School Hackathon - AI Learning Assistant

Mแป™t hแป‡ thแป‘ng trแปฃ lรฝ hแปc tแบญp thรดng minh sแปญ dแปฅng AI ฤ‘แปƒ hแป— trแปฃ sinh viรชn trong viแป‡c quแบฃn lรฝ lแป‹ch hแปc, tรฌm kiแบฟm kiแบฟn thแปฉc vร  gแปญi bรกo cรกo tแปฑ ฤ‘แป™ng.

โœจ Tรญnh nฤƒng chรญnh

๐Ÿค– AI Agent Platform

  • Multi-Agent System: Hแป‡ thแป‘ng ฤ‘a agent chuyรชn biแป‡t cho tแปซng loแบกi nhiแป‡m vแปฅ
  • PydanticAI Integration: Framework hiแป‡n ฤ‘แบกi cho AI agents vแป›i type safety
  • Google Gemini 2.0: LLM mแบกnh mแบฝ vแป›i context window lแป›n vร  khแบฃ nฤƒng reasoning cao
  • Decision Making: Agent phรขn loแบกi tแปฑ ฤ‘แป™ng yรชu cแบงu ngฦฐแปi dรนng

๐Ÿ“… Calendar Management

  • Google Calendar Integration: Tแปฑ ฤ‘แป™ng tแบกo vร  quแบฃn lรฝ lแป‹ch hแปc
  • Smart Scheduling: Lแบญp kแบฟ hoแบกch รดn tแบญp cรก nhรขn hรณa dแปฑa trรชn mรฃ sinh viรชn vร  tแป• hแปฃp mรดn
  • Event Creation: Tแบกo sแปฑ kiแป‡n hแปc tแบญp vแป›i thรดng tin chi tiแบฟt

๐Ÿ” Knowledge Search & FAQ

  • Vector Database: Milvus vector DB cho semantic search
  • Hybrid Search: Kแบฟt hแปฃp semantic search vร  keyword search (BM25)
  • Document Processing: Xแปญ lรฝ vร  index tร i liแป‡u hแปc tแบญp
  • Web Search Integration: Tรฌm kiแบฟm thรดng tin tแปซ web khi cแบงn

๐Ÿ’ฌ Conversational UI

  • Chainlit Interface: Giao diแป‡n chat hiแป‡n ฤ‘แบกi vร  thรขn thiแป‡n
  • Session Management: Quแบฃn lรฝ phiรชn chat ฤ‘a ngฦฐแปi dรนng
  • Memory System: Lฦฐu trแปฏ ngแบฏn hแบกn vแป›i Redis
  • Real-time Updates: Cแบญp nhแบญt conversation theo thแปi gian thแปฑc

๐Ÿ“ง Automated Reporting

  • Email Integration: Gแปญi bรกo cรกo tแปฑ ฤ‘แป™ng qua email
  • Weekly Reports: Bรกo cรกo cuแป‘i tuแบงn vแป tรฌnh hรฌnh hแปc tแบญp
  • Student Progress: Theo dรตi vร  bรกo cรกo tiแบฟn ฤ‘แป™ hแปc tแบญp

๐Ÿ—๏ธ Kiแบฟn trรบc hแป‡ thแป‘ng

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        Frontend Layer                           โ”‚
โ”‚                     (Chainlit Web UI)                          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Agent Orchestration                          โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚  Decision       โ”‚  โ”‚  Calendar       โ”‚  โ”‚  Knowledge      โ”‚ โ”‚
โ”‚  โ”‚  Agent          โ”‚  โ”‚  Agent          โ”‚  โ”‚  Agent          โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     Tool System                                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚  Google         โ”‚  โ”‚  Search Tools   โ”‚  โ”‚  Email Tools    โ”‚ โ”‚
โ”‚  โ”‚  Calendar       โ”‚  โ”‚  (Web, FAQ)     โ”‚  โ”‚  (SMTP)         โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Data Layer                                   โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚  Milvus         โ”‚  โ”‚  Redis Cache    โ”‚  โ”‚  File System    โ”‚ โ”‚
โ”‚  โ”‚  (Vector DB)    โ”‚  โ”‚  (Memory)       โ”‚  โ”‚  (Documents)    โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿš€ Cร i ฤ‘แบทt vร  sแปญ dแปฅng

1. Yรชu cแบงu hแป‡ thแป‘ng

  • Python 3.12+
  • Redis Server
  • Milvus Vector Database
  • Google API credentials

2. Cร i ฤ‘แบทt dependencies

# Clone repository
git clone https://github.com/duphlot/summerschool_hackathon.git
cd summerschool_hackathon

# Cร i ฤ‘แบทt packages
pip install .

3. Cแบฅu hรฌnh mรดi trฦฐแปng

Tแบกo file .env vแป›i cรกc biแบฟn mรดi trฦฐแปng:

# LLM API Keys
GEMINI_API_KEY=your_gemini_api_key

# Vector Database
MILVUS_URI=your_milvus_uri
MILVUS_TOKEN=your_milvus_token

# Email Configuration
SENDER_EMAIL=your_email@gmail.com
SENDER_PASSWORD=your_app_password

# Google Calendar API
GOOGLE_CALENDAR_CREDENTIALS=path_to_credentials.json

# Redis (nแบฟu khรดng dรนng default)
REDIS_HOST=localhost
REDIS_PORT=6379

4. Chแบกy แปฉng dแปฅng

# Chแบกy main application
chainlit run workflow/ScheStudy.py

๐Ÿ“ Cแบฅu trรบc dแปฑ รกn

summerschool_hackathon/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ data/
โ”‚   โ”‚   โ”œโ”€โ”€ cache/           # Redis memory management
โ”‚   โ”‚   โ”œโ”€โ”€ embeddings/      # Text embedding utilities
โ”‚   โ”‚   โ”œโ”€โ”€ milvus/          # Vector database client
โ”‚   โ”‚   โ”œโ”€โ”€ prompts/         # AI prompts cho cรกc agents
โ”‚   โ”‚   โ””โ”€โ”€ mock_data/       # Dแปฏ liแป‡u test vร  demo
โ”‚   โ”œโ”€โ”€ handlers/            # UI vร  error handlers
โ”‚   โ”œโ”€โ”€ llm/                 # LLM wrappers vร  agents
โ”‚   โ”œโ”€โ”€ utils/               # Utilities vร  tools
โ”‚   โ”‚   โ””โ”€โ”€ basetools/       # Custom tools (calendar, email, search)
โ”‚   โ””โ”€โ”€ prompt_engineering/  # Prompt optimization
โ”œโ”€โ”€ workflow/                # Main applications
โ”œโ”€โ”€ config/                  # Configuration files
โ”œโ”€โ”€ docs/                    # Documentation
โ””โ”€โ”€ public/                  # Static assets

๐Ÿ› ๏ธ Cรกc Tools cรณ sแบตn

๐Ÿ“… Calendar Tools

  • create_calendar_event_simple: Tแบกo sแปฑ kiแป‡n Google Calendar
  • read_calendar_events: ฤแปc lแป‹ch trรฌnh hiแป‡n tแบกi
  • safe_agent_run: Safe execution cho calendar operations

๐Ÿ” Search Tools

  • search_web: Tรฌm kiแบฟm thรดng tin trรชn web
  • faq_tool: Tรฌm kiแบฟm trong FAQ database
  • search_in_file_tool: Tรฌm kiแบฟm trong file cแปฅ thแปƒ
  • search_relevant_document_tool: Tรฌm tร i liแป‡u liรชn quan

๐Ÿ“ง Communication Tools

  • send_email_tool: Gแปญi email tแปฑ ฤ‘แป™ng
  • get_latest_test_tool_func: Lแบฅy thรดng tin kแบฟt quแบฃ hแปc tแบญp

๐Ÿงฎ Utility Tools

  • calculator_tool: Mรกy tรญnh cฦก bแบฃn vร  nรขng cao
  • file_reading_tool: ฤแปc vร  xแปญ lรฝ file
  • http_tool: HTTP requests
  • merge_files_tool: Hแปฃp nhแบฅt files

๐Ÿ’ก Vรญ dแปฅ sแปญ dแปฅng

Tแบกo lแป‹ch hแปc

"Mรฃ sแป‘ sinh viรชn cแปงa tรดi lร  20250001, tรดi muแป‘n thi tแป• hแปฃp toรกn, lรฝ, hรณa"

Tรฌm kiแบฟm kiแบฟn thแปฉc

"Giแบฃi thรญch vแป machine learning cho ngฦฐแปi mแป›i bแบฏt ฤ‘แบงu"

Bรกo cรกo tiแบฟn ฤ‘แป™

"Gแปญi bรกo cรกo kแบฟt quแบฃ hแปc tแบญp tuแบงn nร y"

๐Ÿ”ง Customization

Thรชm Agent mแป›i

from llm.base import AgentClient

custom_agent = AgentClient(
    model=model,
    system_prompt="Your custom prompt",
    tools=[your_custom_tools]
).create_agent()

Thรชm Tool mแป›i

def custom_tool(input_data: str) -> str:
    """Your custom tool implementation"""
    return processed_result

Custom UI

@cl.on_chat_start
async def start():
    await cl.Message(content="Custom welcome message").send()

๐Ÿ“Š Performance & Monitoring

  • Memory Management: Redis-based short-term memory vแป›i configurable retention
  • Vector Search: Milvus vแป›i hybrid search optimization
  • Error Handling: Comprehensive error handling and logging
  • Session Management: Multi-user session support

๐Ÿค Contributing

  1. Fork repository
  2. Tแบกo feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Tแบกo Pull Request

๐Ÿ“„ License

Dแปฑ รกn nร y dร nh cho mแปฅc ฤ‘รญch giรกo dแปฅc vร  thแปญ nghiแป‡m.

๐Ÿ‘ฅ Team

Phรกt triแปƒn trong khuรดn khแป• Summer School Hackathon.


Lฦฐu รฝ: ฤรขy lร  mแป™t dแปฑ รกn demo cho hackathon. ฤแปƒ sแปญ dแปฅng trong production, cแบงn bแป• sung thรชm security, monitoring vร  optimization.

About

Multi-agent system for assist students in managing their study schedules, searching for knowledge, and sending automatic reports.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 99.4%
  • CSS 0.6%