Skip to content

wayde1122/chat_box_code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

30 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

AI Agent Hub ๐Ÿค–

ไธ€ไธชๅคš AI Agent ๆ™บ่ƒฝๅŠฉๆ‰‹ๅนณๅฐ๏ผŒ้‡‡็”จ Next.js 14 ๆž„ๅปบใ€‚็›ฎๅ‰ๅทฒไธŠ็บฟไธ‰ๅคงๆ™บ่ƒฝๅŠฉๆ‰‹๏ผš

  • ๐Ÿ›ซ ๆ™บ่ƒฝๆ—…่กŒๅŠฉๆ‰‹ - ๆŸฅ่ฏขๅคฉๆฐ”ใ€ๆŽจ่ๆ™ฏ็‚น๏ผŒไธบๆ‚จ็š„ๆ—…่กŒๆไพ›ๆ™บ่ƒฝ่ง„ๅˆ’
  • ๐Ÿ”ฌ ๆทฑๅบฆ็ ”็ฉถๅŠฉๆ‰‹ - ่‡ชๅŠจๅˆ†่งฃ็ ”็ฉถไปปๅŠกใ€ๆœ็ดข่ต„ๆ–™ใ€็”Ÿๆˆ็ป“ๆž„ๅŒ–็ ”็ฉถๆŠฅๅ‘Š
  • ๐Ÿ“ฐ ๆฏๆ—ฅ็ƒญ็‚นๅŠฉๆ‰‹ - ่šๅˆ Google News ็ƒญ็‚นๆ–ฐ้—ป๏ผŒAI ๆ™บ่ƒฝ็ญ›้€‰็”Ÿๆˆๆ—ฅๆŠฅ

โœจ ๅŠŸ่ƒฝ็‰นๆ€ง

๐Ÿ  ้ฆ–้กต - Agent Hub

  • Agent ๅฑ•็คบๅนณๅฐ - ้›†ไธญๅฑ•็คบๆ‰€ๆœ‰ๅฏ็”จ็š„ AI ๅŠฉๆ‰‹
  • ็ฒพ็พŽๅก็‰‡่ฎพ่ฎก - ๆธๅ˜ๅŠจ็”ปใ€ๅ“ๅบ”ๅผๅธƒๅฑ€
  • ็Šถๆ€ๅŒบๅˆ† - ๅฏ็”จ Agent ไธŽๆ•ฌ่ฏทๆœŸๅพ… Agent ๅˆ†ๅŒบๅฑ•็คบ

๐Ÿ›ซ ๆ™บ่ƒฝๆ—…่กŒๅŠฉๆ‰‹ ๐Ÿ“– ่ฏฆ็ป†ๆ–‡ๆกฃ

  • ๐Ÿ—“๏ธ ๆ™บ่ƒฝ่กŒ็จ‹่ง„ๅˆ’ - ๆ นๆฎ็›ฎ็š„ๅœฐใ€ๆ—ฅๆœŸใ€ๅๅฅฝ่‡ชๅŠจ็”ŸๆˆๅฎŒๆ•ด่กŒ็จ‹
  • ๐Ÿ—บ๏ธ ๅœฐๅ›พๅฏ่ง†ๅŒ– - ้ซ˜ๅพทๅœฐๅ›พๆ ‡ๆณจๆ™ฏ็‚นไฝ็ฝฎ๏ผŒ็›ด่ง‚ๅฑ•็คบ่กŒ็จ‹
  • ๐Ÿ’ฐ ้ข„็ฎ—่ฎก็ฎ— - ่‡ชๅŠจ่ฎก็ฎ—้—จ็ฅจใ€้…’ๅบ—ใ€้ค้ฅฎใ€ไบค้€š่ดน็”จ
  • โœ๏ธ ่กŒ็จ‹็ผ–่พ‘ - ๆ”ฏๆŒๆทปๅŠ ใ€ๅˆ ้™คใ€่ฐƒๆ•ดๆ™ฏ็‚น
  • ๐Ÿ“ค ๅฏผๅ‡บๅŠŸ่ƒฝ - ๅฏผๅ‡บไธบ PDF ๆˆ–ๅ›พ็‰‡๏ผŒๆ–นไพฟไฟๅญ˜ๅˆ†ไบซ
  • ๐Ÿค– ๅคš Agent ๅไฝœ - 4 ไธชไธ“ไธš Agent ๅนถ่กŒๅทฅไฝœ๏ผŒๆ™บ่ƒฝ่ง„ๅˆ’

๐Ÿ”ฌ ๆทฑๅบฆ็ ”็ฉถๅŠฉๆ‰‹ ๐Ÿ“– ่ฏฆ็ป†ๆ–‡ๆกฃ

  • ๐ŸŽฏ ้—ฎ้ข˜ๅ‰–ๆž - ๅฐ†ๅผ€ๆ”พไธป้ข˜ๆ‹†่งฃไธบ 3-5 ไธชๅฏๆฃ€็ดข็š„ๅญไปปๅŠก
  • ๐Ÿ” ๅคš่ฝฎไฟกๆฏ้‡‡้›† - ๆ”ฏๆŒ Tavilyใ€DuckDuckGoใ€Serperใ€Bing ๅคš็งๆœ็ดขๅผ•ๆ“Ž
  • ๐Ÿ“Š ๅๆ€ไธŽๆ€ป็ป“ - ๅฏนๆฏไธชๅญไปปๅŠก็š„ๆœ็ดข็ป“ๆžœ่ฟ›่กŒ็ป“ๆž„ๅŒ–ๆ€ป็ป“
  • ๐Ÿ“ ๆŠฅๅ‘Š็”Ÿๆˆ - ๆ•ดๅˆๆ‰€ๆœ‰ๅญไปปๅŠก็š„ๆ€ป็ป“๏ผŒ็”ŸๆˆๅฎŒๆ•ด็š„็ ”็ฉถๆŠฅๅ‘Š
  • ๐Ÿค– ไธ‰ Agent ๅไฝœ - TodoPlanner + TaskSummarizer + ReportWriter

๐Ÿ”ฎ ๅณๅฐ†ๆŽจๅ‡บ

  • ไปฃ็ ๅŠฉๆ‰‹ - ๆ™บ่ƒฝ็ผ–็จ‹ๅŠฉๆ‰‹๏ผŒๅธฎๆ‚จ่งฃๅ†ณๅผ€ๅ‘้šพ้ข˜
  • ๅ†™ไฝœๅŠฉๆ‰‹ - AI ๅ†™ไฝœไผ™ไผด๏ผŒๆฟ€ๅ‘ๆ‚จ็š„ๅˆ›ไฝœ็ตๆ„Ÿ
  • ๆ•ฐๆฎๅˆ†ๆžๅŠฉๆ‰‹ - ๆ™บ่ƒฝๅˆ†ๆžๆ•ฐๆฎ๏ผŒๆดžๅฏŸไธšๅŠก่ถ‹ๅŠฟ

๐Ÿ› ๏ธ ๆŠ€ๆœฏๆ ˆ

็ฑปๅˆซ ๆŠ€ๆœฏ
ๅ‰็ซฏๆก†ๆžถ Next.js 14 + React 18 + TypeScript
UI ็ป„ไปถ Tailwind CSS + Shadcn UI + Lucide Icons
AI ๆจกๅž‹ DeepSeek-V3.2 (้€š่ฟ‡ ModelScope API)
ๅคฉๆฐ” API ้ซ˜ๅพท MCP (ๅคฉๆฐ”ๆœๅŠก)
ๅœฐๅ›พๆœๅŠก ้ซ˜ๅพทๅœฐๅ›พ JS API
ๆœ็ดข API Tavily / DuckDuckGo / Serper / Bing
ๅ›พ็‰‡ API Unsplash / Pexels

๐Ÿ—บ๏ธ ่ทฏ็”ฑ็ป“ๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        ๅ‰็ซฏ่ทฏ็”ฑ                              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                             โ”‚
โ”‚   /                    โ”€โ”€โ†’  ้ฆ–้กต (Agent Hub)                โ”‚
โ”‚   โ”‚                         ๅฑ•็คบๆ‰€ๆœ‰ Agent ๅˆ—่กจ              โ”‚
โ”‚   โ”‚                                                         โ”‚
โ”‚   โ”œโ”€โ”€ /travel          โ”€โ”€โ†’  ๆ™บ่ƒฝๆ—…่กŒๅŠฉๆ‰‹                     โ”‚
โ”‚   โ”‚                         ่กŒ็จ‹่ง„ๅˆ’ + ๅœฐๅ›พๅฏ่ง†ๅŒ–             โ”‚
โ”‚   โ”‚                                                         โ”‚
โ”‚   โ””โ”€โ”€ /research        โ”€โ”€โ†’  ๆทฑๅบฆ็ ”็ฉถๅŠฉๆ‰‹                     โ”‚
โ”‚                             ไปปๅŠกๅˆ†่งฃ + ๆŠฅๅ‘Š็”Ÿๆˆ              โ”‚
โ”‚                                                             โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                        ๅŽ็ซฏ API                              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                             โ”‚
โ”‚   /api/chat            โ”€โ”€โ†’  ่ŠๅคฉๆŽฅๅฃ (POST)                  โ”‚
โ”‚                             ๆ”ฏๆŒ FAQ ๅŒน้… / Agent ๆจกๅผ        โ”‚
โ”‚                                                             โ”‚
โ”‚   /api/faq             โ”€โ”€โ†’  FAQ ๆ•ฐๆฎๆŽฅๅฃ (GET)               โ”‚
โ”‚                             ่ฟ”ๅ›ž FAQ ๅˆ—่กจ                    โ”‚
โ”‚                                                             โ”‚
โ”‚   /api/travel/plan     โ”€โ”€โ†’  ๆ—…่กŒ่ฎกๅˆ’ๆŽฅๅฃ (POST)              โ”‚
โ”‚                             ็”ŸๆˆๅฎŒๆ•ดๆ—…่กŒ่ฎกๅˆ’                  โ”‚
โ”‚                                                             โ”‚
โ”‚   /api/travel/images   โ”€โ”€โ†’  ๆ™ฏ็‚นๅ›พ็‰‡ๆŽฅๅฃ (POST)              โ”‚
โ”‚                             ๆ‰น้‡่Žทๅ–ๆ™ฏ็‚นๅ›พ็‰‡                  โ”‚
โ”‚                                                             โ”‚
โ”‚   /api/research/stream โ”€โ”€โ†’  ็ ”็ฉถๆตๆŽฅๅฃ (POST/GET)            โ”‚
โ”‚                             SSE ๆตๅผ่ฟ”ๅ›ž็ ”็ฉถ่ฟ›ๅบฆ              โ”‚
โ”‚                                                             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

้กต้ข่ฏดๆ˜Ž

่ทฏ็”ฑ ้กต้ข ่ฏดๆ˜Ž
/ ้ฆ–้กต Agent Hub - ๅฑ•็คบๆ‰€ๆœ‰ AI ๅŠฉๆ‰‹ๅก็‰‡
/travel ๆ™บ่ƒฝๆ—…่กŒๅŠฉๆ‰‹ ่กŒ็จ‹่ง„ๅˆ’ใ€ๅœฐๅ›พๅฏ่ง†ๅŒ–ใ€้ข„็ฎ—่ฎก็ฎ—ใ€ๅฏผๅ‡บๅŠŸ่ƒฝ
/research ๆทฑๅบฆ็ ”็ฉถๅŠฉๆ‰‹ ไปปๅŠกๅˆ†่งฃใ€ๆœ็ดข่ต„ๆ–™ใ€็”Ÿๆˆ็ ”็ฉถๆŠฅๅ‘Š

API ๆŽฅๅฃ

ๆŽฅๅฃ ๆ–นๆณ• ่ฏดๆ˜Ž
/api/chat POST ่Šๅคฉๅฏน่ฏๆŽฅๅฃ
/api/faq GET ่Žทๅ– FAQ ๆ•ฐๆฎ
/api/travel/plan POST ็”Ÿๆˆๆ—…่กŒ่ฎกๅˆ’
/api/travel/images POST ๆ‰น้‡่Žทๅ–ๆ™ฏ็‚นๅ›พ็‰‡
/api/research/stream POST/GET ็ ”็ฉถๆตๆŽฅๅฃ๏ผˆSSE ๆตๅผ๏ผ‰

๐Ÿ”Œ API ่ฏฆ็ป†่ฏดๆ˜Ž

POST /api/chat

่Šๅคฉๅฏน่ฏๆŽฅๅฃ๏ผŒๆ”ฏๆŒๅคš็งๆจกๅผใ€‚

่ฏทๆฑ‚ๅ‚ๆ•ฐ๏ผš

interface ChatRequestBody {
  question: string; // ็”จๆˆท้—ฎ้ข˜
  model?: string; // ๆจกๅž‹็ฑปๅž‹๏ผŒ้ป˜่ฎค "travel-agent"
}

ๆจกๅž‹็ฑปๅž‹๏ผš

model ่ฏดๆ˜Ž
travel-agent ๆ™บ่ƒฝๆ—…่กŒๅŠฉๆ‰‹ Agent๏ผˆ้ป˜่ฎค๏ผ‰
faq-matcher FAQ ๅ…ณ้”ฎ่ฏๅŒน้…ๆจกๅผ

ๅ“ๅบ”ๆ ผๅผ๏ผš

interface ChatResponse {
  model: string; // ไฝฟ็”จ็š„ๆจกๅž‹
  question: string; // ๅŽŸๅง‹้—ฎ้ข˜
  answer: string; // AI ๅ›ž็ญ”
  steps?: AgentStep[]; // Agent ๆ€่€ƒๆญฅ้ชค๏ผˆไป… Agent ๆจกๅผ๏ผ‰
  usedTools?: string[]; // ไฝฟ็”จ็š„ๅทฅๅ…ทๅˆ—่กจ๏ผˆไป… Agent ๆจกๅผ๏ผ‰
}

POST /api/travel/plan

็”Ÿๆˆๆ—…่กŒ่ฎกๅˆ’ใ€‚

่ฏทๆฑ‚ๅ‚ๆ•ฐ๏ผš

interface TravelRequest {
  destination: string; // ็›ฎ็š„ๅœฐ
  startDate: string; // ๅ‡บๅ‘ๆ—ฅๆœŸ "2024-01-15"
  endDate: string; // ่ฟ”ๅ›žๆ—ฅๆœŸ "2024-01-18"
  travelers: number; // ๅ‡บ่กŒไบบๆ•ฐ
  preferences: string[]; // ๅๅฅฝๅˆ—่กจ
  budget: "economy" | "moderate" | "luxury"; // ้ข„็ฎ—็บงๅˆซ
}

POST /api/research/stream

ๅผ€ๅง‹็ ”็ฉถๅนถ้€š่ฟ‡ SSE ๆตๅผ่ฟ”ๅ›ž่ฟ›ๅบฆๅ’Œ็ป“ๆžœใ€‚

่ฏทๆฑ‚ๅ‚ๆ•ฐ๏ผš

interface ResearchRequest {
  topic: string; // ็ ”็ฉถไธป้ข˜
  searchBackend?: string; // ๆœ็ดขๅผ•ๆ“Ž (tavily/duckduckgo/serper/bing)
}

SSE ไบ‹ไปถ็ฑปๅž‹๏ผš

ไบ‹ไปถ ่ฏดๆ˜Ž ๆ•ฐๆฎ
plan ่ง„ๅˆ’ๅฎŒๆˆ { todoList: TodoItem[] }
progress ่ฟ›ๅบฆๆ›ดๆ–ฐ { stage, percentage, text }
task_searching ไปปๅŠกๆœ็ดขไธญ { taskId }
task_summarizing ไปปๅŠกๆ€ป็ป“ไธญ { taskId, sources }
task_complete ไปปๅŠกๅฎŒๆˆ { taskId, summary, sources }
report ๆŠฅๅ‘Š็”ŸๆˆๅฎŒๆˆ { report }
error ๅ‘็”Ÿ้”™่ฏฏ { message, taskId? }
done ็ ”็ฉถๅฎŒๆˆ null

GET /api/research/stream

่Žทๅ–ๅฏ็”จ็š„ๆœ็ดขๅผ•ๆ“Žๅˆ—่กจใ€‚

ๅ“ๅบ”ๆ ผๅผ๏ผš

interface SearchBackendsResponse {
  availableBackends: string[]; // ["tavily", "duckduckgo", "serper", "bing"]
  defaultBackend: string; // "tavily"
}

๐Ÿš€ ๅฟซ้€Ÿๅผ€ๅง‹

1. ๅฎ‰่ฃ…ไพ่ต–

npm install

2. ้…็ฝฎ็Žฏๅขƒๅ˜้‡

ๅคๅˆถ็Žฏๅขƒๅ˜้‡ๆจกๆฟๅนถๅกซๅ…ฅๆ‚จ็š„ API Key๏ผš

cp .env.example .env.local

็ผ–่พ‘ .env.local ๆ–‡ไปถ๏ผš

# ===== LLM ้…็ฝฎ =====
LLM_API_KEY=your-api-key-here
LLM_BASE_URL=https://api-inference.modelscope.cn/v1
LLM_MODEL=deepseek-ai/DeepSeek-V3.2

# ===== ๆœ็ดข API ้…็ฝฎ๏ผˆ็ ”็ฉถๅŠฉๆ‰‹ไฝฟ็”จ๏ผŒ่‡ณๅฐ‘้…็ฝฎไธ€ไธช๏ผ‰=====
TAVILY_API_KEY=your-tavily-api-key-here
SERPER_API_KEY=your-serper-key          # ๅฏ้€‰
BING_SEARCH_KEY=your-bing-key           # ๅฏ้€‰
DEFAULT_SEARCH_BACKEND=tavily

# ===== ้ซ˜ๅพทๅœฐๅ›พ้…็ฝฎ๏ผˆๆ—…่กŒๅŠฉๆ‰‹ไฝฟ็”จ๏ผ‰=====
NEXT_PUBLIC_AMAP_API_KEY=ไฝ ็š„้ซ˜ๅพทJS_API_Key
NEXT_PUBLIC_AMAP_SECURITY_KEY=ไฝ ็š„ๅฎ‰ๅ…จๅฏ†้’ฅ
AMAP_API_KEY=ไฝ ็š„WebๆœๅŠกKey

# ===== ๅ›พ็‰‡ API ้…็ฝฎ๏ผˆๆ—…่กŒๅŠฉๆ‰‹ไฝฟ็”จ๏ผŒไปป้€‰ๅ…ถไธ€๏ผ‰=====
UNSPLASH_ACCESS_KEY=ไฝ ็š„Unsplash_Key
PEXELS_API_KEY=ไฝ ็š„Pexels_Key

3. ๅฏๅŠจๅผ€ๅ‘ๆœๅŠกๅ™จ

npm run dev

่ฎฟ้—ฎ http://localhost:3000 ๅผ€ๅง‹ไฝฟ็”จใ€‚


๐Ÿ“– ไฝฟ็”จ็คบไพ‹

ๆ™บ่ƒฝๆ—…่กŒๅŠฉๆ‰‹

  1. ่ฟ›ๅ…ฅๆ—…่กŒๅŠฉๆ‰‹้กต้ข
  2. ่พ“ๅ…ฅ็›ฎ็š„ๅœฐใ€ๆ—ฅๆœŸใ€ไบบๆ•ฐๅ’Œๅๅฅฝ
  3. ็‚นๅ‡ปใ€Œ็”Ÿๆˆๆ™บ่ƒฝ่กŒ็จ‹ใ€
  4. ๆŸฅ็œ‹่กŒ็จ‹ๅˆ—่กจใ€ๅœฐๅ›พๅ’Œ้ข„็ฎ—
  5. ๅฏๅฏผๅ‡บไธบ PDF ๆˆ–ๅ›พ็‰‡

ๆทฑๅบฆ็ ”็ฉถๅŠฉๆ‰‹

  1. ่ฟ›ๅ…ฅ็ ”็ฉถๅŠฉๆ‰‹้กต้ข
  2. ่พ“ๅ…ฅ็ ”็ฉถไธป้ข˜๏ผˆๅฆ‚ใ€Œๅคšๆจกๆ€ๅคงๆจกๅž‹็š„ๆœ€ๆ–ฐ่ฟ›ๅฑ•ใ€๏ผ‰
  3. ้€‰ๆ‹ฉๆœ็ดขๅผ•ๆ“Ž๏ผˆๅฏ้€‰๏ผ‰
  4. ็‚นๅ‡ปใ€Œๅผ€ๅง‹็ ”็ฉถใ€
  5. ๆŸฅ็œ‹ๅฎžๆ—ถ่ฟ›ๅบฆๅ’ŒไปปๅŠก็Šถๆ€
  6. ็ ”็ฉถๅฎŒๆˆๅŽๆŸฅ็œ‹/ๅคๅˆถ/ไธ‹่ฝฝๆŠฅๅ‘Š

๐Ÿ—๏ธ ้กน็›ฎ็ป“ๆž„

src/
โ”œโ”€โ”€ app/                          # Next.js App Router
โ”‚   โ”œโ”€โ”€ api/
โ”‚   โ”‚   โ”œโ”€โ”€ chat/route.ts         # ่Šๅคฉ API
โ”‚   โ”‚   โ”œโ”€โ”€ faq/route.ts          # FAQ ๆ•ฐๆฎ API
โ”‚   โ”‚   โ”œโ”€โ”€ travel/               # ๐Ÿ›ซ ๆ—…่กŒๅŠฉๆ‰‹ API
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ plan/route.ts     # ็”Ÿๆˆๆ—…่กŒ่ฎกๅˆ’
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ images/route.ts   # ่Žทๅ–ๆ™ฏ็‚นๅ›พ็‰‡
โ”‚   โ”‚   โ””โ”€โ”€ research/             # ๐Ÿ”ฌ ็ ”็ฉถๅŠฉๆ‰‹ API
โ”‚   โ”‚       โ””โ”€โ”€ stream/route.ts   # SSE ๆตๅผ็ ”็ฉถ
โ”‚   โ”œโ”€โ”€ travel/
โ”‚   โ”‚   โ””โ”€โ”€ page.tsx              # ๆ™บ่ƒฝๆ—…่กŒๅŠฉๆ‰‹้กต้ข
โ”‚   โ”œโ”€โ”€ research/
โ”‚   โ”‚   โ””โ”€โ”€ page.tsx              # ๆทฑๅบฆ็ ”็ฉถๅŠฉๆ‰‹้กต้ข
โ”‚   โ”œโ”€โ”€ layout.tsx                # ๆ นๅธƒๅฑ€
โ”‚   โ”œโ”€โ”€ page.tsx                  # ้ฆ–้กต (Agent Hub)
โ”‚   โ””โ”€โ”€ globals.css               # ๅ…จๅฑ€ๆ ทๅผ
โ”‚
โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ chat/                     # ่Šๅคฉ็›ธๅ…ณ็ป„ไปถ
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ”œโ”€โ”€ travel/                   # ๐Ÿ›ซ ๆ—…่กŒๅŠฉๆ‰‹็ป„ไปถ
โ”‚   โ”‚   โ”œโ”€โ”€ TravelPlanner.tsx     # ไธป้กต้ขๅฎนๅ™จ
โ”‚   โ”‚   โ”œโ”€โ”€ PlanForm.tsx          # ่ฎกๅˆ’่กจๅ•
โ”‚   โ”‚   โ”œโ”€โ”€ ItineraryList.tsx     # ่กŒ็จ‹ๅˆ—่กจ
โ”‚   โ”‚   โ”œโ”€โ”€ AMapContainer.tsx     # ้ซ˜ๅพทๅœฐๅ›พ
โ”‚   โ”‚   โ”œโ”€โ”€ BudgetPanel.tsx       # ้ข„็ฎ—้ขๆฟ
โ”‚   โ”‚   โ””โ”€โ”€ ExportPanel.tsx       # ๅฏผๅ‡บ้ขๆฟ
โ”‚   โ”œโ”€โ”€ research/                 # ๐Ÿ”ฌ ็ ”็ฉถๅŠฉๆ‰‹็ป„ไปถ
โ”‚   โ”‚   โ”œโ”€โ”€ ResearchForm.tsx      # ่พ“ๅ…ฅ่กจๅ•
โ”‚   โ”‚   โ”œโ”€โ”€ TodoListPanel.tsx     # ไปปๅŠกๅˆ—่กจ
โ”‚   โ”‚   โ”œโ”€โ”€ ProgressBar.tsx       # ่ฟ›ๅบฆๆก
โ”‚   โ”‚   โ””โ”€โ”€ ReportPanel.tsx       # ๆŠฅๅ‘Š้ขๆฟ
โ”‚   โ”œโ”€โ”€ home/                     # ้ฆ–้กต็ป„ไปถ
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ”œโ”€โ”€ layout/                   # ๅธƒๅฑ€็ป„ไปถ
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ””โ”€โ”€ ui/                       # ๅŸบ็ก€ UI ็ป„ไปถ
โ”‚       โ””โ”€โ”€ ...
โ”‚
โ”œโ”€โ”€ hooks/                        # React Hooks
โ”‚   โ”œโ”€โ”€ useChat.ts                # ่Šๅคฉ็Šถๆ€็ฎก็†
โ”‚   โ”œโ”€โ”€ useTravelPlan.ts          # ๐Ÿ›ซ ๆ—…่กŒ่ฎกๅˆ’็Šถๆ€
โ”‚   โ”œโ”€โ”€ useAMap.ts                # ๐Ÿ›ซ ้ซ˜ๅพทๅœฐๅ›พๆŽงๅˆถ
โ”‚   โ”œโ”€โ”€ useResearch.ts            # ๐Ÿ”ฌ ็ ”็ฉถ็Šถๆ€็ฎก็†
โ”‚   โ””โ”€โ”€ ...
โ”‚
โ”œโ”€โ”€ services/                     # ๆœๅŠกๅฑ‚
โ”‚   โ”œโ”€โ”€ agents/                   # Agent ็ณป็ปŸ
โ”‚   โ”‚   โ”œโ”€โ”€ baseAgent.ts          # Agent ๅŸบ็ฑป
โ”‚   โ”‚   โ”œโ”€โ”€ attractionAgent.ts    # ๐Ÿ›ซ ๆ™ฏ็‚นๆœ็ดข Agent
โ”‚   โ”‚   โ”œโ”€โ”€ weatherAgent.ts       # ๐Ÿ›ซ ๅคฉๆฐ”ๆŸฅ่ฏข Agent
โ”‚   โ”‚   โ”œโ”€โ”€ hotelAgent.ts         # ๐Ÿ›ซ ้…’ๅบ—ๆŽจ่ Agent
โ”‚   โ”‚   โ”œโ”€โ”€ plannerAgent.ts       # ๐Ÿ›ซ ่กŒ็จ‹่ง„ๅˆ’ Agent
โ”‚   โ”‚   โ””โ”€โ”€ research/             # ๐Ÿ”ฌ ็ ”็ฉถๅŠฉๆ‰‹ Agents
โ”‚   โ”‚       โ”œโ”€โ”€ todoPlannerAgent.ts    # ไปปๅŠก่ง„ๅˆ’ Agent
โ”‚   โ”‚       โ”œโ”€โ”€ taskSummarizerAgent.ts # ไปปๅŠกๆ€ป็ป“ Agent
โ”‚   โ”‚       โ”œโ”€โ”€ reportWriterAgent.ts   # ๆŠฅๅ‘Š็”Ÿๆˆ Agent
โ”‚   โ”‚       โ””โ”€โ”€ prompts.ts             # Prompt ๆจกๆฟ
โ”‚   โ”œโ”€โ”€ research/                 # ๐Ÿ”ฌ ็ ”็ฉถๆœๅŠก
โ”‚   โ”‚   โ”œโ”€โ”€ searchService.ts      # ๆœ็ดข่ฐƒๅบฆๆœๅŠก
โ”‚   โ”‚   โ””โ”€โ”€ researchCoordinator.ts # ็ ”็ฉถๅ่ฐƒๅ™จ
โ”‚   โ”œโ”€โ”€ mcp/                      # ๐Ÿ›ซ MCP ๆœๅŠก
โ”‚   โ”‚   โ””โ”€โ”€ amapClient.ts         #    ้ซ˜ๅพท MCP ๅฎขๆˆท็ซฏ
โ”‚   โ”œโ”€โ”€ unsplashService.ts        # ๐Ÿ›ซ ๅ›พ็‰‡ๆœๅŠก
โ”‚   โ”œโ”€โ”€ llmService.ts             # LLM ่ฐƒ็”จๆœๅŠก
โ”‚   โ””โ”€โ”€ ...
โ”‚
โ”œโ”€โ”€ types/                        # TypeScript ็ฑปๅž‹ๅฎšไน‰
โ”‚   โ”œโ”€โ”€ travel.ts                 # ๐Ÿ›ซ ๆ—…่กŒ็›ธๅ…ณ็ฑปๅž‹
โ”‚   โ”œโ”€โ”€ research.ts               # ๐Ÿ”ฌ ็ ”็ฉถ็›ธๅ…ณ็ฑปๅž‹
โ”‚   โ””โ”€โ”€ ...
โ”‚
docs/                             # ๐Ÿ“– ๆ–‡ๆกฃ็›ฎๅฝ•
โ”œโ”€โ”€ TRAVEL_ASSISTANT.md           # ๐Ÿ›ซ ๆ—…่กŒๅŠฉๆ‰‹่ฏฆ็ป†ๆ–‡ๆกฃ
โ””โ”€โ”€ RESEARCH_ASSISTANT.md         # ๐Ÿ”ฌ ็ ”็ฉถๅŠฉๆ‰‹่ฏฆ็ป†ๆ–‡ๆกฃ

๐Ÿ”ง ๆžถๆž„่ฏดๆ˜Ž

ๆ•ดไฝ“ๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         ็”จๆˆท็•Œ้ข                             โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚   ้ฆ–้กต      โ”‚  โ”‚  ๆ™บ่ƒฝๆ—…่กŒๅŠฉๆ‰‹    โ”‚  โ”‚  ๆทฑๅบฆ็ ”็ฉถๅŠฉๆ‰‹    โ”‚ โ”‚
โ”‚  โ”‚  Agent Hub  โ”‚  โ”‚  TravelPlanner  โ”‚  โ”‚  ResearchForm   โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        Hooks ๅฑ‚                              โ”‚
โ”‚     useChat / useTravelPlan / useAMap / useResearch         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                       Services ๅฑ‚                            โ”‚
โ”‚    chatService โ”‚ agentService โ”‚ researchCoordinator         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                       API ่ทฏ็”ฑๅฑ‚                             โ”‚
โ”‚  /api/chat โ”‚ /api/travel/* โ”‚ /api/research/stream           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        ๅค–้ƒจๆœๅŠก                              โ”‚
โ”‚  DeepSeek LLM โ”‚ ้ซ˜ๅพทMCP โ”‚ Tavily/DuckDuckGo/Serper/Bing    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆ—…่กŒๅŠฉๆ‰‹ Agent ๅไฝœ (ๅคš Agent ๅนถ่กŒ)

็”จๆˆท่พ“ๅ…ฅ โ†’ PlannerAgent (ๅ่ฐƒ่€…)
                โ”‚
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ–ผ           โ–ผ           โ–ผ
ๆ™ฏ็‚นAgent   ๅคฉๆฐ”Agent   ้…’ๅบ—Agent
    โ”‚           โ”‚           โ”‚
    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                โ–ผ
         LLM ็”Ÿๆˆ่กŒ็จ‹
                โ–ผ
         ่ฟ”ๅ›ž TravelPlan

็ ”็ฉถๅŠฉๆ‰‹ Agent ๅไฝœ (ๆตๆฐด็บฟๆจกๅผ)

็”จๆˆท่พ“ๅ…ฅ็ ”็ฉถไธป้ข˜
       โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ้˜ถๆฎต1: ่ง„ๅˆ’ (TodoPlanner Agent)         โ”‚
โ”‚  ๅฐ†ไธป้ข˜ๅˆ†่งฃไธบ 3-5 ไธชๅญไปปๅŠก                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ้˜ถๆฎต2: ๆ‰ง่กŒ (ๅพช็ŽฏๆฏไธชๅญไปปๅŠก)              โ”‚
โ”‚  โ”œโ”€ SearchService: ๆœ็ดข่ต„ๆ–™              โ”‚
โ”‚  โ””โ”€ TaskSummarizer Agent: ๆ€ป็ป“็ป“ๆžœ       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ้˜ถๆฎต3: ๆŠฅๅ‘Š (ReportWriter Agent)        โ”‚
โ”‚  ๆ•ดๅˆๆ‰€ๆœ‰ๆ€ป็ป“๏ผŒ็”Ÿๆˆ็ป“ๆž„ๅŒ–ๆŠฅๅ‘Š              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ†“
    ่พ“ๅ‡บ็ ”็ฉถๆŠฅๅ‘Š

๐Ÿ” ๆœ็ดขๅผ•ๆ“Žๅฏนๆฏ”๏ผˆ็ ”็ฉถๅŠฉๆ‰‹๏ผ‰

ๆœ็ดขๅผ•ๆ“Ž ็‰น็‚น ้œ€่ฆ API Key
Tavily ไธ“ไธบ AI ่ฎพ่ฎก๏ผŒ็ป“ๆžœ่ดจ้‡้ซ˜ โœ…
DuckDuckGo ๅ…่ดน๏ผŒ้š็งๅ‹ๅฅฝ โŒ
Serper Google ๆœ็ดข็ป“ๆžœ โœ…
Bing ๅพฎ่ฝฏๆœ็ดขๅผ•ๆ“Ž โœ…

๐ŸŽจ UI ็ป„ไปถ

้ฆ–้กต็ป„ไปถ

็ป„ไปถ ่ฏดๆ˜Ž
HeroSection Hero ๅŒบๅŸŸ - ๆ ‡้ข˜ใ€ๅ‰ฏๆ ‡้ข˜ใ€ๅ“็‰Œๅฑ•็คบ
AgentCard Agent ๅก็‰‡ - ๆ”ฏๆŒ featured ๅ’Œ coming-soon ไธค็ง็Šถๆ€
AgentGrid Agent ็ฝ‘ๆ ผๅธƒๅฑ€ - ๅ“ๅบ”ๅผๆŽ’ๅˆ—

่Šๅคฉ็ป„ไปถ

็ป„ไปถ ่ฏดๆ˜Ž
ChatContainer ่Šๅคฉๅฎนๅ™จ - ๆ•ดๅˆๆถˆๆฏๅˆ—่กจๅ’Œ่พ“ๅ…ฅๆก†
MessageList ๆถˆๆฏๅˆ—่กจ - ๅฑ•็คบๅฏน่ฏๅކๅฒ
MessageItem ๅ•ๆกๆถˆๆฏ - ๅŒบๅˆ†็”จๆˆท/AI ๆถˆๆฏๆ ทๅผ
ChatInput ่พ“ๅ…ฅๆก† - ๅ‘้€ๆถˆๆฏ
AgentSteps Agent ๆญฅ้ชค - ๅฑ•็คบๆ€่€ƒ่ฟ‡็จ‹
TypingIndicator ่พ“ๅ…ฅไธญๆŒ‡็คบๅ™จ

ๆ—…่กŒๅŠฉๆ‰‹็ป„ไปถ

็ป„ไปถ ่ฏดๆ˜Ž
TravelPlanner ไธป้กต้ขๅฎนๅ™จ
PlanForm ๆ—…่กŒ่ฎกๅˆ’่กจๅ•
ItineraryList ่กŒ็จ‹ๅˆ—่กจๅฑ•็คบ
AMapContainer ้ซ˜ๅพทๅœฐๅ›พๅฎนๅ™จ
BudgetPanel ้ข„็ฎ—ๆ˜Ž็ป†้ขๆฟ
ExportPanel ๅฏผๅ‡บๅŠŸ่ƒฝ้ขๆฟ

็ ”็ฉถๅŠฉๆ‰‹็ป„ไปถ

็ป„ไปถ ่ฏดๆ˜Ž
ResearchForm ็ ”็ฉถ่พ“ๅ…ฅ่กจๅ•
TodoListPanel ไปปๅŠกๅˆ—่กจ้ขๆฟ
ProgressBar ่ฟ›ๅบฆๆก็ป„ไปถ
ReportPanel ๆŠฅๅ‘Šๅฑ•็คบ้ขๆฟ

๐Ÿ“š ๆ–‡ๆกฃ็ดขๅผ•

ๆ–‡ๆกฃ ่ฏดๆ˜Ž
README.md ้กน็›ฎไธปๆ–‡ๆกฃ
ๆ™บ่ƒฝๆ—…่กŒๅŠฉๆ‰‹ๆ–‡ๆกฃ ๆ—…่กŒๅŠฉๆ‰‹ๅฎŒๆ•ดๆ–‡ๆกฃ๏ผˆๆžถๆž„ใ€APIใ€็ป„ไปถใ€้…็ฝฎ๏ผ‰
ๆทฑๅบฆ็ ”็ฉถๅŠฉๆ‰‹ๆ–‡ๆกฃ ็ ”็ฉถๅŠฉๆ‰‹ๅฎŒๆ•ดๆ–‡ๆกฃ๏ผˆAgentใ€ๆœ็ดขๅผ•ๆ“Žใ€API๏ผ‰

๐Ÿ“ License

MIT

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages