| from app.db.engine import get_db |
| from app.db.models.models import Model |
| from app.db.models.providers import Provider |
|
|
|
|
| def get_model_by_provider_and_name(provider_id: int, model_name: str): |
| db = next(get_db()) |
| try: |
| model = db.query(Model).filter_by(provider_id=provider_id, model_name=model_name).first() |
| if model: |
| return { |
| "id": model.id, |
| "provider_id": model.provider_id, |
| "model_name": model.model_name, |
| "created_at": model.created_at, |
| } |
| return None |
| finally: |
| db.close() |
|
|
|
|
| def insert_model(provider_id: int, model_name: str): |
| db = next(get_db()) |
| try: |
| model = Model(provider_id=provider_id, model_name=model_name) |
| db.add(model) |
| db.commit() |
| db.refresh(model) |
| return { |
| "id": model.id, |
| "provider_id": model.provider_id, |
| "model_name": model.model_name, |
| "created_at": model.created_at, |
| } |
| finally: |
| db.close() |
|
|
|
|
| def get_models_by_provider(provider_id: int): |
| db = next(get_db()) |
| try: |
| models = db.query(Model).filter_by(provider_id=provider_id).all() |
| return [{"id": m.id, "model_name": m.model_name} for m in models] |
| finally: |
| db.close() |
|
|
|
|
| def delete_model(model_id: int): |
| db = next(get_db()) |
| try: |
| model = db.query(Model).filter_by(id=model_id).first() |
| if model: |
| db.delete(model) |
| db.commit() |
| finally: |
| db.close() |
|
|
|
|
| def get_all_models(): |
| db = next(get_db()) |
| try: |
| |
| models = db.query(Model).join(Provider, Model.provider_id == Provider.id).filter(Provider.enabled == 1).all() |
| return [ |
| {"id": m.id, "provider_id": m.provider_id, "model_name": m.model_name} |
| for m in models |
| ] |
| finally: |
| db.close() |