Skip to content

Commit a01f3f8

Browse files
committed
refactor server
1 parent f8f2c78 commit a01f3f8

File tree

4 files changed

+46
-649
lines changed

4 files changed

+46
-649
lines changed

llama_cpp/server/__main__.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,11 @@
2828

2929
import uvicorn
3030

31+
from llama_cpp import __version__
3132
from llama_cpp.server.app import create_app
3233
from llama_cpp.server.settings import Settings, ServerSettings, set_settings
34+
from llama_cpp.server.model import set_llama
35+
from llama_cpp.server.plugins import import_plugins
3336

3437
EXE_NAME = 'llama_server'
3538

@@ -95,22 +98,27 @@ def main():
9598
type=parse_bool_arg,
9699
help=f"{description}",
97100
)
98-
101+
args = parser.parse_args()
99102
try:
100-
args = parser.parse_args()
101103
server_settings = ServerSettings(**{k: v for k, v in vars(args).items() if v is not None})
102104
set_settings(server_settings)
103105
if server_settings.config and os.path.exists(server_settings.config):
104106
with open(server_settings.config, 'rb') as f:
105107
llama_settings = Settings.model_validate_json(f.read())
106108
else:
107109
llama_settings = Settings(**{k: v for k, v in vars(args).items() if v is not None})
108-
app = create_app(settings=llama_settings)
110+
lifespan = "" if server_settings.plugins else None
111+
set_llama(llama_settings)
112+
app = create_app(title="🦙 llama.cpp Python API", version=__version__)
109113
except Exception as e:
110114
print(e, file=sys.stderr)
111115
parser.print_help()
112116
sys.exit(1)
113117

118+
if server_settings.plugins and os.path.isdir(server_settings.plugins):
119+
for plugin in import_plugins(server_settings.plugins):
120+
app = plugin().init(app)
121+
114122
uvicorn.run(
115123
app, host=server_settings.host, port=server_settings.port
116124
)

0 commit comments

Comments
 (0)