feat: Add support for yaml based configs
This commit is contained in:
parent
1347e1d050
commit
060bfa64d5
4 changed files with 50 additions and 2 deletions
30
examples/batch-processing/server.py
Normal file
30
examples/batch-processing/server.py
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
"""llama-cpp-python server from scratch in a single file.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# import llama_cpp
|
||||||
|
|
||||||
|
# path = b"../../models/Qwen1.5-0.5B-Chat-GGUF/qwen1_5-0_5b-chat-q8_0.gguf"
|
||||||
|
|
||||||
|
# model_params = llama_cpp.llama_model_default_params()
|
||||||
|
# model = llama_cpp.llama_load_model_from_file(path, model_params)
|
||||||
|
|
||||||
|
# if model is None:
|
||||||
|
# raise RuntimeError(f"Failed to load model from file: {path}")
|
||||||
|
|
||||||
|
|
||||||
|
# ctx_params = llama_cpp.llama_context_default_params()
|
||||||
|
# ctx = llama_cpp.llama_new_context_with_model(model, ctx_params)
|
||||||
|
|
||||||
|
# if ctx is None:
|
||||||
|
# raise RuntimeError("Failed to create context")
|
||||||
|
|
||||||
|
|
||||||
|
from fastapi import FastAPI
|
||||||
|
|
||||||
|
app = FastAPI()
|
||||||
|
|
||||||
|
import openai.types.chat as types
|
||||||
|
|
||||||
|
@app.post("/v1/chat/completions")
|
||||||
|
def create_chat_completions():
|
||||||
|
return {"message": "Hello World"}
|
|
@ -59,6 +59,15 @@ def main():
|
||||||
if not os.path.exists(config_file):
|
if not os.path.exists(config_file):
|
||||||
raise ValueError(f"Config file {config_file} not found!")
|
raise ValueError(f"Config file {config_file} not found!")
|
||||||
with open(config_file, "rb") as f:
|
with open(config_file, "rb") as f:
|
||||||
|
# Check if yaml file
|
||||||
|
if config_file.endswith(".yaml") or config_file.endswith(".yml"):
|
||||||
|
import yaml
|
||||||
|
import json
|
||||||
|
|
||||||
|
config_file_settings = ConfigFileSettings.model_validate_json(
|
||||||
|
json.dumps(yaml.safe_load(f))
|
||||||
|
)
|
||||||
|
else:
|
||||||
config_file_settings = ConfigFileSettings.model_validate_json(f.read())
|
config_file_settings = ConfigFileSettings.model_validate_json(f.read())
|
||||||
server_settings = ServerSettings.model_validate(config_file_settings)
|
server_settings = ServerSettings.model_validate(config_file_settings)
|
||||||
model_settings = config_file_settings.models
|
model_settings = config_file_settings.models
|
||||||
|
|
|
@ -97,6 +97,14 @@ def create_app(
|
||||||
if not os.path.exists(config_file):
|
if not os.path.exists(config_file):
|
||||||
raise ValueError(f"Config file {config_file} not found!")
|
raise ValueError(f"Config file {config_file} not found!")
|
||||||
with open(config_file, "rb") as f:
|
with open(config_file, "rb") as f:
|
||||||
|
# Check if yaml file
|
||||||
|
if config_file.endswith(".yaml") or config_file.endswith(".yml"):
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
config_file_settings = ConfigFileSettings.model_validate_json(
|
||||||
|
json.dumps(yaml.safe_load(f))
|
||||||
|
)
|
||||||
|
else:
|
||||||
config_file_settings = ConfigFileSettings.model_validate_json(f.read())
|
config_file_settings = ConfigFileSettings.model_validate_json(f.read())
|
||||||
server_settings = ServerSettings.model_validate(config_file_settings)
|
server_settings = ServerSettings.model_validate(config_file_settings)
|
||||||
model_settings = config_file_settings.models
|
model_settings = config_file_settings.models
|
||||||
|
|
|
@ -35,6 +35,7 @@ server = [
|
||||||
"pydantic-settings>=2.0.1",
|
"pydantic-settings>=2.0.1",
|
||||||
"sse-starlette>=1.6.1",
|
"sse-starlette>=1.6.1",
|
||||||
"starlette-context>=0.3.6,<0.4",
|
"starlette-context>=0.3.6,<0.4",
|
||||||
|
"PyYAML>=5.1",
|
||||||
]
|
]
|
||||||
test = [
|
test = [
|
||||||
"pytest>=7.4.0",
|
"pytest>=7.4.0",
|
||||||
|
|
Loading…
Reference in a new issue