diff --git a/.env.example b/.env.example index 9818f30..51ae278 100644 --- a/.env.example +++ b/.env.example @@ -22,6 +22,8 @@ API_HOST=0.0.0.0 API_PORT=6002 INDEXER_HOST=0.0.0.0 INDEXER_PORT=6004 +# Embedding HTTP servers (text 6005 / image 6008): bind all interfaces +EMBEDDING_HOST=0.0.0.0 # Optional service ports FRONTEND_PORT=6003 diff --git a/config/loader.py b/config/loader.py index 91553d0..d9ef119 100644 --- a/config/loader.py +++ b/config/loader.py @@ -445,7 +445,7 @@ class AppConfigLoader: api_port=int(os.getenv("API_PORT", 6002)), indexer_host=os.getenv("INDEXER_HOST", "0.0.0.0"), indexer_port=int(os.getenv("INDEXER_PORT", 6004)), - embedding_host=os.getenv("EMBEDDING_HOST", "127.0.0.1"), + embedding_host=os.getenv("EMBEDDING_HOST", "0.0.0.0"), embedding_port=int(os.getenv("EMBEDDING_PORT", 6005)), embedding_text_port=int(os.getenv("EMBEDDING_TEXT_PORT", 6005)), embedding_image_port=int(os.getenv("EMBEDDING_IMAGE_PORT", 6008)), diff --git a/config/schema.py b/config/schema.py index 6f081e1..6f9776a 100644 --- a/config/schema.py +++ b/config/schema.py @@ -254,13 +254,13 @@ class RuntimeConfig: api_port: int = 6002 indexer_host: str = "0.0.0.0" indexer_port: int = 6004 - embedding_host: str = "127.0.0.1" + embedding_host: str = "0.0.0.0" embedding_port: int = 6005 embedding_text_port: int = 6005 embedding_image_port: int = 6008 - translator_host: str = "127.0.0.1" + translator_host: str = "0.0.0.0" translator_port: int = 6006 - reranker_host: str = "127.0.0.1" + reranker_host: str = "0.0.0.0" reranker_port: int = 6007 diff --git a/docs/TODO.txt b/docs/TODO.txt index a116c17..f5fee8a 100644 --- a/docs/TODO.txt +++ b/docs/TODO.txt @@ -9,10 +9,9 @@ priority == 0(默认,适合做索引之类的离线任务):仍走原有 TEXT_MAX_INFLIGHT / IMAGE_MAX_INFLIGHT 准入;超限返回过载状态码。 priority > 0(或者==1)(适合在线请求):不会因准入被拒绝,但是仍然需要占用inflight,这样保证在线请求不被限制,并且在线请求很多的时候可以拒绝掉离线的请求。 -除了限制规则的修改,更进一步的,看有没有什么简单的机制,可以保证这种请求是优先处理的(priority=1的相比=0的更优先被处理)。 -关于技术方案,有Worker + 双队列、PriorityMutex等等。 -需要优先级的能力,但是只需要两档,并不需要多级的优先级。不过如果支持多级优先级的方案更成熟、稳定,那么仍然可以考虑多优先级的方案。 -在支持两档优先级的情况下,简单、成熟稳定、不带来复杂度、性能、稳定性方面的副作用,是最重要的。请先了解代码、需求,深度思考解决方案 +除了限制规则的修改,更进一步的,也需要保证这种请求是优先处理的(priority=1的相比=0的更优先被处理)。 +关于技术方案,有Worker + 双队列、PriorityMutex等等,除此之外,也请你思考合适的方案。 +成熟稳定、不带来复杂度、性能、稳定性方面的副作用,是最重要的。请先了解代码、需求,深度思考解决方案 @@ -50,6 +49,20 @@ _VECTOR_PREVIEW_DIMS = max(1, int(os.getenv("EMBEDDING_VECTOR_PREVIEW_DIMS", "6" _CACHE_PREFIX = str(REDIS_CONFIG.get("embedding_cache_prefix", "embedding")).strip() or "embedding" + + + +还有这些写死的地址 @embedding/config.py + +self.TEI_BASE_URL = str(text_backend.get("base_url") or "http://127.0.0.1:8080") +self.TEI_TIMEOUT_SEC = int(text_backend.get("timeout_sec", 60)) + +self.USE_CLIP_AS_SERVICE = services.image_backend == "clip_as_service" +self.CLIP_AS_SERVICE_SERVER = str(image_backend.get("server") or "grpc://127.0.0.1:51000") + + + + 看起来似乎并没有完全遵循这些原则? 4. 重新设计的设计原则 重新设计应遵循以下规则。 -- libgit2 0.21.2