Major Changes: - Add StreamingService with OpenAI Compatible format - Upgrade Chat component V2 with Ant Design X integration - Implement AIA module with 12 intelligent agents - Update API routes to unified /api/v1 prefix - Update system documentation Backend (~1300 lines): - common/streaming: OpenAI Compatible adapter - modules/aia: 12 agents, conversation service, streaming integration - Update route versions (RVW, PKB to v1) Frontend (~3500 lines): - modules/aia: AgentHub + ChatWorkspace (100% prototype restoration) - shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook - Update API endpoints to v1 Documentation: - AIA module status guide - Universal capabilities catalog - System overview updates - All module documentation sync Tested: Stream response verified, authentication working Status: AIA V2.0 core completed (85%)
1024 lines
29 KiB
Markdown
1024 lines
29 KiB
Markdown
# Dify ECS <20>函蔡摰<E894A1><E691B0><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
**<EFBFBD><EFBFBD>﹝<EFBFBD><EFBFBD>𧋦**: v1.1 (靽桀<E99DBD><E6A180>游𦶢<E6B8B8>滨蔭<E6BBA8>躰秤)
|
||
**<EFBFBD>𥕦遣<EFBFBD>園𡢿**: 2025-12-13
|
||
**<EFBFBD><EFBFBD><EFBFBD>𦒘耨霈?*: 2025-12-13
|
||
**<EFBFBD><EFBFBD>鍂<EFBFBD><EFBFBD>凒**: AIclinicalresearch 撟喳蝱 - Dify RAG <20>滚𦛚<E6BB9A>函蔡
|
||
**<EFBFBD>格<EFBFBD>霂餉<EFBFBD>?*: 餈鞟輕撌亦<E6928C>撣<EFBFBD><E692A3><EFBFBD><EFBFBD>蝡臬<E89DA1><E887AC>穃極蝔见<E89D94>
|
||
|
||
**v1.1 <20>湔鰵<E6B994>亙<EFBFBD>**:
|
||
- <20>?靽桀<E99DBD>嚗鑹edis <20>滨蔭隞?`localhost` <20>嫣蛹 `redis`嚗<EFBFBD>稲<EFBFBD>賡<EFBFBD>霂荔<EFBFBD>
|
||
- <20>?<3F>啣<EFBFBD>嚗锭wap <20><>躹<EFBFBD>滨蔭甇仿炊嚗<E7828A><E59A97><EFBFBD>?OOM嚗?- <20>?靽格迤嚗𡁜撩靚<E692A9>蝙<EFBFBD>典<EFBFBD><E585B8>?docker-compose.yaml嚗<6C><E59A97><EFBFBD>?Nginx 蝵穃<E89DB5>嚗?- <20>?摰<><E691B0>嚗𡁏<E59A97><F0A1818F>𨀣<EFBFBD><F0A880A3>亦<EFBFBD><E4BAA6><EFBFBD><EFBFBD><EFBFBD>啣<EFBFBD> Redis 餈墧𦻖憭梯揖<E6A2AF>?CORS <20>躰秤<E8BAB0><E7A7A4>圾<EFBFBD>單䲮獢?
|
||
|
||
---
|
||
|
||
## <20><> <20><>﹝<EFBFBD>桀<EFBFBD>
|
||
|
||
1. [銝箔<EFBFBD>銋<EFBFBD><EFBFBD>㗇𥋘 ECS + Docker Compose](#銝箔<E98A9D>銋<EFBFBD><E98A8B>㗇𥋘-ecs--docker-compose)
|
||
2. [<5B>函蔡<E587BD>嗆<EFBFBD><E59786>霄(#<23>函蔡<E587BD>嗆<EFBFBD><E59786>?
|
||
3. [<EFBFBD>滨蔭<EFBFBD><EFBFBD><EFBFBD>皜<EFBFBD><EFBFBD>](#<23>滨蔭<E6BBA8><E894AD><EFBFBD>皜<EFBFBD><E79A9C>)
|
||
4. [ECS <20>滚𦛚<E6BB9A>券<EFBFBD>蝵孫(#ecs-<2D>滚𦛚<E6BB9A>券<EFBFBD>蝵?
|
||
5. [摰㕑<EFBFBD>甇仿炊](#摰㕑<E691B0>甇仿炊)
|
||
6. [<EFBFBD>滨蔭霂湔<EFBFBD>](#<23>滨蔭霂湔<E99C82>)
|
||
7. [<5B>臬𢆡銝𡡞<E98A9D>霂<EFBFBD>(#<23>臬𢆡銝𡡞<E98A9D>霂?
|
||
8. [<5B>烐綉銝𡒊輕<F0A1928A>也(#<23>烐綉銝𡒊輕<F0A1928A>?
|
||
9. [<EFBFBD><EFBFBD><EFBFBD><EFBFBD>埝䰻](#<23><><EFBFBD><EFBFBD>埝䰻)
|
||
10. [瘜冽<E7989C>鈭钅★銝𡒊<E98A9D>敹䀉(#瘜冽<EFBFBD>鈭钅★銝𡒊<EFBFBD>敹?
|
||
|
||
---
|
||
|
||
## 銝箔<E98A9D>銋<EFBFBD><E98A8B>㗇𥋘 ECS + Docker Compose
|
||
|
||
### <20>?<3F>詨<EFBFBD><E8A9A8>笔<EFBFBD>
|
||
|
||
#### 1. **<2A>唳旿<E594B3><E697BF><EFBFBD>銝𡡞<E98A9D>蝘<EFBFBD><E89D98><EFBFBD>餌<EFBFBD>銵䔶<E98AB5>蝥Y瑪嚗?*
|
||
|
||
```
|
||
<EFBFBD>?Dify 鈭烐<E988AD><E78390>?(SaaS)嚗𡁏㺭<F0A1818F>桐<EFBFBD>隡惩<E99AA1>蝚砌<E89D9A><E7A08C>寞<EFBFBD><E5AF9E>∪膥
|
||
<EFBFBD>?ECS <20>芸遣嚗𡁏㺭<F0A1818F>?100% <20>刻䌊撌梁<E6928C><E6A281>輸<EFBFBD>鈭𤏸揭<F0A48FB8>瑕<EFBFBD>
|
||
```
|
||
|
||
**敶勗<E695B6>**嚗?- 銝厩睻<E58EA9>駁堺撖寧<E69296><E5AFA7>娍㺭<E5A88D>桀枂<E6A180>X<EFBFBD><EFBCB8><EFBFBD>艇<EFBFBD>潛恣<E6BD9B>?- <20>典虾隞亙笆摰X<E691B0>霂湛<E99C82>"<22>唳旿撠勗銁<E58B97>睲賑<E79DB2><E8B391><EFBFBD><EFBFBD>劐<EFBFBD><E58A90>滚𦛚<E6BB9A>其<EFBFBD>嚗峕𧊋<E5B395>亙虾<E4BA99>函蔡<E587BD>典龫<E585B8>W<EFBFBD>蝵?
|
||
- 蝚血<E89D9A> PRD 銝剔<E98A9D><E58994>詨<EFBFBD>閬<EFBFBD><E996AC>嚗?<3F>唳旿 100% <20>砍𧑐"
|
||
|
||
#### 2. **<2A><><EFBFBD>璅∪<E79285><E288AA><EFBFBD><EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>匧<EFBFBD><E58CA7>函蔡<E587BD>賢<EFBFBD>嚗?*
|
||
|
||
```
|
||
<EFBFBD>函<EFBFBD><EFBFBD><EFBFBD><EFBFBD>璅∪<EFBFBD>嚗㇊RD嚗?
|
||
<20>鎿<EFBFBD> SaaS <20><><EFBFBD>憭𡁶<E686AD><F0A181B6>瘀<EFBFBD>
|
||
<20>鎿<EFBFBD> 蝘<><E89D98><EFBFBD>㚚<EFBFBD>蝵莎<E89DB5><E88E8E>駁堺<E9A781><E5A0BA><EFBFBD>嚗? <20>婙<EFBFBD> <20>閙㦤<E99699><E3A6A4><EFBFBD>Windows/Mac嚗?```
|
||
|
||
**<2A>喲睸**嚗?- Dify 鈭烐<E988AD><E78390>⊥<EFBFBD>瘜閧<E7989C><E996A7>匧<EFBFBD>鈭支<E988AD>嚗<EFBFBD>龫<EFBFBD>W<EFBFBD>蝵烐<E89DB5>瘜閗<E7989C><E99697>亙<EFBFBD><E4BA99>劐<EFBFBD>嚗?- ECS + Docker Compose <20>臭誑<E887AD>湔𦻖<E6B994>枏<EFBFBD><E69E8F>𣂼<EFBFBD>鋆<EFBFBD><E98B86>嚗<EFBFBD><E59A97>蝏坔龫<E59D94>W<EFBFBD>蝘<EFBFBD><E89D98><EFBFBD>㚚<EFBFBD>蝵?- <20>函緵<E587BD>函<EFBFBD><E587BD>嗆<EFBFBD><E59786>匧<EFBFBD>嚗峕糓<E5B395>其蛹<E585B6>芣䔉<E88AA3><E49489><EFBFBD>銝𡁏芋撘誯唍頝?
|
||
#### 3. **<2A><><EFBFBD>航<EFBFBD>蝘餅<E89D98><E9A485>穿<EFBFBD><E7A9BF>踹<EFBFBD>"隞亙<E99A9E><E4BA99>滚<EFBFBD><E6BB9A>墧䔉"<22><>萅<EFBFBD>梧<EFBFBD>**
|
||
|
||
```
|
||
RAG 蝟餌<E89D9F>餈<EFBFBD>宏<EFBFBD><E5AE8F><EFBFBD><EFBFBD><EFBFBD>漲嚗? 1. <20><>﹝鋡怠<E98BA1><E680A0>?(Chunking)
|
||
2. <20><><EFBFBD>鋡怠<E98BA1><E680A0>誩<EFBFBD> (Embedding)
|
||
3. 摮睃<E691AE><E79D83>煾<EFBFBD><E785BE>唳旿摨?(Weaviate/Qdrant)
|
||
4. Dify 鈭烐<E988AD><E78390>∠<EFBFBD><E288A0>煾<EFBFBD><E785BE>唳旿敺<E697BF>𠗕<EFBFBD>䭾<EFBFBD>撖澆枂
|
||
```
|
||
|
||
**<2A>擧<EFBFBD>**嚗? 銝芣<E98A9D><E88AA3>擧<EFBFBD><E693A7><EFBFBD><EFBFBD><EFBFBD>芸遣嚗<E981A3>虾<EFBFBD>賡𢒰銝湔<E98A9D><E6B994>厩䰻霂<E4B0BB><E99C82><EFBFBD><EFBFBD>閬<EFBFBD><E996AC><EFBFBD>唬<EFBFBD>隡𨬭<E99AA1><F0A8ACAD><EFBFBD><EFBFBD>啗圾<E59597>僐<EFBFBD><E58390><EFBFBD><EFBFBD>啣<EFBFBD><E595A3>?
|
||
#### 4. **蝵𤑳<E89DB5><F0A491B3>扯<EFBFBD>銝擧<E98A9D><E693A7>?*
|
||
|
||
| 頝臬<E9A09D>撖寞<E69296> | Dify 鈭烐<E988AD><E78390>?| ECS <20>芸遣 |
|
||
|---------|-----------|---------|
|
||
| 蝵𤑳<E89DB5>頝臬<E9A09D> | SAE <20>?<3F>祉<EFBFBD> <20>?Dify <20>?<3F>祉<EFBFBD> <20>?SAE | SAE <20>?<3F>輸<EFBFBD>鈭穃<E988AD>蝵?VPC) <20>?ECS |
|
||
| 撱嗆𧒄 | 100-300ms | 1-5ms |
|
||
| 瘚<><E7989A><EFBFBD>鞉𧋦 | 瘨<><E798A8>堒<EFBFBD>蝵穃蒂摰?| <20><><EFBFBD><EFBFBD>滩晶 |
|
||
| 憭扳<E686AD>隞嗅<E99A9E><E59785>?| <20>V<EFBFBD>銝滨迅摰?| 瘥怎<E798A5>蝥批<E89DA5>摨?|
|
||
|
||
**敶勗<E695B6><E58B97>箸艶**嚗?- PKB 璅∪<E79285><E288AA><EFBFBD>鸌<EFBFBD>𤩺<EFBFBD>獢<EFBFBD><E78DA2>隡?- ASL 璅∪<E79285><E288AA><EFBFBD>楛摨阡<E691A8>霂?(Deep Read)
|
||
- 憭折<E686AD><E68A98><EFBFBD>﹝<EFBFBD><EFB99D><EFBFBD><EFBFBD>誩<EFBFBD>憭<EFBFBD><E686AD>
|
||
|
||
---
|
||
|
||
## <20>函蔡<E587BD>嗆<EFBFBD><E59786>?
|
||
```
|
||
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F>? <20>輸<EFBFBD>鈭?VPC (<28>䔶<EFBFBD><E494B6>箏<EFBFBD>) <20>?<3F>? <20>?<3F>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>?<3F>? <20>? SAE (<28>𡒊垢) <20>?<3F>𣂼<EFBFBD>蝵爗<E89DB5> <20>? ECS (Dify <20>滚𦛚) <20>? <20>?<3F>? <20>? <20>? <20>? <20>? <20>?<3F>? <20>? Node.js <20>? <20>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>? <20>?<3F>? <20>? Backend <20>? <20>? <20>? Docker Compose: <20>? <20>? <20>?<3F>? <20>? <20>? <20>? <20>? - Dify API <20>? <20>? <20>?<3F>? <20>? <20>? <20>? <20>? - Weaviate (<28>煾<EFBFBD>DB) <20>? <20>? <20>?<3F>? <20>? <20>? <20>? <20>? - Nginx (<28>滚<EFBFBD>隞<EFBFBD><E99A9E>) <20>? <20>? <20>?<3F>? <20>? <20>? <20>? <20>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>? <20>?<3F>? <20>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>?<3F>? <20>? <20>?<3F>? <20>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? RDS PostgreSQL 15 <20>?<3F>? (<28>曹澈<E69BB9>唳旿摨? <20>?<3F>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?```
|
||
|
||
**<2A>喲睸<E596B2>?*嚗?- SAE <20>?ECS 敹<>◆<EFBFBD>典<EFBFBD>銝<EFBFBD>銝?VPC嚗<43><E59A97>蝵煾<E89DB5>帋縑嚗?- Dify <20>?PostgreSQL <20>唳旿摨枏虾隞亙<E99A9E><E4BA99>𡒊垢<F0A1928A>梁鍂<E6A281>䔶<EFBFBD>銝?RDS 摰硺<E691B0>嚗<EFBFBD><E59A97><EFBFBD>?Schema嚗?- <20>煾<EFBFBD><E785BE>唳旿摨?Weaviate 餈鞱<E9A488><E99EB1>?ECS <20>?Docker 銝?
|
||
---
|
||
|
||
## <20>滨蔭<E6BBA8><E894AD><EFBFBD>皜<EFBFBD><E79A9C>
|
||
|
||
### <20>?敹<><E695B9>韏<EFBFBD><E99F8F>
|
||
|
||
| 韏<><E99F8F>蝐餃<E89D90> | <20>滨蔭撱箄悅 | 憸<>摯韐寧鍂 | <20>券<EFBFBD>?|
|
||
|---------|---------|---------|-----|
|
||
| **ECS <20>滚𦛚<E6BB9A>?* | 2<>?G / 蝟餌<E89D9F><E9A48C>?0GB / <20>唳旿<E594B3>?00GB | ~200<30>?<3F>?| 餈鞱<E9A488> Dify + Weaviate |
|
||
| **RDS PostgreSQL** | 撌脫<E6928C>嚗<EFBFBD><E59A97><EFBFBD>剁<EFBFBD> | 0<><30><EFBFBD>憓鮋<E68693>嚗?| Dify <20><>㺭<EFBFBD>桀<EFBFBD><E6A180>?|
|
||
| **OSS 摮睃<E691AE>** | 撌脫<E6928C>嚗<EFBFBD><E59A97><EFBFBD>剁<EFBFBD> | <20>厰<EFBFBD>霈∟晶 | <20><>﹝摮睃<E691AE> |
|
||
| **VPC 蝵𤑳<E89DB5>** | 撌脫<E6928C>嚗𠄎AE<41><45><EFBFBD>汲PC嚗?| 0<>?| <20><><EFBFBD><EFBFBD>帋縑 |
|
||
|
||
### <20>?頧臭辣<E887AD><E8BEA3><EFBFBD>
|
||
|
||
```bash
|
||
# <20>砍𧑐撘<F0A79190><E69298>烐㦤<E78390>券<EFBFBD>閬<EFBFBD><E996AC>鋆<EFBFBD><E98B86><EFBFBD>其<EFBFBD><E585B6>券<EFBFBD><E588B8><EFBFBD><EFBFBD>𧶏<EFBFBD>
|
||
- Docker Desktop
|
||
- <20>輸<EFBFBD>鈭?CLI嚗<49>虾<EFBFBD>㚁<EFBFBD>
|
||
|
||
# ECS <20>滚𦛚<E6BB9A>券<EFBFBD>閬<EFBFBD><E996AC>鋆<EFBFBD><E98B86>餈𦦵<E9A488><F0A6A6B5>扯<EFBFBD>嚗?- Docker Engine
|
||
- Docker Compose
|
||
```
|
||
|
||
### <20>?韐血噡銝擧<E98A9D><E693A7>?
|
||
- <20>輸<EFBFBD>鈭𤏸揭<F0A48FB8>瘀<EFBFBD>撌脫<E6928C>嚗?- ECS <20>餃<EFBFBD><E9A483>剛<EFBFBD>嚗𠄎SH撖<48>𤨎撖對<E69296>
|
||
- Docker <20>𨅯<EFBFBD>隞枏<E99A9E>嚗<EFBFBD>燵<EFBFBD>䔶<EFBFBD>摰孵膥<E5ADB5>𨅯<EFBFBD><F0A885AF>滚𦛚 ACR嚗?
|
||
---
|
||
|
||
## ECS <20>滚𦛚<E6BB9A>券<EFBFBD>蝵?
|
||
### 甇仿炊 1嚗朞揚銋?ECS 摰硺<E691B0>
|
||
|
||
1. **<2A>餃<EFBFBD><E9A483>輸<EFBFBD>鈭烐綉<E78390>嗅蝱** <20>?**鈭烐<E988AD><E78390>∪膥 ECS** <20>?**<2A>𥕦遣摰硺<E691B0>**
|
||
|
||
2. **<2A>箇<EFBFBD><E7AE87>滨蔭**嚗? ```
|
||
<20>啣<EFBFBD><E595A3><EFBFBD>虾<EFBFBD>典躹: 銝?SAE <20>詨<EFBFBD>嚗<EFBFBD><E59A97>嚗𡁜<E59A97>銝?-<2D>剖<EFBFBD>嚗? 摰硺<E691B0>閫<EFBFBD>聢: ecs.t6-c1m2.large (2<>?G)
|
||
<20>𨅯<EFBFBD>: Ubuntu 22.04 LTS 64雿? 摮睃<E691AE>:
|
||
- 蝟餌<E89D9F><E9A48C>? ESSD鈭𤑳<E988AD> 40GB
|
||
- <20>唳旿<E594B3>? ESSD鈭𤑳<E988AD> 100GB (<28><>蝸<EFBFBD>?/data)
|
||
```
|
||
|
||
3. **蝵𤑳<E89DB5><F0A491B3>滨蔭**嚗? ```
|
||
銝𤘪<E98A9D>蝵𤑳<E89DB5> VPC: <20>㗇𥋘 SAE <20><><EFBFBD>函<EFBFBD> VPC
|
||
摰匧<E691B0>蝏? <20>𥕦遣<F0A595A6>啣<EFBFBD><E595A3>函<EFBFBD>嚗屸<E59A97>蝵桀<E89DB5><E6A180>孵<EFBFBD>閫<EFBFBD><E996AB>嚗<EFBFBD><E59A97>儭?摰匧<E691B0>蝥Y瑪嚗㚁<E59A97>
|
||
<20>?<3F><>捂 22/TCP <20>交<EFBFBD>嚗𡁏<E59A97><F0A1818F><EFBFBD><EFBFBD><EFBFBD>砍恕<E7A08D>祉<EFBFBD>IP # SSH蝞∠<E89D9E>
|
||
<20>?<3F><>捂 80/TCP <20>交<EFBFBD>嚗?72.17.0.0/16 # Nginx嚗ĀPC<50><43><EFBFBD>霈輸䔮嚗? <20>?<3F>垍<EFBFBD> 5000/TCP <20>交<EFBFBD>嚗?.0.0.0/0 # Dify API蝳<49>迫<EFBFBD>祉<EFBFBD>霈輸䔮
|
||
<20>?<3F>垍<EFBFBD> 6379/TCP <20>交<EFBFBD>嚗?.0.0.0/0 # Redis蝳<73>迫<EFBFBD>祉<EFBFBD>霈輸䔮
|
||
<20>?<3F>垍<EFBFBD> 8080/TCP <20>交<EFBFBD>嚗?.0.0.0/0 # Weaviate蝳<65>迫<EFBFBD>祉<EFBFBD>霈輸䔮
|
||
<20>?<3F>垍<EFBFBD> <20><><EFBFBD>? <20>交<EFBFBD>嚗?.0.0.0/0 # 暺䁅恕<E48185>垍<EFBFBD>
|
||
<20>祉<EFBFBD>IP: <20><><EFBFBD><EFBFBD>祉<EFBFBD>IPv4<76>啣<EFBFBD>嚗<EFBFBD>鍂鈭燑SH<53>餃<EFBFBD><E9A483>屸<EFBFBD><E5B1B8>譍<EFBFBD>頧踝<E9A0A7>
|
||
|
||
<20>𩤃<EFBFBD> 摰匧<E691B0>霅血<E99C85>嚗? - Dify API (5000)<29><>edis (6379)<29><>eaviate (8080) 蝏嘥笆銝滩<E98A9D>撖孵<E69296>蝵穃<E89DB5><E7A983>? - <20>芸<EFBFBD>霈禽PC<50><43><EFBFBD>霈輸䔮嚗?72.17.0.0/16嚗? - 蝡臬藁蝏穃<E89D8F><E7A983>?127.0.0.1嚗<EFBFBD><EFBFBD>docker-compose.yaml<6D>滨蔭嚗? ```
|
||
|
||
4. **蝟餌<E89D9F><E9A48C>滨蔭**嚗? ```
|
||
<20>餃<EFBFBD><E9A483>剛<EFBFBD>: 雿輻鍂撖<E98D82>𤨎撖對<E69296><E5B08D>刻<EFBFBD>嚗㗇<E59A97>撖<EFBFBD><E69296>
|
||
摰硺<E691B0><E7A1BA>滨妍: dify-ecs-prod
|
||
```
|
||
|
||
### 甇仿炊 2嚗朞<E59A97><E69C9E>亙<EFBFBD> ECS
|
||
|
||
```bash
|
||
# Windows <20>冽<EFBFBD>雿輻鍂 PowerShell <20>?Git Bash
|
||
ssh -i "your-key.pem" root@<ECS<43>祉<EFBFBD>IP>
|
||
|
||
# 擐𡝗活<F0A19D97>餃<EFBFBD><E9A483>𠬍<EFBFBD><F0A0AC8D>湔鰵蝟餌<E89D9F>
|
||
apt update && apt upgrade -y
|
||
```
|
||
|
||
### 甇仿炊 3嚗𡁏<E59A97>頧賣㺭<E8B3A3>桃<EFBFBD>
|
||
|
||
```bash
|
||
# <20>亦<EFBFBD>蝤<EFBFBD><E89DA4>
|
||
lsblk
|
||
|
||
# <20>澆<EFBFBD><E6BE86>𡝗㺭<F0A19D97>桃<EFBFBD>嚗<EFBFBD><E59A97>霈曆蛹 /dev/vdb嚗?mkfs.ext4 /dev/vdb
|
||
|
||
# <20>𥕦遣<F0A595A6><E981A3>蝸<EFBFBD>?mkdir -p /data
|
||
|
||
# <20><>蝸
|
||
mount /dev/vdb /data
|
||
|
||
# 霈曄蔭撘<E894AD><E69298>箄䌊<E7AE84>冽<EFBFBD>頧?echo '/dev/vdb /data ext4 defaults 0 0' >> /etc/fstab
|
||
|
||
# 撉諹<E69289>
|
||
df -h
|
||
```
|
||
|
||
### 甇仿炊 4嚗𡁻<E59A97>蝵?Swap <20><>躹嚗<E8BAB9><E59A97><EFBFBD>殷<EFBFBD><E6AEB7>踹<EFBFBD> OOM嚗?
|
||
**銝箔<E98A9D>銋<EFBFBD><E98A8B>憿駁<E686BF>蝵?Swap嚗?*
|
||
- <20>函<EFBFBD> ECS <20>?2<>?G <20><><EFBFBD>
|
||
- Dify <20>典振獢塚<E78DA2>API+Worker+Web+Redis+Weaviate+Nginx嚗厩征頧賢停<E8B3A2><E5819C>閬?3GB+
|
||
- <20>劐犖銝𠹺<E98A9D>憭扳<E686AD>隞嗆<E99A9E>餈𥡝<E9A488><F0A5A19D>煾<EFBFBD>璉<EFBFBD>蝝X𧒄嚗峕<E59A97><E5B395>枏<EFBFBD><E69E8F>?OOM嚗<4D><E59A97>摮䀹滯<E480B9>綽<EFBFBD>撏拇<E6928F>
|
||
- Swap <20>臬<EFBFBD>摮条<E691AE>"<22>𤑳<EFBFBD><F0A491B3>?嚗<><E59A97><EFBFBD>格𧒄<E6A0BC>餉<EFBFBD>靽肽<E99DBD><E882BD>滚𦛚銝滚援皞?
|
||
```bash
|
||
# <20>𥕦遣 4GB Swap <20><>躹
|
||
fallocate -l 4G /swapfile
|
||
|
||
# 霈曄蔭<E69B84><E894AD><EFBFBD>嚗<EFBFBD><E59A97>憿餅糓 600嚗<30>炏<EFBFBD>嗘<EFBFBD>摰匧<E691B0>嚗?chmod 600 /swapfile
|
||
|
||
# <20>澆<EFBFBD><E6BE86>碶蛹 Swap
|
||
mkswap /swapfile
|
||
|
||
# <20>舐鍂 Swap
|
||
swapon /swapfile
|
||
|
||
# 霈曄蔭撘<E894AD><E69298>箄䌊<E7AE84>冽<EFBFBD>頧?echo '/swapfile none swap sw 0 0' >> /etc/fstab
|
||
|
||
# 撉諹<E69289> Swap 撌脣鍳<E884A3>?free -h
|
||
# 摨磰砲<E7A3B0>见<EFBFBD> Swap 銝<>銵峕遬蝷?4GB
|
||
|
||
# 隡睃<E99AA1> Swap 雿輻鍂蝑𣇉裦嚗<E8A3A6>虾<EFBFBD>㚁<EFBFBD>
|
||
# swappiness=10 銵函內撠賡<E692A0>雿輻鍂<E8BCBB>拍<EFBFBD><E68B8D><EFBFBD><EFBFBD>嚗<EFBFBD>蘨<EFBFBD>典<EFBFBD>閬<EFBFBD>𧒄<EFBFBD>?Swap
|
||
echo 'vm.swappiness=10' >> /etc/sysctl.conf
|
||
sysctl -p
|
||
```
|
||
|
||
### 甇仿炊 5嚗𡁜<E59A97>鋆?Docker
|
||
|
||
```bash
|
||
# 1. <20>貉蝸<E8B289>抒<EFBFBD><E68A92>穿<EFBFBD>憒<EFBFBD><E68692><EFBFBD>㚁<EFBFBD>
|
||
apt remove docker docker-engine docker.io containerd runc
|
||
|
||
# 2. 摰㕑<E691B0>靘肽<E99D98>
|
||
apt install -y ca-certificates curl gnupg lsb-release
|
||
|
||
# 3. 瘛餃<E7989B> Docker 摰䀹䲮 GPG key
|
||
mkdir -p /etc/apt/keyrings
|
||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||
|
||
# 4. 霈曄蔭 Docker 隞枏<E99A9E>
|
||
echo \
|
||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
|
||
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||
|
||
# 5. 摰㕑<E691B0> Docker Engine
|
||
apt update
|
||
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||
|
||
# 6. <20>臬𢆡 Docker
|
||
systemctl start docker
|
||
systemctl enable docker
|
||
|
||
# 7. 撉諹<E69289>摰㕑<E691B0>
|
||
docker --version
|
||
docker compose version
|
||
```
|
||
|
||
### 甇仿炊 6嚗𡁻<E59A97>蝵?Docker <20>𨅯<EFBFBD><F0A885AF>𣳇<EFBFBD><F0A3B387><EFBFBD><EFBFBD>舫<EFBFBD>劐<EFBFBD><E58A90>刻<EFBFBD>嚗?
|
||
```bash
|
||
# <20>輸<EFBFBD>鈭煾<E988AD><E785BE>誩<EFBFBD><E8AAA9>笔膥嚗<E886A5>蒈敶閖燵<E99696>䔶<EFBFBD><E494B6>批<EFBFBD><E689B9>啗繮<E59597>碶<EFBFBD>撅𧼮𧑐<F0A7BCAE><F0A79190>嚗?mkdir -p /etc/docker
|
||
cat > /etc/docker/daemon.json <<EOF
|
||
{
|
||
"registry-mirrors": ["https://<your-id>.mirror.aliyuncs.com"]
|
||
}
|
||
EOF
|
||
|
||
systemctl daemon-reload
|
||
systemctl restart docker
|
||
```
|
||
|
||
---
|
||
|
||
## 摰㕑<E691B0>甇仿炊
|
||
|
||
### 甇仿炊 1嚗𡁜<E59A97>憭?Dify <20>函蔡<E587BD>桀<EFBFBD>
|
||
|
||
```bash
|
||
# <20>?ECS 銝𠰴<E98A9D>撱箇𤌍敶?mkdir -p /data/dify
|
||
cd /data/dify
|
||
|
||
# <20>钅<EFBFBD> Dify 摰䀹䲮隞枏<E99A9E>嚗<EFBFBD>蝙<EFBFBD>函迅摰𡁶<E691B0><F0A181B6>穿<EFBFBD>
|
||
git clone https://github.com/langgenius/dify.git
|
||
cd dify
|
||
|
||
# <20><>揢<EFBFBD>啁迅摰𡁶<E691B0><F0A181B6>穿<EFBFBD>撱箄悅雿輻鍂<E8BCBB><E98D82><EFBFBD>啁<EFBFBD> release <20><>𧋦嚗?git checkout tags/0.11.2 # <20>踵揢銝箸<E98A9D><E7AEB8>啁迅摰𡁶<E691B0><F0A181B6>?
|
||
# 餈𥕦<E9A488> docker <20>桀<EFBFBD>
|
||
cd docker
|
||
|
||
# <20>𩤃<EFBFBD> <20>滩<EFBFBD>嚗帋蝙<E5B88B>典<EFBFBD><E585B8>寧<EFBFBD> docker-compose.yaml
|
||
# 銝滩<E98A9D><E6BBA9>芸楛<E88AB8>见<EFBFBD><E8A781>硋之撟<E4B98B><E6929F><EFBFBD>𧶏<EFBFBD>摰䀹䲮<E480B9>滨蔭<E6BBA8><E894AD>鉄鈭<E98984><E988AD><EFBFBD>渡<EFBFBD><E6B8A1>滚𦛚嚗<F0A69B9A>鉄 Nginx 蝵穃<E89DB5>嚗?```
|
||
|
||
### 甇仿炊 2嚗𡁻<E59A97>蝵桃㴓憓<E3B493><E68693><EFBFBD>?
|
||
```bash
|
||
# 憭滚<E686AD><E6BB9A>滨蔭璅⊥踎
|
||
cp .env.example .env
|
||
|
||
# 蝻𤥁<E89DBB><F0A4A581>滨蔭<E6BBA8><E894AD>辣
|
||
nano .env
|
||
```
|
||
|
||
**<2A>喲睸<E596B2>滨蔭憿?*嚗<><E59A97>憿颱耨<E9A2B1>對<EFBFBD>嚗?
|
||
```bash
|
||
# ========= <20>詨<EFBFBD><E8A9A8>滨蔭 =========
|
||
# 摰㕑<E691B0>璅∪<E79285>嚗窃elf-hosted嚗<64>䌊撱綽<E692B1>
|
||
INSTALL_MODE=self-hosted
|
||
|
||
# 撖<>𤨎嚗<F0A4A88E><E59A97>憿颱耨<E9A2B1>對<EFBFBD>雿輻鍂撘箏<E69298><E7AE8F><EFBFBD><EFBFBD>
|
||
SECRET_KEY=<<3C><><EFBFBD>銝<EFBFBD>銝芷<E98A9D><E88AB7>箏<EFBFBD>蝚虫葡嚗諹秐撠?2雿?
|
||
# <20><><EFBFBD><EFBFBD>寞<EFBFBD>嚗駅penssl rand -base64 32
|
||
|
||
# ========= <20>唳旿摨㯄<E691A8>蝵?=========
|
||
# 雿輻鍂<E8BCBB>輸<EFBFBD>鈭?RDS PostgreSQL
|
||
DB_TYPE=postgres
|
||
DB_HOST=<RDS<44><53><EFBFBD><EFBFBD>啣<EFBFBD>嚗<EFBFBD><E59A97>嚗鬏m-xxxx.pg.rds.aliyuncs.com>
|
||
DB_PORT=5432
|
||
DB_NAME=dify_prod
|
||
DB_USERNAME=dify_user
|
||
DB_PASSWORD=<your-password>
|
||
|
||
# 瘜冽<E7989C>嚗𡁻<E59A97>閬<EFBFBD>銁 RDS 銝剖<E98A9D>撱箏<E692B1><E7AE8F>祉<EFBFBD><E7A589>唳旿摨枏<E691A8><E69E8F>冽<EFBFBD>
|
||
# <20>扯<EFBFBD>嚗鋴REATE DATABASE dify_prod;
|
||
# CREATE USER dify_user WITH PASSWORD 'your-password';
|
||
# GRANT ALL PRIVILEGES ON DATABASE dify_prod TO dify_user;
|
||
|
||
# ========= Redis <20>滨蔭 =========
|
||
# Dify 敹<>◆雿輻鍂 Redis嚗<73><E59A97><EFBFBD>賜鍂 Postgres-Only嚗?# <20>𩤃<EFBFBD> <20>滩<EFBFBD>嚗𡁜銁 Docker Compose 蝵𤑳<E89DB5>銝哨<E98A9D>雿輻鍂<E8BCBB>滚𦛚<E6BB9A>滩<EFBFBD>䔶<EFBFBD><E494B6>?localhost嚗?REDIS_HOST=redis
|
||
REDIS_PORT=6379
|
||
REDIS_PASSWORD=<strong-password>
|
||
|
||
# ========= <20>煾<EFBFBD><E785BE>唳旿摨㯄<E691A8>蝵?=========
|
||
# 雿輻鍂 Weaviate嚗㇄ocker Compose <20>芸𢆡<E88AB8>臬𢆡嚗?VECTOR_STORE=weaviate
|
||
WEAVIATE_ENDPOINT=http://weaviate:8080
|
||
WEAVIATE_API_KEY=<<3C><><EFBFBD>銝<EFBFBD>銝芷<E98A9D><E88AB7>箏<EFBFBD>蝚虫葡>
|
||
|
||
# ========= 摮睃<E691AE><E79D83>滨蔭 =========
|
||
# 雿輻鍂<E8BCBB>輸<EFBFBD>鈭?OSS嚗<53>綫<EFBFBD>琜<EFBFBD>
|
||
STORAGE_TYPE=aliyun-oss
|
||
ALIYUN_OSS_BUCKET_NAME=<your-bucket-name>
|
||
ALIYUN_OSS_REGION=oss-cn-hangzhou
|
||
ALIYUN_OSS_ACCESS_KEY_ID=<your-access-key-id>
|
||
ALIYUN_OSS_ACCESS_KEY_SECRET=<your-access-key-secret>
|
||
|
||
# <20>碶蝙<E7A2B6>冽𧋦<E586BD>啣<EFBFBD><E595A3>剁<EFBFBD>銝齿綫<E9BDBF>琜<EFBFBD>
|
||
# STORAGE_TYPE=local
|
||
|
||
# ========= LLM <20>滨蔭 =========
|
||
# 暺䁅恕 LLM <20>𣂷<EFBFBD><F0A382B7><EFBFBD><EFBFBD><EFBFBD>典虾隞亙銁 Web UI 銝剜溶<E5899C>惩<EFBFBD>銝迎<E98A9D>
|
||
DEFAULT_LLM_PROVIDER=openai-api-compatible
|
||
|
||
# DeepSeek API嚗<49>內靘页<E99D98>
|
||
DEEPSEEK_API_KEY=<your-deepseek-api-key>
|
||
DEEPSEEK_API_BASE=https://api.deepseek.com/v1
|
||
|
||
# ========= API <20>滨蔭 =========
|
||
# API <20>滚𦛚<E6BB9A>啣<EFBFBD>嚗<EFBFBD><E59A97>蝵穃𧑐<E7A983><F0A79190>嚗?API_URL=http://<ECS<43><53><EFBFBD>IP>:5000
|
||
|
||
# Web <20>滚𦛚<E6BB9A>啣<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>𣈯<EFBFBD>閬<EFBFBD>挪<EFBFBD>?Dify Web UI嚗?WEB_API_URL=http://<ECS<43>祉<EFBFBD>IP>
|
||
WEB_URL=http://<ECS<43>祉<EFBFBD>IP>
|
||
|
||
# ========= <20>亙<EFBFBD><E4BA99>滨蔭 =========
|
||
LOG_LEVEL=INFO
|
||
LOG_FILE=/data/logs/dify.log
|
||
|
||
# ========= <20>嗡<EFBFBD><E597A1>滨蔭 =========
|
||
# <20>嗅躹
|
||
TZ=Asia/Shanghai
|
||
|
||
# <20>臬炏撘<E7828F><E69298>?Debug
|
||
DEBUG=false
|
||
```
|
||
|
||
### 甇仿炊 3嚗𡁏<E59A97><F0A1818F>?Docker Compose <20><>辣嚗<E8BEA3>遣霈桐蝙<E6A190>典<EFBFBD><E585B8>寥<EFBFBD>蝵殷<E89DB5>
|
||
|
||
```bash
|
||
# <20>𩤃<EFBFBD> 撘箇<E69298>撱箄悅嚗帋<E59A97>閬<EFBFBD><E996AC><EFBFBD>?docker-compose.yaml嚗?# <20>湔𦻖雿輻鍂摰䀹䲮<E480B9><E4B2AE>辣嚗<E8BEA3><E59A97><EFBFBD><EFBFBD>鉄鈭<E98984><E988AD><EFBFBD>渡<EFBFBD><E6B8A1>嗆<EFBFBD>嚗<EFBFBD>鉄 Nginx 蝵穃<E89DB5>嚗?
|
||
# <20>亦<EFBFBD>摰䀹䲮<E480B9>滨蔭
|
||
cat docker-compose.yaml
|
||
```
|
||
|
||
**摰䀹䲮<E480B9>嗆<EFBFBD><E59786><EFBFBD>鉄<EFBFBD><E98984><EFBFBD><EFBFBD>?*嚗?
|
||
```yaml
|
||
services:
|
||
# 1. nginx - <20>亙藁蝵穃<E89DB5>嚗<EFBFBD><E59A97><EFBFBD><EFBFBD>嚗<EFBFBD><E59A97>
|
||
# 雿𦦵鍂嚗朞楝<E69C9E>梯窈瘙<E7AA88><E79899> API <20>?Web嚗諹圾<E8ABB9>?CORS <20>桅<EFBFBD>
|
||
# /v1/* <20>?API <20>滚𦛚
|
||
# /* <20>?Web <20>滚𦛚
|
||
|
||
# 2. api - Dify API <20>滚𦛚
|
||
# 3. worker - <20>𤾸蝱隞餃𦛚憭<F0A69B9A><E686AD>
|
||
# 4. web - Web <20>滨垢<E6BBA8>屸𢒰
|
||
# 5. redis - 蝻枏<E89DBB><E69E8F>䔶遙<E494B6>⊿<EFBFBD><E28ABF>梹<EFBFBD>敹<EFBFBD><E695B9>嚗? # 6. weaviate - <20>煾<EFBFBD><E785BE>唳旿摨? # 7. sandbox - 隞<><E99A9E>閫<EFBFBD><E996AB><EFBFBD>剁<EFBFBD><E58981>舫<EFBFBD>㚁<EFBFBD>雿<EFBFBD>遣霈桐<E99C88><E6A190>辷<EFBFBD>
|
||
# 雿𦦵鍂嚗𡁜<E59A97><F0A1819C>𨅯銁 Dify 銝凋蝙<E5878B>?隞<><E99A9E>閫<EFBFBD><E996AB><EFBFBD>?<3F>蠘<EFBFBD>
|
||
|
||
# 憒<><E68692>雿惩<E99BBF><E683A9>支<EFBFBD> nginx嚗䔶<E59A97><E494B6><EFBFBD><EFBFBD>嚗? # - <20>滨垢霈輸䔮 API <20>?CORS 頝典<E9A09D><E585B8>躰秤
|
||
# - API 頝舐眏 404 <20>躰秤
|
||
|
||
# 憒<><E68692>雿惩<E99BBF><E683A9>支<EFBFBD> sandbox嚗䔶<E59A97><E494B6><EFBFBD><EFBFBD>嚗? # - "隞<><E99A9E>閫<EFBFBD><E996AB><EFBFBD>?<3F>蠘<EFBFBD><E8A098>仿<EFBFBD>
|
||
```
|
||
|
||
**隞<><E99A9E>靽格㺿<E6A0BC><E3BABF><EFBFBD><EFBFBD>?*嚗<><E59A97><EFBFBD>𨀣<EFBFBD><F0A880A3>寞<EFBFBD><E5AF9E><EFBFBD>瘙<EFBFBD><E79899>嚗?
|
||
```yaml
|
||
# <20>𩤃<EFBFBD> 摰匧<E691B0><E58CA7>滨蔭嚗𡁶垢<F0A181B6><E59EA2><EFBFBD>摰𡁜<E691B0><F0A1819C>砍𧑐嚗<F0A79190>俈甇W<E79487>蝵𤏸挪<F0A48FB8>殷<EFBFBD>
|
||
services:
|
||
redis:
|
||
ports:
|
||
- "127.0.0.1:6379:6379" # <20>𩤃<EFBFBD> <20>芰<EFBFBD><E88AB0>祆𧋦<E7A586>堆<EFBFBD>蝳<EFBFBD>迫<EFBFBD>祉<EFBFBD>霈輸䔮
|
||
|
||
weaviate:
|
||
ports:
|
||
- "127.0.0.1:8080:8080" # <20>𩤃<EFBFBD> <20>芰<EFBFBD><E88AB0>祆𧋦<E7A586>堆<EFBFBD>蝳<EFBFBD>迫<EFBFBD>祉<EFBFBD>霈輸䔮
|
||
|
||
# 蝷箔<E89DB7>嚗𡁜<E59A97><F0A1819C>𣈯<EFBFBD>閬<EFBFBD><E996AC>蝵𤏸挪<F0A48FB8>?Web UI嚗<49><E59A97>朞<EFBFBD>Nginx嚗? nginx:
|
||
ports:
|
||
- "80:80" # HTTP嚗<50><E59A97>霈禽PC<50><43><EFBFBD>霈輸䔮嚗? - "443:443" # HTTPS嚗<53><E59A97>閬<EFBFBD><E996AC>蝵株<E89DB5>銋佗<E98A8B>
|
||
```
|
||
|
||
**<2A>𩤃<EFBFBD> 摰匧<E691B0>蝥Y瑪嚗?*
|
||
```yaml
|
||
# <20>?蝏嘥笆蝳<E7AC86>迫嚗<E8BFAB><E59A97>鋡急𤫇<E680A5>鳴<EFBFBD>
|
||
services:
|
||
redis:
|
||
ports:
|
||
- "6379:6379" # <20>其<EFBFBD><E585B6><EFBFBD>虾霈輸䔮嚗朙edis<69>惩<EFBFBD><E683A9><EFBFBD><EFBFBD>鋡急<E98BA1>蝛?
|
||
weaviate:
|
||
ports:
|
||
- "8080:8080" # <20>煾<EFBFBD><E785BE>唳旿<E594B3>航<EFBFBD>鋡怎<E98BA1><E6808E>?
|
||
api:
|
||
ports:
|
||
- "5000:5000" # 暺穃恥<E7A983>舐<EFBFBD>餈<EFBFBD><E9A488>蝡舀<E89DA1><E88880>葲LM憸嘥漲
|
||
|
||
# <20>?甇<>&<EFBFBD>𡁏<EFBFBD>嚗𡁶<E59A97>摰𡁜<E691B0>127.0.0.1
|
||
services:
|
||
redis:
|
||
ports:
|
||
- "127.0.0.1:6379:6379" # <20>芾<EFBFBD><E88ABE>祆㦤霈輸䔮
|
||
```
|
||
|
||
**<2A>?<3F>躰秤<E8BAB0>𡁏<EFBFBD>**嚗?```yaml
|
||
# 銝滩<E98A9D><E6BBA9>惩<EFBFBD><E683A9>滚𦛚嚗<F0A69B9A>陘<EFBFBD>嗆糓 nginx
|
||
services:
|
||
api: ...
|
||
worker: ...
|
||
# <20>?蝻箏<E89DBB> nginx嚗<78><E59A97>撖潸稲<E6BDB8>滨垢<E6BBA8>䭾<EFBFBD>霈輸䔮 API嚗?```
|
||
|
||
**<2A>?甇<>&<EFBFBD>𡁏<EFBFBD>**嚗?```bash
|
||
# 靽脲<E99DBD>摰䀹䲮 docker-compose.yaml 銝滚<E98A9D>
|
||
# <20>芯耨<E88AAF>?.env <20>臬<EFBFBD><E887AC>㗛<EFBFBD>
|
||
# 憒<><E68692>蝖桀<E89D96><E6A180><EFBFBD>閬<EFBFBD><E996AC><EFBFBD>湛<EFBFBD><E6B99B>芣溶<E88AA3>删垢<E588A0><E59EA2><EFBFBD>撠<EFBFBD><E692A0><EFBFBD>惩拿<E683A9>滨蔭
|
||
```
|
||
|
||
### 甇仿炊 4嚗𡁜<E59A97>撱箏<E692B1><E7AE8F><EFBFBD><EFBFBD>桀<EFBFBD>
|
||
|
||
```bash
|
||
mkdir -p /data/dify/storage
|
||
mkdir -p /data/dify/logs
|
||
mkdir -p /data/dify/redis
|
||
mkdir -p /data/dify/weaviate
|
||
|
||
# 霈曄蔭<E69B84><E894AD><EFBFBD>
|
||
chmod -R 755 /data/dify
|
||
```
|
||
|
||
### 甇仿炊 5嚗𡁜<E59A97>憪见<E686AA><E8A781>唳旿摨?
|
||
```bash
|
||
# <20>?RDS 銝剖<E98A9D>撱?Dify <20>唳旿摨橒<E691A8>雿輻鍂 psql <20>?DBeaver嚗?# 餈墧𦻖<E5A2A7>?RDS
|
||
psql -h <RDS<44><53><EFBFBD><EFBFBD>啣<EFBFBD>> -U postgres -d postgres
|
||
|
||
# <20>扯<EFBFBD>
|
||
CREATE DATABASE dify_prod;
|
||
CREATE USER dify_user WITH PASSWORD 'your-password';
|
||
GRANT ALL PRIVILEGES ON DATABASE dify_prod TO dify_user;
|
||
\q
|
||
```
|
||
|
||
---
|
||
|
||
## <20>臬𢆡銝𡡞<E98A9D>霂?
|
||
### 甇仿炊 1嚗𡁜鍳<F0A1819C>?Dify <20>滚𦛚
|
||
|
||
```bash
|
||
cd /data/dify/docker
|
||
|
||
# <20>匧<EFBFBD><E58CA7>𨅯<EFBFBD>嚗<EFBFBD><E59A97>甈∟<E79488>銵䕘<E98AB5>
|
||
docker compose pull
|
||
|
||
# <20>臬𢆡<E887AC>滚𦛚嚗<F0A69B9A><E59A97><EFBFBD>啗<EFBFBD>銵䕘<E98AB5>
|
||
docker compose up -d
|
||
|
||
# <20>亦<EFBFBD><E4BAA6>亙<EFBFBD>
|
||
docker compose logs -f api
|
||
|
||
# 蝑匧<E89D91><E58CA7>滚𦛚<E6BB9A>臬𢆡嚗<F0A286A1>漲30蝘𡜐<E89D98>
|
||
```
|
||
|
||
### 甇仿炊 2嚗𡁻<E59A97>霂<EFBFBD><E99C82><EFBFBD>∠𠶖<E288A0>?
|
||
```bash
|
||
# 1. 璉<><E79289>亙捆<E4BA99>函𠶖<E587BD>?docker compose ps
|
||
|
||
# 摨磰砲<E7A3B0>见<EFBFBD>隞乩<E99A9E>摰孵膥<E5ADB5>賣糓 Up <20>嗆<EFBFBD><E59786><EFBFBD>
|
||
# - dify-api
|
||
# - dify-worker
|
||
# - dify-web (憒<><E68692><EFBFBD>舐鍂)
|
||
# - redis
|
||
# - weaviate
|
||
|
||
# 2. 璉<><E79289>?API <20>亙熒<E4BA99>嗆<EFBFBD>?curl http://localhost:5000/health
|
||
|
||
# <20><><EFBFBD>餈𥪜<E9A488>: {"status": "healthy"}
|
||
|
||
# 3. 璉<><E79289>?Weaviate <20>嗆<EFBFBD>?curl http://localhost:8080/v1/meta
|
||
|
||
# <20><><EFBFBD>餈𥪜<E9A488>: JSON <20>澆<EFBFBD><E6BE86><EFBFBD><EFBFBD><EFBFBD>唳旿
|
||
```
|
||
|
||
### 甇仿炊 3嚗𡁏<E59A97>霂訫<E99C82>蝵𤏸<E89DB5><F0A48FB8>𡁏<EFBFBD>?
|
||
```bash
|
||
# <20>?SAE <20>𡒊垢<F0A1928A>滚𦛚銝剜<E98A9D>霂𤏪<E99C82><F0A48FAA>硋銁<E7A18B>砍𧑐<E7A08D>朞<EFBFBD> VPN 餈墧𦻖<E5A2A7>?VPC嚗?curl http://<ECS<43><53><EFBFBD>IP>:5000/health
|
||
|
||
# 憒<><E68692>餈𥪜<E9A488> {"status": "healthy"}嚗諹秩<E8ABB9>𤾸<EFBFBD>蝵𤏸<E89DB5><F0A48FB8>𡁏迤撣?```
|
||
|
||
### 甇仿炊 4嚗𡁜<E59A97>憪见<E686AA> Dify嚗<79><E59A97>甈⊿<E79488>蝵莎<E89DB5>
|
||
|
||
1. **霈輸䔮 Dify Web UI**嚗<><E59A97><EFBFBD>𨅯鍳<F0A885AF>剁<EFBFBD>嚗? ```
|
||
http://<ECS<43>祉<EFBFBD>IP>
|
||
```
|
||
|
||
2. **<2A>𥕦遣蝞∠<E89D9E><E288A0>䁅揭<E48185>?*嚗? - <20>桃拳嚗惨dmin@your-domain.com
|
||
- 撖<><E69296>嚗?strong-password>
|
||
|
||
3. **<2A>滨蔭 LLM <20>𣂷<EFBFBD><F0A382B7>?*嚗? - 餈𥕦<E9A488> "霈曄蔭" <20>?"璅∪<E79285><E288AA>𣂷<EFBFBD><F0A382B7>?
|
||
- 瘛餃<E7989B> DeepSeek/Qwen 蝑?API Key
|
||
|
||
### 甇仿炊 5嚗𡁻<E59A97>蝵桀<E89DB5>蝡舐㴓憓<E3B493><E68693><EFBFBD>?
|
||
<EFBFBD>?SAE <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A><F0A69B9A>㴓憓<E3B493><E68693><EFBFBD>譍葉瘛餃<E7989B>嚗?
|
||
```bash
|
||
# Dify API <20>滨蔭
|
||
DIFY_API_BASE=http://<ECS<43><53><EFBFBD>IP>:5000
|
||
DIFY_API_KEY=<隞?Dify Web UI 銝剛繮<E5899B>?
|
||
|
||
# <20>瑕<EFBFBD> API Key <20><>䲮瘜𤏪<E7989C>
|
||
# Dify Web UI <20>?霈曄蔭 <20>?API Keys <20>?<3F>𥕦遣<F0A595A6>啣<EFBFBD><E595A3>?```
|
||
|
||
---
|
||
|
||
## <20>滨蔭霂湔<E99C82>
|
||
|
||
### <20>圲 摮睃<E691AE><E79D83>滨蔭霂西圾
|
||
|
||
#### <20>厰★ 1嚗𡁻燵<F0A181BB>䔶<EFBFBD> OSS嚗<53>綫<EFBFBD>琜<EFBFBD>
|
||
|
||
**隡睃飵**嚗?- <20>𣳇<EFBFBD><F0A3B387>拙<EFBFBD>
|
||
- 擃睃虾<E79D83>剁<EFBFBD>99.9%嚗?- 銝?SAE <20><><EFBFBD><EFBFBD>帋縑嚗屸<E59A97>笔漲敹?
|
||
**<2A>滨蔭**嚗?```bash
|
||
STORAGE_TYPE=aliyun-oss
|
||
ALIYUN_OSS_BUCKET_NAME=your-bucket-name
|
||
ALIYUN_OSS_REGION=oss-cn-hangzhou
|
||
ALIYUN_OSS_ACCESS_KEY_ID=<your-id>
|
||
ALIYUN_OSS_ACCESS_KEY_SECRET=<your-secret>
|
||
```
|
||
|
||
**瘜冽<E7989C>**嚗?- OSS Bucket 敹<>◆<EFBFBD>?ECS <20>典<EFBFBD>銝<EFBFBD><E98A9D>箏<EFBFBD>
|
||
- 撱箄悅雿輻鍂<E8BCBB><E98D82><EFBFBD> Endpoint嚗<74><E59A97>嚗駅ss-cn-hangzhou-internal.aliyuncs.com嚗?- 霈曄蔭<E69B84><E894AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>賢𪂹<E8B3A2>蠘<EFBFBD><E8A098>辷<EFBFBD>憒<EFBFBD><E68692>30憭拙<E686AD>頧砍<E9A0A7>摮睃<E691AE>嚗?
|
||
#### <20>厰★ 2嚗𡁏𧋦<F0A1818F>啣<EFBFBD><E595A3>剁<EFBFBD>銝齿綫<E9BDBF>琜<EFBFBD>
|
||
|
||
**蝻箇<E89DBB>**嚗?- 蝤<><E89DA4>蝛粹𡢿<E7B2B9>厰<EFBFBD>
|
||
- <20>䭾<EFBFBD>璅芸<E79285><E88AB8>拙<EFBFBD>
|
||
- <20>唳旿憭<E697BF>遢暻餌<E69ABB>
|
||
|
||
**隞<><E99A9E><EFBFBD>鍂鈭?*嚗𡁏<E59A97>霂閧㴓憓<E3B493><E68693>撠讛<E692A0>璅⊿<E79285>蝵?
|
||
### <20>圲 <20>唳旿摨㯄<E691A8>蝵株祕閫?
|
||
#### Dify <20>唳旿摨㮖<E691A8><E3AE96>𡒊垢<F0A1928A>唳旿摨枏<E691A8>蝳?
|
||
```
|
||
RDS PostgreSQL 摰硺<E691B0>
|
||
<EFBFBD>鎿<EFBFBD> <20>唳旿摨?1: clinical_research (<28>𡒊垢銝餅㺭<E9A485>桀<EFBFBD>)
|
||
<EFBFBD>? <20>鎿<EFBFBD> Schema: platform_schema
|
||
<EFBFBD>? <20>鎿<EFBFBD> Schema: asl_schema
|
||
<EFBFBD>? <20>鎿<EFBFBD> Schema: dc_schema
|
||
<EFBFBD>? <20>婙<EFBFBD> ...
|
||
<EFBFBD>婙<EFBFBD> <20>唳旿摨?2: dify_prod (Dify <20>唳旿摨?
|
||
<20>鎿<EFBFBD> Schema: public
|
||
<20>婙<EFBFBD> ...
|
||
```
|
||
|
||
**隡睃飵**嚗?- <20>唳旿<E594B3>𠉛氖嚗<E6B096><E59A97><EFBFBD>剁<EFBFBD>
|
||
- <20>祉<EFBFBD>憭<EFBFBD>遢蝑𣇉裦
|
||
- <20>踹<EFBFBD>韏<EFBFBD><E99F8F>蝡硺<E89DA1>
|
||
|
||
**餈墧𦻖瘙𣳇<E79899>蝵?*嚗?```bash
|
||
# Dify <20><><EFBFBD><EFBFBD>交<EFBFBD>颲<EFBFBD><E9A2B2>嚗<EFBFBD><E59A97>銝箏<E98A9D>甇乩遙<E4B9A9>∪<EFBFBD>嚗?DB_MAX_CONNECTIONS=20
|
||
```
|
||
|
||
### <20>圲 Redis <20>滨蔭霂湔<E99C82>
|
||
|
||
**銝箔<E98A9D>銋?Dify 敹<>◆<EFBFBD>?Redis嚗?*
|
||
- Dify <20><>遙<EFBFBD>⊿<EFBFBD><E28ABF>𦯀<EFBFBD>韏?Redis嚗㇃elery嚗?- <20>剜<EFBFBD>蝻枏<E89DBB>嚗<EFBFBD><E59A97>嚗鋫PI <20>鞉<EFBFBD>嚗?- 銝滩<E98A9D><E6BBA9>?PostgreSQL <20>蹂誨嚗<E8AAA8><E59A97><EFBFBD>函<EFBFBD><E587BD>𡒊垢 Postgres-Only <20>嗆<EFBFBD>銝滚<E98A9D>嚗?
|
||
**<2A>喲睸<E596B2>滨蔭嚗<E894AD><E59A97><EFBFBD>滩<EFBFBD><E6BBA9>亙仃韐伐<E99F90>**嚗?```bash
|
||
# <20>𩤃<EFBFBD> <20>游𦶢<E6B8B8>躰秤霅血<E99C85>嚗?# <20>?.env 銝哨<E98A9D>REDIS_HOST 敹<>◆霈曄蔭銝箸<E98A9D><E7AEB8>∪<EFBFBD> "redis"
|
||
# 銝齿糓 "localhost"嚗?
|
||
# <20>?<3F>躰秤<E8BAB0>蹱<EFBFBD>嚗<EFBFBD><E59A97>撖潸稲 API <20>䭾<EFBFBD><E4ADBE>臬𢆡嚗?REDIS_HOST=localhost
|
||
|
||
# <20>?甇<>&<EFBFBD>蹱<EFBFBD>嚗㇄ocker Compose 蝵𤑳<E89DB5>銝凋蝙<E5878B>冽<EFBFBD><E586BD>∪<EFBFBD>嚗?REDIS_HOST=redis
|
||
|
||
# <20>毺<EFBFBD>嚗?# - <20>?Docker Compose 銝哨<E98A9D>摰孵膥銋钅𡢿<E99285>朞<EFBFBD><E69C9E>滚𦛚<E6BB9A>漤<EFBFBD>帋縑
|
||
# - localhost <20><><EFBFBD><EFBFBD>臬捆<E887AC>刻䌊撌梧<E6928C>銝齿糓 Redis 摰孵膥
|
||
# - redis 隡朞◤ Docker 蝵𤑳<E89DB5>閫<EFBFBD><E996AB>銝?Redis 摰孵膥<E5ADB5><E886A5><EFBFBD>蝵?IP
|
||
```
|
||
|
||
**摰匧<E691B0><E58CA7>惩𤐄**嚗?```bash
|
||
# 1. 霈曄蔭撘箏<E69298><E7AE8F>?REDIS_PASSWORD=<<3C>喳<EFBFBD>16雿漤<E99BBF><E6BCA4>箏<EFBFBD>蝚虫葡>
|
||
|
||
# 2. 隞<><E99A9E><EFBFBD>砍<EFBFBD>蝵𡢅<E89DB5>docker-compose 銝剖歇<E58996>滨蔭嚗?# Redis 摰孵膥銝齿𠂔<E9BDBF>脩垢<E884A9><E59EA2><EFBFBD>銝餅㦤嚗䔶<E59A97><E494B6>?Docker 蝵𤑳<E89DB5><F0A491B3><EFBFBD>虾霈輸䔮
|
||
|
||
# 3. 蝳<>鍂<EFBFBD>梢埯<E6A2A2>賭誘嚗<E8AA98>虾<EFBFBD>㚁<EFBFBD>
|
||
# <20>?docker-compose.yaml 銝凋耨<E5878B>?Redis <20>臬𢆡<E887AC>賭誘
|
||
command: >
|
||
redis-server
|
||
--requirepass ${REDIS_PASSWORD}
|
||
--rename-command CONFIG ""
|
||
--rename-command FLUSHALL ""
|
||
--rename-command FLUSHDB ""
|
||
```
|
||
|
||
---
|
||
|
||
## <20>烐綉銝𡒊輕<F0A1928A>?
|
||
### <20><> <20>亙<EFBFBD>蝞∠<E89D9E>
|
||
|
||
#### 1. <20>亦<EFBFBD>摰墧𧒄<E5A2A7>亙<EFBFBD>
|
||
|
||
```bash
|
||
cd /data/dify/docker
|
||
|
||
# <20>亦<EFBFBD><E4BAA6><EFBFBD><EFBFBD>㗇<EFBFBD><E39787>⊥𠯫敹?docker compose logs -f
|
||
|
||
# <20>亦<EFBFBD><E4BAA6>孵<EFBFBD><E5ADB5>滚𦛚<E6BB9A>亙<EFBFBD>
|
||
docker compose logs -f api
|
||
docker compose logs -f worker
|
||
```
|
||
|
||
#### 2. <20>亙<EFBFBD><E4BA99><EFBFBD>辣雿滨蔭
|
||
|
||
```
|
||
/data/dify/logs/
|
||
<EFBFBD>鎿<EFBFBD> api.log # API <20>滚𦛚<E6BB9A>亙<EFBFBD>
|
||
<EFBFBD>鎿<EFBFBD> worker.log # Worker <20>亙<EFBFBD>
|
||
<EFBFBD>婙<EFBFBD> error.log # <20>躰秤<E8BAB0>亙<EFBFBD>
|
||
```
|
||
|
||
#### 3. <20>亙<EFBFBD>頧株蓮<E6A0AA>滨蔭
|
||
|
||
```bash
|
||
# 摰㕑<E691B0> logrotate嚗㇎buntu 暺䁅恕撌脣<E6928C>鋆<EFBFBD><E98B86>
|
||
apt install logrotate
|
||
|
||
# <20>𥕦遣<F0A595A6>滨蔭<E6BBA8><E894AD>辣
|
||
cat > /etc/logrotate.d/dify <<EOF
|
||
/data/dify/logs/*.log {
|
||
daily
|
||
rotate 30
|
||
compress
|
||
delaycompress
|
||
notifempty
|
||
create 0644 root root
|
||
sharedscripts
|
||
postrotate
|
||
docker compose -f /data/dify/docker/docker-compose.yaml restart api worker
|
||
endscript
|
||
}
|
||
EOF
|
||
```
|
||
|
||
### <20><> <20>扯<EFBFBD><E689AF>烐綉
|
||
|
||
#### 1. 韏<><E99F8F>雿輻鍂<E8BCBB><E98D82><EFBFBD>
|
||
|
||
```bash
|
||
# <20>亦<EFBFBD>摰孵膥韏<E886A5><E99F8F><EFBFBD>删鍂
|
||
docker stats
|
||
|
||
# <20>亦<EFBFBD>蝤<EFBFBD><E89DA4>雿輻鍂
|
||
df -h /data
|
||
|
||
# <20>亦<EFBFBD><E4BAA6><EFBFBD><EFBFBD>雿輻鍂
|
||
free -h
|
||
```
|
||
|
||
#### 2. <20>唳旿摨栞<E691A8><E6A09E>亦<EFBFBD><E4BAA6>?
|
||
```bash
|
||
# 餈墧𦻖<E5A2A7>?RDS <20>亦<EFBFBD> Dify <20><><EFBFBD><EFBFBD>交㺭
|
||
psql -h <RDS<44><53><EFBFBD><EFBFBD>啣<EFBFBD>> -U postgres -d dify_prod -c "
|
||
SELECT count(*)
|
||
FROM pg_stat_activity
|
||
WHERE datname = 'dify_prod';
|
||
"
|
||
```
|
||
|
||
#### 3. Redis <20>烐綉
|
||
|
||
```bash
|
||
# 餈墧𦻖<E5A2A7>?Redis 摰孵膥
|
||
docker exec -it dify-redis redis-cli -a <REDIS_PASSWORD>
|
||
|
||
# <20>亦<EFBFBD>靽⊥<E99DBD>
|
||
INFO
|
||
INFO memory
|
||
INFO stats
|
||
```
|
||
|
||
### <20><> 摰𡁏<E691B0>蝏湔擪隞餃𦛚
|
||
|
||
#### 瘥誩𪂹隞餃𦛚
|
||
|
||
```bash
|
||
# 1. 皜<><E79A9C> Docker <20>亙<EFBFBD>
|
||
truncate -s 0 $(docker inspect --format='{{.LogPath}}' dify-api)
|
||
truncate -s 0 $(docker inspect --format='{{.LogPath}}' dify-worker)
|
||
|
||
# 2. 皜<><E79A9C><EFBFBD>删鍂<E588A0>?Docker 韏<><E99F8F>
|
||
docker system prune -a --volumes -f
|
||
```
|
||
|
||
#### 瘥𤩺<E798A5>隞餃𦛚
|
||
|
||
```bash
|
||
# 1. <20>唳旿摨?VACUUM嚗<4D>銁雿𤾸陸<F0A4BEB8><E999B8><EFBFBD>銵䕘<E98AB5>
|
||
psql -h <RDS<44><53><EFBFBD><EFBFBD>啣<EFBFBD>> -U dify_user -d dify_prod -c "VACUUM ANALYZE;"
|
||
|
||
# 2. 璉<><E79289>亦<EFBFBD><E4BAA6>条<EFBFBD><E69DA1>?e2fsck -f /dev/vdb
|
||
|
||
# 3. 憭<>遢<EFBFBD>滨蔭<E6BBA8><E894AD>辣
|
||
tar -czf /backup/dify-config-$(date +%Y%m%d).tar.gz /data/dify/docker/.env
|
||
```
|
||
|
||
---
|
||
|
||
## <20><><EFBFBD><EFBFBD>埝䰻
|
||
|
||
### <20>𤣳 撣貉<E692A3><E8B289>桅<EFBFBD>
|
||
|
||
#### <20>桅<EFBFBD> 1嚗鋫PI 摰孵膥<E5ADB5>䭾<EFBFBD><E4ADBE>臬𢆡 - Redis 餈墧𦻖憭梯揖嚗<E68F96><E59A97>憸煾<E686B8>霂荔<E99C82>
|
||
|
||
**<2A><>𠶖**嚗?```bash
|
||
docker compose ps
|
||
# <20>曄內 dify-api <20>嗆<EFBFBD><E59786>蛹 Exit 1 <20>碶<EFBFBD><E7A2B6>剝<EFBFBD><E5899D>?
|
||
docker compose logs api
|
||
# <20>曄內<E69B84>躰秤嚗?# redis.exceptions.ConnectionError: Error connecting to localhost:6379
|
||
# <20>?# Cannot connect to Redis at localhost:6379
|
||
```
|
||
|
||
**<2A>寞𧋦<E5AF9E>笔<EFBFBD>**嚗?```bash
|
||
# <20>?.env <20><>辣銝剝<E98A9D>蝵桅<E89DB5>霂?REDIS_HOST=localhost # 餈蹱糓<E8B9B1>嗵<EFBFBD>嚗?```
|
||
|
||
**閫<><E996AB><EFBFBD>寞<EFBFBD>**嚗?```bash
|
||
# 1. 蝻𤥁<E89DBB> .env <20><>辣
|
||
nano /data/dify/docker/.env
|
||
|
||
# 2. 靽格㺿 REDIS_HOST
|
||
REDIS_HOST=redis # <20>?<3F>嫣蛹<E5ABA3>滚𦛚<E6BB9A>?
|
||
# 3. <20>滚鍳<E6BB9A>滚𦛚
|
||
docker compose down
|
||
docker compose up -d
|
||
|
||
# 4. 撉諹<E69289>
|
||
docker compose logs api | grep -i redis
|
||
# 摨磰砲<E7A3B0>见<EFBFBD>嚗锭uccessfully connected to Redis
|
||
```
|
||
|
||
#### <20>桅<EFBFBD> 2嚗𡁜<E59A97>蝡航挪<E888AA>?API <20>?CORS <20>躰秤
|
||
|
||
**<2A><>𠶖**嚗?```
|
||
瘚讛<EFBFBD><EFBFBD>冽綉<EFBFBD>嗅蝱<EFBFBD>仿<EFBFBD>嚗?Access to XMLHttpRequest at 'http://xxx/v1/xxx' from origin 'http://yyy'
|
||
has been blocked by CORS policy
|
||
```
|
||
|
||
**<2A>寞𧋦<E5AF9E>笔<EFBFBD>**嚗?- 蝻箏<E89DBB> Nginx 蝵穃<E89DB5><E7A983>滚𦛚
|
||
- <20>𤥁<EFBFBD>?Nginx <20>滨蔭<E6BBA8>躰秤
|
||
|
||
**閫<><E996AB><EFBFBD>寞<EFBFBD>**嚗?```bash
|
||
# 1. 蝖株恕 Nginx 摰孵膥<E5ADB5>臬炏餈鞱<E9A488>
|
||
docker compose ps | grep nginx
|
||
|
||
# 2. 憒<><E68692>瘝⊥<E7989D> Nginx嚗諹秩<E8ABB9>𦒘<EFBFBD><F0A69298>𣳇膄鈭<E88684><E988AD><EFBFBD>寥<EFBFBD>蝵?# 閫<><E996AB><EFBFBD>寞<EFBFBD>嚗𡁻<E59A97><F0A181BB>啣<EFBFBD><E595A3><EFBFBD><EFBFBD><EFBFBD>嫣<EFBFBD>摨橒<E691A8>雿輻鍂摰峕㟲<E5B395>?docker-compose.yaml
|
||
|
||
cd /data/dify
|
||
rm -rf dify
|
||
git clone https://github.com/langgenius/dify.git
|
||
cd dify/docker
|
||
cp .env.example .env
|
||
# <20>齿鰵<E9BDBF>滨蔭 .env嚗<76><E59A97><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
docker compose up -d
|
||
```
|
||
|
||
#### <20>桅<EFBFBD> 3嚗𡁜捆<F0A1819C>冽<EFBFBD>瘜訫鍳<E8A8AB>?- <20>唳旿摨栞<E691A8><E6A09E>亙仃韐?
|
||
**<2A><>𠶖**嚗?```bash
|
||
docker compose logs api
|
||
# <20>曄內<E69B84>躰秤嚗?# could not connect to server: Connection refused
|
||
```
|
||
|
||
**<2A>埝䰻甇仿炊**嚗?```bash
|
||
# 1. 璉<><E79289>?RDS <20>賢<EFBFBD><E8B3A2>?# <20>輸<EFBFBD>鈭烐綉<E78390>嗅蝱 <20>?RDS <20>?<3F>唳旿摰匧<E691B0><E58CA7>?<3F>?<3F>賢<EFBFBD><E8B3A2>閗挽蝵?# 蝖株恕瘛餃<E7989B>鈭?ECS <20><><EFBFBD>蝵?IP
|
||
|
||
# 2. 璉<><E79289>?.env <20>滨蔭
|
||
DB_HOST=<RDS<44><53><EFBFBD><EFBFBD>啣<EFBFBD>> # 銝齿糓<E9BDBF>祉<EFBFBD><E7A589>啣<EFBFBD>嚗?DB_PORT=5432
|
||
DB_NAME=dify_prod
|
||
DB_USERNAME=dify_user
|
||
DB_PASSWORD=<甇<>&<EFBFBD><EFBC86><EFBFBD><EFBFBD>?
|
||
|
||
# 3. 瘚贝<E7989A>餈墧𦻖嚗<F0A6BB96>銁 ECS 銝𠺪<E98A9D>
|
||
telnet <RDS<44><53><EFBFBD><EFBFBD>啣<EFBFBD>> 5432
|
||
# 憒<><E68692>餈墧𦻖憭梯揖嚗峕<E59A97><E5B395>亙<EFBFBD><E4BA99>函<EFBFBD><E587BD>𣬚蒾<F0A3AC9A>滚<EFBFBD>
|
||
```
|
||
|
||
#### <20>桅<EFBFBD> 4嚗𡁏<E59A97><F0A1818F>∟<EFBFBD>銵䔶<E98AB5>畾菜𧒄<E88F9C>游<EFBFBD>撏拇<E6928F>嚗㇉OM <20><><EFBFBD>皞W枂嚗?
|
||
**<2A><>𠶖**嚗?```bash
|
||
dmesg | grep -i kill
|
||
# <20>曄內嚗鐾ut of memory: Killed process xxx (dify-api)
|
||
|
||
docker compose ps
|
||
# 摰孵膥銝齿鱏<E9BDBF>滚鍳
|
||
```
|
||
|
||
**<2A>寞𧋦<E5AF9E>笔<EFBFBD>**嚗?- 2<>?G <20><><EFBFBD>銝滩雲
|
||
- 瘝⊥<E7989D><E28AA5>滨蔭 Swap <20><>躹
|
||
|
||
**閫<><E996AB><EFBFBD>寞<EFBFBD>**嚗?```bash
|
||
# 1. 蝡见朖<E8A781>滨蔭 Swap嚗<70><E59A97><EFBFBD>靝<EFBFBD><E99D9D>齿瓷<E9BDBF>滨蔭嚗?fallocate -l 4G /swapfile
|
||
chmod 600 /swapfile
|
||
mkswap /swapfile
|
||
swapon /swapfile
|
||
echo '/swapfile none swap sw 0 0' >> /etc/fstab
|
||
|
||
# 2. 撉諹<E69289> Swap 撌脣鍳<E884A3>?free -h
|
||
|
||
# 3. <20>滚鍳<E6BB9A>滚𦛚
|
||
docker compose restart
|
||
|
||
# 4. <20>踵<EFBFBD><E8B8B5>寞<EFBFBD>嚗𡁜<E59A97>蝥?ECS <20>?4<>?G
|
||
```
|
||
|
||
#### <20>桅<EFBFBD> 2嚗鋫PI 餈𥪜<E9A488> 500 <20>躰秤
|
||
|
||
**<2A>埝䰻甇仿炊**嚗?```bash
|
||
# 1. <20>亦<EFBFBD> API <20>亙<EFBFBD>
|
||
docker compose logs -f api | grep ERROR
|
||
|
||
# 2. 璉<><E79289>交㺭<E4BAA4>桀<EFBFBD>餈墧𦻖
|
||
docker exec -it dify-api sh
|
||
# <20>典捆<E585B8>典<EFBFBD><E585B8>扯<EFBFBD>
|
||
python -c "
|
||
import psycopg2
|
||
conn = psycopg2.connect(
|
||
host='<RDS<44>啣<EFBFBD>>',
|
||
database='dify_prod',
|
||
user='dify_user',
|
||
password='<password>'
|
||
)
|
||
print('Connection OK')
|
||
"
|
||
```
|
||
|
||
#### <20>桅<EFBFBD> 3嚗𡁜<E59A97><F0A1819C>𤩺<EFBFBD>蝝W仃韐?
|
||
**<2A>埝䰻甇仿炊**嚗?```bash
|
||
# 1. 璉<><E79289>?Weaviate <20>嗆<EFBFBD>?curl http://localhost:8080/v1/meta
|
||
|
||
# 2. <20>亦<EFBFBD> Weaviate <20>亙<EFBFBD>
|
||
docker compose logs weaviate
|
||
|
||
# 3. <20>滚遣蝝W<E89D9D>嚗<EFBFBD><E59A97><EFBFBD>擧<EFBFBD>畾蛛<E795BE>
|
||
# <20>?Dify Web UI 銝哨<E98A9D>霈曄蔭 <20>?<3F>唳旿<E594B3>?<3F>?<3F>齿鰵蝝W<E89D9D>
|
||
```
|
||
|
||
#### <20>桅<EFBFBD> 4嚗𡁜<E59A97>蝵𤏸<E89DB5><F0A48FB8>亙仃韐伐<E99F90>SAE <20>䭾<EFBFBD>霈輸䔮 ECS嚗?
|
||
**<2A>埝䰻甇仿炊**嚗?```bash
|
||
# 1. 璉<><E79289>亙<EFBFBD><E4BA99>函<EFBFBD>閫<EFBFBD><E996AB>
|
||
# <20>輸<EFBFBD>鈭烐綉<E78390>嗅蝱 <20>?ECS <20>?摰匧<E691B0>蝏?<3F>?蝖株恕撘<E68195><E69298>?5000 蝡臬藁蝏?SAE <20><><EFBFBD>函<EFBFBD>畾?
|
||
# 2. 瘚贝<E7989A>餈鮋<E9A488>𡁏<EFBFBD>改<EFBFBD><E694B9>?SAE 摰孵膥<E5ADB5><E886A5><EFBFBD>銵䕘<E98AB5>
|
||
telnet <ECS<43><53><EFBFBD>IP> 5000
|
||
|
||
# 3. 璉<><E79289>仿俈<E4BBBF>怠<EFBFBD>嚗<EFBFBD>銁 ECS 銝𦠜<E98A9D>銵䕘<E98AB5>
|
||
ufw status
|
||
# 憒<><E68692><EFBFBD>舐鍂鈭<E98D82>俈<EFBFBD>怠<EFBFBD>嚗峕溶<E5B395>㰘<EFBFBD><E3B098>辷<EFBFBD>
|
||
ufw allow from <SAE蝵烐挾> to any port 5000
|
||
```
|
||
|
||
### <20><> <20>滚鍳<E6BB9A>滚𦛚
|
||
|
||
```bash
|
||
# <20>滚鍳<E6BB9A><E98DB3><EFBFBD>㗇<EFBFBD><E39787>?cd /data/dify/docker
|
||
docker compose restart
|
||
|
||
# <20>滚鍳<E6BB9A>蓥葵<E893A5>滚𦛚
|
||
docker compose restart api
|
||
|
||
# 摰<><E691B0><EFBFBD>滚遣嚗<E981A3><E59A97><EFBFBD>靝耨<E99D9D>嫣<EFBFBD> docker-compose.yaml嚗?docker compose down
|
||
docker compose up -d
|
||
```
|
||
|
||
---
|
||
|
||
## 瘜冽<E7989C>鈭钅★銝𡒊<E98A9D>敹?
|
||
### <20>?<3F><>雿喳<E99BBF>頝?
|
||
1. **摰𡁏<E691B0>憭<EFBFBD>遢**
|
||
```bash
|
||
# 瘥誩予<E8AAA9>芸𢆡憭<F0A286A1>遢嚗<E981A2>溶<EFBFBD>惩<EFBFBD> crontab嚗? 0 2 * * * pg_dump -h <RDS<44>啣<EFBFBD>> -U dify_user dify_prod | gzip > /backup/dify_$(date +\%Y\%m\%d).sql.gz
|
||
```
|
||
|
||
2. **<2A>烐綉蝤<E7B689><E89DA4>蝛粹𡢿**
|
||
```bash
|
||
# 霈曄蔭<E69B84>𡃏郎嚗<E9838E><E59A97> /data 雿輻鍂<E8BCBB>?> 80% <20>園<EFBFBD>𡁶䰻嚗? # <20>臭蝙<E887AD>券燵<E588B8>䔶<EFBFBD>鈭𤑳<E988AD><F0A491B3>扳<EFBFBD><E689B3>? ```
|
||
|
||
3. **雿輻鍂<E8BCBB><E98D82><EFBFBD><EFBFBD>笔<EFBFBD>**
|
||
```bash
|
||
# 銝?ECS 霈曄蔭<E69B84><E894AD><EFBFBD><EFBFBD>笔<EFBFBD>嚗<EFBFBD>噶鈭𡒊輕<F0A1928A>歹<EFBFBD>
|
||
# <20>?SAE 銝剝<E98A9D>蝵?DIFY_API_BASE=http://dify.internal:5000
|
||
# <20>䔶<EFBFBD><E494B6>臬<EFBFBD>甇?IP
|
||
```
|
||
|
||
4. **<2A><>𧋦<EFBFBD><F0A78BA6><EFBFBD>**
|
||
```bash
|
||
# docker-compose.yaml 銝凋蝙<E5878B>典<EFBFBD>雿梶<E99BBF><E6A2B6>砍噡嚗䔶<E59A97>閬<EFBFBD>鍂 latest
|
||
image: langgenius/dify-api:0.11.2 # <20>?<3F>刻<EFBFBD>
|
||
# image: langgenius/dify-api:latest # <20>?蝳<>迫嚗<E8BFAB>虾<EFBFBD>賢紡<E8B3A2>港<EFBFBD><E6B8AF>澆捆嚗? ```
|
||
|
||
### <20>?蝏嘥笆蝳<E7AC86>迫
|
||
|
||
1. **蝳<>迫<EFBFBD>?.env 銝凋蝙<E5878B>?REDIS_HOST=localhost**
|
||
```bash
|
||
# <20>?<3F>游𦶢<E6B8B8>躰秤嚗<E7A7A4><E59A97>撖潸稲<E6BDB8>滚𦛚<E6BB9A>臬𢆡憭梯揖嚗? REDIS_HOST=localhost
|
||
|
||
# <20>?甇<>&<EFBFBD>滨蔭嚗<E894AD>銁 Docker Compose 銝凋蝙<E5878B>冽<EFBFBD><E586BD>∪<EFBFBD>嚗? REDIS_HOST=redis
|
||
```
|
||
|
||
2. **蝳<>迫<EFBFBD>惩<EFBFBD>摰䀹䲮 docker-compose.yaml <20><>瓲敹<E793B2><E695B9><EFBFBD>?*
|
||
```bash
|
||
# <20>?<3F>梢埯<E6A2A2>滢<EFBFBD>嚗<EFBFBD><E59A97>撖潸稲<E6BDB8>蠘<EFBFBD>撘<EFBFBD>虜嚗? # - <20>𣳇膄 nginx <20>?<3F>滨垢 CORS <20>躰秤
|
||
# - <20>𣳇膄 worker <20>?撘<>郊隞餃𦛚憭梯揖
|
||
# - <20>𣳇膄 sandbox <20>?隞<><E99A9E>閫<EFBFBD><E996AB><EFBFBD>典<EFBFBD><E585B8>賢仃<E8B3A2>?
|
||
# <20>?甇<>&<EFBFBD>𡁏<EFBFBD>
|
||
# 雿輻鍂摰䀹䲮摰峕㟲<E5B395>滨蔭嚗䔶<E59A97>靽格㺿 .env <20>臬<EFBFBD><E887AC>㗛<EFBFBD>
|
||
```
|
||
|
||
3. **蝳<>迫<EFBFBD>?2<>?G <20>?ECS 銝𠹺<E98A9D><F0A0B9BA>滨蔭 Swap**
|
||
```bash
|
||
# <20>?<3F>梢埯嚗<E59FAF><E59A97><EFBFBD>?OOM 撏拇<E6928F>嚗? # 瘝⊥<E7989D> Swap嚗<70><E59A97>摮条鍂撠賢<E692A0><E8B3A2>滚𦛚<E6BB9A>湔𦻖鋡?Kill
|
||
|
||
# <20>?敹<>◆<EFBFBD>滨蔭 Swap
|
||
fallocate -l 4G /swapfile
|
||
chmod 600 /swapfile
|
||
mkswap /swapfile
|
||
swapon /swapfile
|
||
```
|
||
|
||
4. **蝳<>迫<EFBFBD>函<EFBFBD>鈭抒㴓憓<E3B493>蝙<EFBFBD>?DEBUG=true**
|
||
```bash
|
||
# 隡𡁏𠂔<F0A1818F>脫<EFBFBD><E884AB>煺縑<E785BA>荔<EFBFBD>憒<EFBFBD><E68692>API Key<65><79>㺭<EFBFBD>桀<EFBFBD>撖<EFBFBD><E69296>嚗? DEBUG=false # <20>? ```
|
||
|
||
5. **蝳<>迫雿輻鍂撘勗<E69298><E58B97>?*
|
||
```bash
|
||
# 敹<>◆雿輻鍂撘箏<E69298><E7AE8F><EFBFBD><EFBFBD><EFBFBD>喳<EFBFBD>16雿㵪<E99BBF><E3B5AA><EFBFBD>鉄憭批<E686AD><E689B9>踺<EFBFBD><E8B8BA>㺭摮𨰜<E691AE><F0A8B09C>鸌畾𠰴<E795BE>蝚佗<E89D9A>
|
||
SECRET_KEY=$(openssl rand -base64 32)
|
||
REDIS_PASSWORD=$(openssl rand -base64 24)
|
||
WEAVIATE_API_KEY=$(openssl rand -base64 24)
|
||
```
|
||
|
||
6. **蝳<>迫<EFBFBD>湧蠧 Redis <20>?Weaviate 蝡臬藁<E887AC>啣<EFBFBD>蝵?*
|
||
```bash
|
||
# 摰䀹䲮<E480B9>滨蔭暺䁅恕銝齿𠂔<E9BDBF>脰<EFBFBD>鈭𤤿垢<F0A4A4BF><E59EA2><EFBFBD>銝滩<E98A9D><E6BBA9>芸楛瘛餃<E7989B>
|
||
# <20>?<3F>梢埯<E6A2A2>滨蔭
|
||
services:
|
||
redis:
|
||
ports:
|
||
- "6379:6379" # 隡朞◤<E69C9E>餃稬嚗?
|
||
# <20>?甇<>&<EFBFBD>𡁏<EFBFBD>嚗帋<E59A97><E5B88B>?Docker 蝵𤑳<E89DB5><F0A491B3><EFBFBD>挪<EFBFBD>? ```
|
||
|
||
7. **蝳<>迫<EFBFBD>湔𦻖靽格㺿<E6A0BC>唳旿摨?*
|
||
```bash
|
||
# 銝滩<E98A9D><E6BBA9>见𢆡靽格㺿 Dify <20>唳旿摨梶<E691A8>銵函<E98AB5><E587BD><EFBFBD><EFBFBD><EFBFBD>唳旿
|
||
# 敹<>◆<EFBFBD>朞<EFBFBD> Dify API <20>?Web UI <20>滢<EFBFBD>
|
||
```
|
||
|
||
8. **蝳<>迫<EFBFBD>?ECS 銝𡃏<E98A9D>銵<EFBFBD><E98AB5>隞𡝗<E99A9E><F0A19D97>單<EFBFBD><E596AE>?*
|
||
```bash
|
||
# 餈坔蝱 ECS 銝㯄秄<E3AF84>其<EFBFBD> Dify嚗䔶<E59A97>閬<EFBFBD><E996AC>蝵脣<E89DB5>隞硋<E99A9E><E7A18B>? # <20>踹<EFBFBD>韏<EFBFBD><E99F8F>蝡硺<E89DA1><E7A1BA><EFBFBD><EFBFBD><EFBFBD>券<EFBFBD><E588B8>? ```
|
||
|
||
### <20>𩤃<EFBFBD> <20>滩<EFBFBD><E6BBA9>鞾<EFBFBD>
|
||
|
||
1. **<2A>唳旿銝餅<E98A9D>**
|
||
- <20><><EFBFBD>匧<EFBFBD><E58CA7>𤩺㺭<F0A4A9BA>桀<EFBFBD><E6A180><EFBFBD>﹝<EFBFBD>賢<EFBFBD><E8B3A2>典銁<E585B8>函<EFBFBD> ECS <20>?OSS 銝? - 摰𡁏<E691B0>璉<EFBFBD><E79289>交㺭<E4BAA4>桀<EFBFBD>隞賜<E99A9E>摰峕㟲<E5B395>?
|
||
2. **<2A>鞉𧋦<E99E89>批<EFBFBD>**
|
||
- ECS <20>厰<EFBFBD>隞䁅晶 vs <20><>僑<EFBFBD><E58391><EFBFBD>嚗<EFBFBD>覔<EFBFBD>桀<EFBFBD><E6A180><EFBFBD><EFBFBD><EFBFBD>菟<EFBFBD>㗇𥋘嚗? - <20>烐綉 OSS 摮睃<E691AE><E79D83>誩<EFBFBD>瘚<EFBFBD><E7989A>嚗<EFBFBD><E59A97><EFBFBD>滩<EFBFBD><E6BBA9>粹<EFBFBD>蝞梹<E89D9E>
|
||
|
||
3. **<2A><>漣蝑𣇉裦**
|
||
```bash
|
||
# <20><>漣 Dify <20><>𧋦<EFBFBD>滨<EFBFBD>甇仿炊嚗? # 1. 憭<>遢<EFBFBD>唳旿摨? # 2. <20>冽<EFBFBD>霂閧㴓憓<E3B493><E68693>霂? # 3. <20>㗇𥋘銝𡁜𦛚雿𤾸陸<F0A4BEB8>笔<EFBFBD>蝥? # 4. <20>𡁜末<F0A1819C>墧<EFBFBD><E5A2A7><EFBFBD><EFBFBD>
|
||
```
|
||
|
||
4. **蝘<><E89D98><EFBFBD>㚚<EFBFBD>蝵脰楝敺?*
|
||
```
|
||
敶枏<E695B6><E69E8F>嗆<EFBFBD> <20>?<3F>湔𦻖憭滚<E686AD><E6BB9A>啣恥<E595A3>瑞㴓憓? <20>鎿<EFBFBD> 撖澆枂 docker-compose.yaml
|
||
<20>鎿<EFBFBD> 撖澆枂 .env嚗<76><E59A97><EFBFBD>煺縑<E785BA>舀𤜯<E88880>g<EFBFBD>
|
||
<20>鎿<EFBFBD> <20>枏<EFBFBD>銝箏<E98A9D>鋆<EFBFBD><E98B86><EFBFBD>穿<EFBFBD>銝<EFBFBD><E98A9D>桅<EFBFBD>蝵莎<E89DB5>
|
||
<20>婙<EFBFBD> <20>𣂷<EFBFBD><F0A382B7>羓<EFBFBD><E7BE93>匧<EFBFBD><E58CA7>函蔡<E587BD>见<EFBFBD><E8A781>? ```
|
||
|
||
---
|
||
|
||
## <20><> <20><><EFBFBD>
|
||
|
||
### A. <20><><EFBFBD>撘箏<E69298><E7AE8F><EFBFBD><EFBFBD><EFBFBD>寞<EFBFBD>
|
||
|
||
```bash
|
||
# <20>寞<EFBFBD> 1: 雿輻鍂 openssl
|
||
openssl rand -base64 32
|
||
|
||
# <20>寞<EFBFBD> 2: 雿輻鍂 pwgen
|
||
pwgen -s 32 1
|
||
|
||
# <20>寞<EFBFBD> 3: 雿輻鍂 Python
|
||
python3 -c "import secrets; print(secrets.token_urlsafe(32))"
|
||
```
|
||
|
||
### B. Dify API 撣貊鍂蝡舐<E89DA1>
|
||
|
||
```bash
|
||
# <20>亙熒璉<E78692><E79289>?GET http://<ECS<43><53><EFBFBD>IP>:5000/health
|
||
|
||
# <20>𥕦遣<F0A595A6>唳旿<E594B3>?POST http://<ECS<43><53><EFBFBD>IP>:5000/v1/datasets
|
||
Headers: Authorization: Bearer <API_KEY>
|
||
Body: {"name": "test-dataset"}
|
||
|
||
# 銝𠹺<E98A9D><F0A0B9BA><EFBFBD>﹝
|
||
POST http://<ECS<43><53><EFBFBD>IP>:5000/v1/datasets/{dataset_id}/documents
|
||
Headers: Authorization: Bearer <API_KEY>
|
||
Body: (multipart/form-data)
|
||
|
||
# 霂凋<E99C82>璉<EFBFBD>蝝?POST http://<ECS<43><53><EFBFBD>IP>:5000/v1/datasets/{dataset_id}/retrieve
|
||
Headers: Authorization: Bearer <API_KEY>
|
||
Body: {"query": "xxx", "top_k": 5}
|
||
```
|
||
|
||
### C. <20>詨<EFBFBD><E8A9A8><EFBFBD>﹝<EFBFBD>暹𦻖
|
||
|
||
- [Dify 摰䀹䲮<E480B9><E4B2AE>﹝](https://docs.dify.ai/)
|
||
- [Docker Compose <20><>﹝](https://docs.docker.com/compose/)
|
||
- [Weaviate <20><>﹝](https://weaviate.io/developers/weaviate)
|
||
- [<EFBFBD>輸<EFBFBD>鈭?ECS <20><>﹝](https://help.aliyun.com/product/25365.html)
|
||
- [<EFBFBD>輸<EFBFBD>鈭?OSS <20><>﹝](https://help.aliyun.com/product/31815.html)
|
||
|
||
---
|
||
|
||
**<EFBFBD><EFBFBD>﹝蝏湔擪**嚗?- 憒<><E68692><EFBFBD>桅<EFBFBD><E6A185>硋遣霈殷<E99C88>霂瑁<E99C82>蝟餅<E89D9F><E9A485>航<EFBFBD>韐<EFBFBD>犖
|
||
- <20><><EFBFBD>擧凒<E693A7>堆<EFBFBD>2025-12-13
|
||
- 銝𧢲活摰⊥䰻嚗?025-03-13
|
||
|