Commit fe80e80ed1db1b71fd6c26699100895f34ccfd14
1 parent
b754fd41
fix host config
Showing
4 changed files
with
23 additions
and
8 deletions
Show diff stats
.env.example
| @@ -22,6 +22,8 @@ API_HOST=0.0.0.0 | @@ -22,6 +22,8 @@ API_HOST=0.0.0.0 | ||
| 22 | API_PORT=6002 | 22 | API_PORT=6002 |
| 23 | INDEXER_HOST=0.0.0.0 | 23 | INDEXER_HOST=0.0.0.0 |
| 24 | INDEXER_PORT=6004 | 24 | INDEXER_PORT=6004 |
| 25 | +# Embedding HTTP servers (text 6005 / image 6008): bind all interfaces | ||
| 26 | +EMBEDDING_HOST=0.0.0.0 | ||
| 25 | 27 | ||
| 26 | # Optional service ports | 28 | # Optional service ports |
| 27 | FRONTEND_PORT=6003 | 29 | FRONTEND_PORT=6003 |
config/loader.py
| @@ -445,7 +445,7 @@ class AppConfigLoader: | @@ -445,7 +445,7 @@ class AppConfigLoader: | ||
| 445 | api_port=int(os.getenv("API_PORT", 6002)), | 445 | api_port=int(os.getenv("API_PORT", 6002)), |
| 446 | indexer_host=os.getenv("INDEXER_HOST", "0.0.0.0"), | 446 | indexer_host=os.getenv("INDEXER_HOST", "0.0.0.0"), |
| 447 | indexer_port=int(os.getenv("INDEXER_PORT", 6004)), | 447 | indexer_port=int(os.getenv("INDEXER_PORT", 6004)), |
| 448 | - embedding_host=os.getenv("EMBEDDING_HOST", "127.0.0.1"), | 448 | + embedding_host=os.getenv("EMBEDDING_HOST", "0.0.0.0"), |
| 449 | embedding_port=int(os.getenv("EMBEDDING_PORT", 6005)), | 449 | embedding_port=int(os.getenv("EMBEDDING_PORT", 6005)), |
| 450 | embedding_text_port=int(os.getenv("EMBEDDING_TEXT_PORT", 6005)), | 450 | embedding_text_port=int(os.getenv("EMBEDDING_TEXT_PORT", 6005)), |
| 451 | embedding_image_port=int(os.getenv("EMBEDDING_IMAGE_PORT", 6008)), | 451 | embedding_image_port=int(os.getenv("EMBEDDING_IMAGE_PORT", 6008)), |
config/schema.py
| @@ -254,13 +254,13 @@ class RuntimeConfig: | @@ -254,13 +254,13 @@ class RuntimeConfig: | ||
| 254 | api_port: int = 6002 | 254 | api_port: int = 6002 |
| 255 | indexer_host: str = "0.0.0.0" | 255 | indexer_host: str = "0.0.0.0" |
| 256 | indexer_port: int = 6004 | 256 | indexer_port: int = 6004 |
| 257 | - embedding_host: str = "127.0.0.1" | 257 | + embedding_host: str = "0.0.0.0" |
| 258 | embedding_port: int = 6005 | 258 | embedding_port: int = 6005 |
| 259 | embedding_text_port: int = 6005 | 259 | embedding_text_port: int = 6005 |
| 260 | embedding_image_port: int = 6008 | 260 | embedding_image_port: int = 6008 |
| 261 | - translator_host: str = "127.0.0.1" | 261 | + translator_host: str = "0.0.0.0" |
| 262 | translator_port: int = 6006 | 262 | translator_port: int = 6006 |
| 263 | - reranker_host: str = "127.0.0.1" | 263 | + reranker_host: str = "0.0.0.0" |
| 264 | reranker_port: int = 6007 | 264 | reranker_port: int = 6007 |
| 265 | 265 | ||
| 266 | 266 |
docs/TODO.txt
| @@ -9,10 +9,9 @@ | @@ -9,10 +9,9 @@ | ||
| 9 | priority == 0(默认,适合做索引之类的离线任务):仍走原有 TEXT_MAX_INFLIGHT / IMAGE_MAX_INFLIGHT 准入;超限返回过载状态码。 | 9 | priority == 0(默认,适合做索引之类的离线任务):仍走原有 TEXT_MAX_INFLIGHT / IMAGE_MAX_INFLIGHT 准入;超限返回过载状态码。 |
| 10 | priority > 0(或者==1)(适合在线请求):不会因准入被拒绝,但是仍然需要占用inflight,这样保证在线请求不被限制,并且在线请求很多的时候可以拒绝掉离线的请求。 | 10 | priority > 0(或者==1)(适合在线请求):不会因准入被拒绝,但是仍然需要占用inflight,这样保证在线请求不被限制,并且在线请求很多的时候可以拒绝掉离线的请求。 |
| 11 | 11 | ||
| 12 | -除了限制规则的修改,更进一步的,看有没有什么简单的机制,可以保证这种请求是优先处理的(priority=1的相比=0的更优先被处理)。 | ||
| 13 | -关于技术方案,有Worker + 双队列、PriorityMutex等等。 | ||
| 14 | -需要优先级的能力,但是只需要两档,并不需要多级的优先级。不过如果支持多级优先级的方案更成熟、稳定,那么仍然可以考虑多优先级的方案。 | ||
| 15 | -在支持两档优先级的情况下,简单、成熟稳定、不带来复杂度、性能、稳定性方面的副作用,是最重要的。请先了解代码、需求,深度思考解决方案 | 12 | +除了限制规则的修改,更进一步的,也需要保证这种请求是优先处理的(priority=1的相比=0的更优先被处理)。 |
| 13 | +关于技术方案,有Worker + 双队列、PriorityMutex等等,除此之外,也请你思考合适的方案。 | ||
| 14 | +成熟稳定、不带来复杂度、性能、稳定性方面的副作用,是最重要的。请先了解代码、需求,深度思考解决方案 | ||
| 16 | 15 | ||
| 17 | 16 | ||
| 18 | 17 | ||
| @@ -50,6 +49,20 @@ _VECTOR_PREVIEW_DIMS = max(1, int(os.getenv("EMBEDDING_VECTOR_PREVIEW_DIMS", "6" | @@ -50,6 +49,20 @@ _VECTOR_PREVIEW_DIMS = max(1, int(os.getenv("EMBEDDING_VECTOR_PREVIEW_DIMS", "6" | ||
| 50 | _CACHE_PREFIX = str(REDIS_CONFIG.get("embedding_cache_prefix", "embedding")).strip() or "embedding" | 49 | _CACHE_PREFIX = str(REDIS_CONFIG.get("embedding_cache_prefix", "embedding")).strip() or "embedding" |
| 51 | 50 | ||
| 52 | 51 | ||
| 52 | + | ||
| 53 | + | ||
| 54 | + | ||
| 55 | +还有这些写死的地址 @embedding/config.py | ||
| 56 | + | ||
| 57 | +self.TEI_BASE_URL = str(text_backend.get("base_url") or "http://127.0.0.1:8080") | ||
| 58 | +self.TEI_TIMEOUT_SEC = int(text_backend.get("timeout_sec", 60)) | ||
| 59 | + | ||
| 60 | +self.USE_CLIP_AS_SERVICE = services.image_backend == "clip_as_service" | ||
| 61 | +self.CLIP_AS_SERVICE_SERVER = str(image_backend.get("server") or "grpc://127.0.0.1:51000") | ||
| 62 | + | ||
| 63 | + | ||
| 64 | + | ||
| 65 | + | ||
| 53 | 看起来似乎并没有完全遵循这些原则? | 66 | 看起来似乎并没有完全遵循这些原则? |
| 54 | 4. 重新设计的设计原则 | 67 | 4. 重新设计的设计原则 |
| 55 | 重新设计应遵循以下规则。 | 68 | 重新设计应遵循以下规则。 |