Skip to content

UCTooCom/uctoo-api-skill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

UCTOO API Skill (V2)

ๆฆ‚่ฟฐ

่ฟ™ๆ˜ฏ uctoo-api-skill ็š„ V2 ็‰ˆๆœฌ๏ผŒ้‡‡็”จๅฎŒๅ…จ้‡ๆž„็š„ๆžถๆž„๏ผŒ็œŸๆญฃๅ‘ๆŒฅๅคงๆจกๅž‹็š„่ฏญไน‰็†่งฃๅ’ŒๆŽจ็†่ƒฝๅŠ›ใ€‚

ๆ ธๅฟƒ็†ๅฟต

ไปŽ V1 ๅˆฐ V2 ็š„่ฝฌๅ˜

V1 (ๆ—งๆžถๆž„):

  • ็กฌ็ผ–็ ๅ…ณ้”ฎ่ฏๆๅ–
  • ๅ›บๅฎš็š„ API ่ฐƒ็”จ้€ป่พ‘
  • ๅคง้‡็š„ไปฃ็ ๅฎž็Žฐ
  • ่„†ๅผฑไธ”้šพไปฅ็ปดๆŠค

V2 (ๆ–ฐๆžถๆž„):

  • ๅคงๆจกๅž‹้ฉฑๅŠจ็š„่ฏญไน‰็†่งฃ
  • ็ตๆดป็š„ API ้€‰ๆ‹ฉๅ’Œๅ‚ๆ•ฐ็ป„่ฃ…
  • ๆž็ฎ€ไปฃ็ ๅฎž็Žฐ
  • ๆ˜“ไบŽ็ปดๆŠคๅ’Œๆ‰ฉๅฑ•

ๆžถๆž„่ฎพ่ฎก

ๅˆ†ๅฑ‚ๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     ็”จๆˆท่พ“ๅ…ฅ                           โ”‚
โ”‚         "่ฏทไฝฟ็”จ demo ่ดฆๅท 123456 ็™ปๅฝ•"                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
                       โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              ๅคงๆจกๅž‹๏ผˆ็Ÿฅ่ฏ†ๅฑ‚ + ๆŽจ็†๏ผ‰                    โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚ 1. ็†่งฃ็”จๆˆทๆ„ๅ›พ๏ผš้œ€่ฆ็™ปๅฝ•                          โ”‚ โ”‚
โ”‚  โ”‚ 2. ่ฏ†ๅˆซๅ‚ๆ•ฐ๏ผšusername=demo, password=123456      โ”‚ โ”‚
โ”‚  โ”‚ 3. ้€‰ๆ‹ฉ API๏ผšPOST /api/uctoo/auth/login           โ”‚ โ”‚
โ”‚  โ”‚ 4. ็ป„่ฃ…่ฏทๆฑ‚ไฝ“๏ผš{"username":"demo","password":"123456"}โ”‚ โ”‚
โ”‚  โ”‚ 5. ่ฐƒ็”จ HTTP ๅทฅๅ…ทๆ‰ง่กŒ่ฏทๆฑ‚                          โ”‚ โ”‚
โ”‚  โ”‚ 6. ่งฃๆžๅ“ๅบ”ๅนถ็”Ÿๆˆๅ‹ๅฅฝๅ›žๅค                          โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
                       โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                 HTTP ๅทฅๅ…ท๏ผˆ่ฟžๆŽฅๅฑ‚๏ผ‰                     โ”‚
โ”‚              ๆ‰ง่กŒๅฎž้™…็š„ API ่ฏทๆฑ‚                        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
                       โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                 UCTOO ๅŽ็ซฏ API                          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆ–‡ไปถ็ป“ๆž„

uctoo-api-skill/
โ”œโ”€โ”€ SKILL.md                          # ไธปๆŠ€่ƒฝๆ–‡ไปถ๏ผˆ็Ÿฅ่ฏ†ๅฑ‚๏ผ‰
โ”œโ”€โ”€ README.md                         # ๆœฌๆ–‡ไปถ
โ”œโ”€โ”€ Main.cj                           # ๅ…ฅๅฃ็‚น๏ผˆ็”จไบŽๆต‹่ฏ•๏ผ‰
โ”œโ”€โ”€ references/                       # ๅ‚่€ƒๆ–‡ๆกฃ
โ”‚   โ”œโ”€โ”€ api_spec.md                   # ๅฎŒๆ•ด็š„ API ่ง„่Œƒ
โ”‚   โ”œโ”€โ”€ examples.md                   # ไฝฟ็”จ็คบไพ‹
โ”‚   โ””โ”€โ”€ uctoo_api_design.md          # API ่ฎพ่ฎกๆ–‡ๆกฃ
โ”œโ”€โ”€ scripts/                          # ่„šๆœฌๅทฅๅ…ท
โ”‚   โ”œโ”€โ”€ api_client.py                 # HTTP ๅฎขๆˆท็ซฏ๏ผˆไธป่ฆไฝฟ็”จ๏ผ‰
โ”‚   โ”œโ”€โ”€ api_client.js                 # JavaScript ็‰ˆๆœฌ๏ผˆๅค‡็”จ๏ผ‰
โ”‚   โ””โ”€โ”€ test_api.py                   # API ๆต‹่ฏ•่„šๆœฌ
โ”œโ”€โ”€ src/                              # ๆบไปฃ็ 
โ”‚   โ””โ”€โ”€ uctoo_api_skill.cj           # ๆž็ฎ€ๆŠ€่ƒฝๅฎž็Žฐ
โ””โ”€โ”€ backup-v1/                        # V1 ็‰ˆๆœฌๅค‡ไปฝ
    โ””โ”€โ”€ ...

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

1. ๆต‹่ฏ• API ่ฟžๆŽฅ

python scripts/test_api.py

2. ๆ‰‹ๅŠจๆต‹่ฏ•็™ปๅฝ•

python scripts/api_client.py POST "/api/uctoo/auth/login" '{"username":"demo","password":"123456"}'

3. ไฝฟ็”จๆŠ€่ƒฝ

ๆŠ€่ƒฝไผš้€š่ฟ‡ Agentskills ่ฟ่กŒๆ—ถ่‡ชๅŠจๅŠ ่ฝฝ๏ผŒๅคงๆจกๅž‹ไผšๆ นๆฎ SKILL.md ไธญ็š„่ฏดๆ˜Žๆฅไฝฟ็”จๅฎƒใ€‚

SKILL.md ็ป“ๆž„

SKILL.md ้‡‡็”จๆธ่ฟ›ๅผๆŠซ้œฒ๏ผˆProgressive Disclosure๏ผ‰ๅŽŸๅˆ™๏ผš

Level 1: YAML Frontmatter

  • ๅฟซ้€Ÿๆ‰ซๆไฟกๆฏ
  • ๆŠ€่ƒฝๅ็งฐใ€ๆ่ฟฐใ€ๅ…ƒๆ•ฐๆฎ
  • ๅ…่ฎธ็š„ๅทฅๅ…ทๅˆ—่กจ

Level 2: Markdown ไธปไฝ“

  • ่ฏฆ็ป†่ฏดๆ˜Ž
  • API ๅฟซ้€Ÿๅ‚่€ƒ
  • ไฝฟ็”จ็คบไพ‹
  • ๅทฅไฝœๆต็จ‹

Level 3: ้“พๆŽฅ็š„ๅ‚่€ƒๆ–‡ๆกฃ

  • ๅฎŒๆ•ด็š„ API ่ง„่Œƒ
  • ๆ›ดๅคšไฝฟ็”จ็คบไพ‹
  • ๆทฑๅ…ฅ็š„ๆŠ€ๆœฏๆ–‡ๆกฃ

ๆ ธๅฟƒไผ˜ๅŠฟ

  1. ๅ……ๅˆ†ๅˆฉ็”จๅคงๆจกๅž‹่ƒฝๅŠ›

    • ่ฏญไน‰็†่งฃใ€ๆŽจ็†ใ€ๅ†ณ็ญ–้ƒฝ็”ฑๅคงๆจกๅž‹ๅฎŒๆˆ
    • ่ƒฝๅค„็†ๅ„็ง่‡ช็„ถ่ฏญ่จ€ๅ˜ไฝ“
  2. ๆž้ซ˜็š„็ตๆดปๆ€ง

    • ไธ้œ€่ฆ็กฌ็ผ–็ ๆฏไธช API ็š„ๅค„็†้€ป่พ‘
    • ๅคงๆจกๅž‹ๅฏไปฅ่‡ช้€‚ๅบ”ๅ„็ง็”จๆˆท่พ“ๅ…ฅ
  3. ๆ˜“ไบŽ็ปดๆŠค

    • API ๅ˜ๆ›ดๅช้œ€ๆ›ดๆ–ฐๆ–‡ๆกฃ
    • ไธ้œ€่ฆไฟฎๆ”นไปฃ็ 
  4. ๆ˜“ไบŽๆ‰ฉๅฑ•

    • ๆ–ฐๅขž API ๅช้œ€ๅœจๆ–‡ๆกฃไธญๆทปๅŠ ่ฏดๆ˜Ž
    • ๅคงๆจกๅž‹ไผš่‡ชๅŠจๅญฆไผšไฝฟ็”จๆ–ฐ API
  5. ็ฌฆๅˆๆœ€ไฝณๅฎž่ทต

    • ๅฎŒๅ…จ็ฌฆๅˆ Agentskills ๆ ‡ๅ‡†
    • ้‡‡็”จๆธ่ฟ›ๅผๆŠซ้œฒๅŽŸๅˆ™

่‡ชๅŠจ Token ็ฎก็†๏ผˆV7.0+๏ผ‰

ๆฆ‚่ฟฐ

ไปŽ V7.0 ็‰ˆๆœฌๅผ€ๅง‹๏ผŒ็ณป็ปŸๅฎž็Žฐไบ†ไผš่ฏ็บง่‡ชๅŠจ Token ็ฎก็†ๆœบๅˆถ๏ผŒๅฝปๅบ•่งฃๅ†ณไบ†ๅคงๆจกๅž‹ๅœจๅคš่ฝฎๅฏน่ฏไธญๆ— ๆณ•ๆญฃ็กฎไผ ้€’่ฎค่ฏ Token ็š„้—ฎ้ข˜ใ€‚

ๆžถๆž„่ฎพ่ฎก

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    WebSocket Session                         โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚                 SessionContext                        โ”‚    โ”‚
โ”‚  โ”‚  - setCurrentSession(sessionId)                       โ”‚    โ”‚
โ”‚  โ”‚  - getAccessToken() โ†’ TokenManager.getAccessToken()   โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ”‚                            โ”‚                                 โ”‚
โ”‚                            โ–ผ                                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚                   TokenManager                        โ”‚    โ”‚
โ”‚  โ”‚  - setToken(sessionId, tokenInfo)                     โ”‚    โ”‚
โ”‚  โ”‚  - getAccessToken(sessionId)                          โ”‚    โ”‚
โ”‚  โ”‚  - parseLoginResponse(response)                       โ”‚    โ”‚
โ”‚  โ”‚  - isLoginEndpoint(url)                               โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ”‚                            โ”‚                                 โ”‚
โ”‚                            โ–ผ                                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚                     HttpTool                          โ”‚    โ”‚
โ”‚  โ”‚  1. ๆฃ€ๆต‹็™ปๅฝ•่ฏทๆฑ‚ โ†’ ่‡ชๅŠจไฟๅญ˜ token                      โ”‚    โ”‚
โ”‚  โ”‚  2. ๆฃ€ๆต‹้ž็™ปๅฝ•่ฏทๆฑ‚ โ†’ ่‡ชๅŠจๆณจๅ…ฅ Authorization header     โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆ ธๅฟƒ็ป„ไปถ

็ป„ไปถ ๆ–‡ไปถ ๅŠŸ่ƒฝ
TokenInfo src/tool/token_manager.cj Token ไฟกๆฏๅฐ่ฃ…๏ผŒๅŒ…ๅซ่ฟ‡ๆœŸๆ—ถ้—ดๆฃ€ๆŸฅ
TokenManager src/tool/token_manager.cj Token ๅญ˜ๅ‚จๅ’Œ็ฎก็†๏ผŒๆ”ฏๆŒๅคšไผš่ฏ
SessionContext src/tool/token_manager.cj ๅฝ“ๅ‰ไผš่ฏไธŠไธ‹ๆ–‡๏ผŒ็บฟ็จ‹ๅฎ‰ๅ…จ
HttpTool src/tool/http_tool.cj ่‡ชๅŠจ token ไฟๅญ˜ๅ’Œๆณจๅ…ฅ

ๅทฅไฝœๆต็จ‹

1. ็™ปๅฝ•ๆ—ถ่‡ชๅŠจไฟๅญ˜ Token

// HttpTool ๆฃ€ๆต‹ๅˆฐ็™ปๅฝ•่ฏทๆฑ‚
if (tokenManager.isLoginEndpoint(url)) {
    // ่งฃๆžๅ“ๅบ”ๅนถไฟๅญ˜ token
    let tokenInfoOpt = tokenManager.parseLoginResponse(responseJson)
    match (tokenInfoOpt) {
        case Some(tokenInfo) =>
            tokenManager.setToken(sessionId, tokenInfo)
            LogUtils.info("[HttpTool] Auto-saved token for session")
        case None => ()
    }
}

2. ๅŽ็ปญ่ฏทๆฑ‚่‡ชๅŠจๆณจๅ…ฅ Authorization

// HttpTool ๆฃ€ๆต‹ๅˆฐ้ž็™ปๅฝ•่ฏทๆฑ‚
if (!hasAuthorization && !tokenManager.isLoginEndpoint(url)) {
    let tokenOpt = sessionContext.getAccessToken()
    match (tokenOpt) {
        case Some(token) =>
            headers.add("Authorization", "Bearer ${token}")
            LogUtils.info("[HttpTool] Auto-injected Authorization header")
        case None => ()
    }
}

3. ไผš่ฏ็ป“ๆŸๆ—ถๆธ…็†

// WebSocket ไผš่ฏๅ…ณ้—ญๆ—ถ
tokenManager.removeToken(sessionId)
sessionContext.clearCurrentSession()

ไผ˜ๅŠฟ

  1. ๅฏนๆจกๅž‹้€ๆ˜Ž๏ผšๅคงๆจกๅž‹ๆ— ้œ€ๅ…ณๅฟƒ token ็ฎก็†๏ผŒๅช้œ€ๆญฃๅธธ่ฐƒ็”จ API
  2. ๅฏ้ ๆ€ง้ซ˜๏ผšไธไพ่ต–ๅคงๆจกๅž‹็š„่ฎฐๅฟ†่ƒฝๅŠ›๏ผŒ้ฟๅ… token ไธขๅคฑๆˆ–ๆ ผๅผ้”™่ฏฏ
  3. ๆ”ฏๆŒๅคš็”จๆˆท๏ผšๆฏไธช WebSocket ไผš่ฏ็‹ฌ็ซ‹็ฎก็† token
  4. ่‡ชๅŠจ่ฟ‡ๆœŸๅค„็†๏ผšTokenInfo ๅŒ…ๅซ่ฟ‡ๆœŸๆ—ถ้—ด๏ผŒ่‡ชๅŠจๆฃ€ๆŸฅ token ๆœ‰ๆ•ˆๆ€ง
  5. ็บฟ็จ‹ๅฎ‰ๅ…จ๏ผšไฝฟ็”จ Mutex ไฟๆŠคๅ…ฑไบซ็Šถๆ€

ไฝฟ็”จ็คบไพ‹

็”จๆˆทๅช้œ€ๆญฃๅธธๅฏน่ฏ๏ผŒ็ณป็ปŸ่‡ชๅŠจๅค„็†่ฎค่ฏ๏ผš

็”จๆˆท: ่ฏทไฝฟ็”จ demo ่ดฆๅท 123456 ็™ปๅฝ•
ๅŠฉๆ‰‹: ็™ปๅฝ•ๆˆๅŠŸ๏ผ็”จๆˆทไฟกๆฏ๏ผš...

็”จๆˆท: ็ผ–่พ‘ id ไธบ fd0a410a-xxx ็š„ๅฎžไฝ“๏ผŒๅฐ† link ๆ”นไธบ uctoo.com
ๅŠฉๆ‰‹: ็ผ–่พ‘ๆˆๅŠŸ๏ผ  # ็ณป็ปŸ่‡ชๅŠจๆณจๅ…ฅไบ† Authorization header

ๆŠ€ๆœฏ็ป†่Š‚

  • ็™ปๅฝ•็ซฏ็‚นๆฃ€ๆต‹๏ผš้€š่ฟ‡ URL ไธญๆ˜ฏๅฆๅŒ…ๅซ /auth/login ๆˆ– /auth/signin ๅˆคๆ–ญ
  • Token ่งฃๆž๏ผšไปŽ JSON ๅ“ๅบ”ไธญๆๅ– access_tokenใ€refresh_tokenใ€user.idใ€user.username
  • ้ป˜่ฎค่ฟ‡ๆœŸๆ—ถ้—ด๏ผš24 ๅฐๆ—ถ๏ผˆ86400000 ๆฏซ็ง’๏ผ‰
  • Header ๆณจๅ…ฅๆ ผๅผ๏ผšAuthorization: Bearer {token}

ๅทฅไฝœๅŽŸ็†

1. ๆŠ€่ƒฝๆฟ€ๆดป

ๅฝ“็”จๆˆทๆๅŠ "uctoo"ใ€"็™ปๅฝ•"ใ€"็”จๆˆท็ฎก็†" ็ญ‰ๅ…ณ้”ฎ่ฏๆ—ถ๏ผŒๆŠ€่ƒฝไผš่ขซๆฟ€ๆดปใ€‚

2. ๅคงๆจกๅž‹็†่งฃ

ๅคงๆจกๅž‹่ฏปๅ– SKILL.md ไธญ็š„่ฏดๆ˜Ž๏ผŒ็†่งฃ๏ผš

  • ๆœ‰ๅ“ชไบ› API ๅฏ็”จ
  • ๅฆ‚ไฝ•่ฐƒ็”จ่ฟ™ไบ› API
  • ้œ€่ฆไป€ไนˆๅ‚ๆ•ฐ
  • ๅฆ‚ไฝ•ๅค„็†ๅ“ๅบ”

3. ๅ†ณ็ญ–ไธŽๆ‰ง่กŒ

ๅคงๆจกๅž‹ๆ นๆฎ็”จๆˆท้œ€ๆฑ‚๏ผš

  1. ้€‰ๆ‹ฉๅˆ้€‚็š„ API
  2. ไปŽ็”จๆˆท่พ“ๅ…ฅไธญๆๅ–ๅ‚ๆ•ฐ
  3. ่ฐƒ็”จ Python ่„šๆœฌๅ‘้€ HTTP ่ฏทๆฑ‚
  4. ่งฃๆž API ๅ“ๅบ”
  5. ็”Ÿๆˆๅ‹ๅฅฝ็š„่‡ช็„ถ่ฏญ่จ€ๅ›žๅค

ไธŽ V1 ็š„ๅฏนๆฏ”

็‰นๆ€ง V1 V2
ไปฃ็ ้‡ ๅคง้‡๏ผˆ10+ ๆ–‡ไปถ๏ผ‰ ๆžๅฐ‘๏ผˆ2 ไธชๆ–‡ไปถ๏ผ‰
่ฏญไน‰็†่งฃ ็กฌ็ผ–็ ๅ…ณ้”ฎ่ฏ ๅคงๆจกๅž‹่‡ช็„ถ่ฏญ่จ€็†่งฃ
API ้€‰ๆ‹ฉ ๅ›บๅฎš้€ป่พ‘ ๅคงๆจกๅž‹ๅŠจๆ€ๅ†ณ็ญ–
ๅ‚ๆ•ฐๆๅ– ๆญฃๅˆ™่กจ่พพๅผ ๅคงๆจกๅž‹ๆ™บ่ƒฝๆๅ–
ๅฏ็ปดๆŠคๆ€ง ไฝŽ๏ผˆ้œ€ๆ”นไปฃ็ ๏ผ‰ ้ซ˜๏ผˆๅช้œ€ๆ”นๆ–‡ๆกฃ๏ผ‰
ๅฏๆ‰ฉๅฑ•ๆ€ง ไฝŽ ้ซ˜
็ตๆดปๆ€ง ไฝŽ ๆž้ซ˜

ๆณจๆ„ไบ‹้กน

  1. Token ็ฎก็†

    • ็™ปๅฝ•ๆˆๅŠŸๅŽ๏ผŒๅคงๆจกๅž‹ไผšไฟๅญ˜ access_token
    • ๅŽ็ปญ่ฏทๆฑ‚้œ€่ฆไฝฟ็”จ่ฟ™ไธช token
  2. API ๆ ผๅผ

    • ๆ‰€ๆœ‰ API ้ƒฝไฝฟ็”จ /api/uctoo/ ๅ‰็ผ€
    • POST ่ฏทๆฑ‚็š„่ฏทๆฑ‚ไฝ“ๅฟ…้กปๆ˜ฏๆœ‰ๆ•ˆ็š„ JSON
  3. ้”™่ฏฏๅค„็†

    • ๅคงๆจกๅž‹ไผš่‡ชๅŠจๅค„็† API ้”™่ฏฏ
    • ๅ‘็”จๆˆทๆไพ›ๅ‹ๅฅฝ็š„้”™่ฏฏไฟกๆฏๅ’Œ่งฃๅ†ณๆ–นๆกˆ

ไธ‹ไธ€ๆญฅ

  • ๆต‹่ฏ•้€š่ฟ‡่Šๅคฉ็•Œ้ขไฝฟ็”จๆŠ€่ƒฝ
  • ้ชŒ่ฏ็™ปๅฝ•ๅŠŸ่ƒฝ
  • ๆต‹่ฏ•ๅŸบๆœฌ็š„ CRUD ๆ“ไฝœ
  • ๆ นๆฎๅฎž้™…ไฝฟ็”จๆƒ…ๅ†ตไผ˜ๅŒ– SKILL.md

ๅ‚่€ƒ่ต„ๆ–™

About

query your database using natural language

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors