forked from janhq/cortex.cpp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.h
More file actions
126 lines (110 loc) · 5.76 KB
/
models.h
File metadata and controls
126 lines (110 loc) · 5.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#pragma once
#include <drogon/HttpController.h>
#include <trantor/utils/Logger.h>
#include "services/engine_service.h"
#include "services/model_service.h"
#include "services/model_source_service.h"
using namespace drogon;
class Models : public drogon::HttpController<Models, false> {
public:
METHOD_LIST_BEGIN
METHOD_ADD(Models::PullModel, "/pull", Options, Post);
METHOD_ADD(Models::GetModelPullInfo, "/pull/info", Options, Post);
METHOD_ADD(Models::AbortPullModel, "/pull", Options, Delete);
METHOD_ADD(Models::ListModel, "", Get);
METHOD_ADD(Models::GetModel, "/{1}", Get);
METHOD_ADD(Models::UpdateModel, "/{1}", Options, Patch);
METHOD_ADD(Models::ImportModel, "/import", Options, Post);
METHOD_ADD(Models::DeleteModel, "/{1}", Options, Delete);
METHOD_ADD(Models::StartModel, "/start", Options, Post);
METHOD_ADD(Models::StopModel, "/stop", Options, Post);
METHOD_ADD(Models::GetModelStatus, "/status/{1}", Get);
METHOD_ADD(Models::AddRemoteModel, "/add", Options, Post);
METHOD_ADD(Models::GetRemoteModels, "/remote/{1}", Get);
METHOD_ADD(Models::AddModelSource, "/sources", Post);
METHOD_ADD(Models::DeleteModelSource, "/sources", Delete);
METHOD_ADD(Models::GetModelSources, "/sources", Get);
ADD_METHOD_TO(Models::PullModel, "/v1/models/pull", Options, Post);
ADD_METHOD_TO(Models::AbortPullModel, "/v1/models/pull", Options, Delete);
ADD_METHOD_TO(Models::ListModel, "/v1/models", Get);
ADD_METHOD_TO(Models::GetModel, "/v1/models/{1}", Get);
ADD_METHOD_TO(Models::UpdateModel, "/v1/models/{1}", Options, Patch);
ADD_METHOD_TO(Models::ImportModel, "/v1/models/import", Options, Post);
ADD_METHOD_TO(Models::DeleteModel, "/v1/models/{1}", Options, Delete);
ADD_METHOD_TO(Models::StartModel, "/v1/models/start", Options, Post);
ADD_METHOD_TO(Models::StopModel, "/v1/models/stop", Options, Post);
ADD_METHOD_TO(Models::GetModelStatus, "/v1/models/status/{1}", Get);
ADD_METHOD_TO(Models::AddRemoteModel, "/v1/models/add", Options, Post);
ADD_METHOD_TO(Models::GetRemoteModels, "/v1/models/remote/{1}", Get);
ADD_METHOD_TO(Models::AddModelSource, "/v1/models/sources", Post);
ADD_METHOD_TO(Models::DeleteModelSource, "/v1/models/sources", Delete);
ADD_METHOD_TO(Models::GetModelSources, "/v1/models/sources", Get);
ADD_METHOD_TO(Models::GetModelSource, "/v1/models/sources/{src}", Get);
ADD_METHOD_TO(Models::GetRepositoryList,
"/v1/models/hub?author={author}&tag={tag}", Get);
METHOD_LIST_END
explicit Models(std::shared_ptr<DatabaseService> db_service,
std::shared_ptr<ModelService> model_service,
std::shared_ptr<EngineService> engine_service,
std::shared_ptr<ModelSourceService> mss)
: db_service_(db_service),
model_service_{model_service},
engine_service_{engine_service},
model_src_svc_(mss) {}
void PullModel(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback);
void GetModelPullInfo(
const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback) const;
void AbortPullModel(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback);
void ListModel(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback) const;
void GetModel(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback,
const std::string& model_id) const;
void UpdateModel(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback,
const std::string& model_id) const;
void ImportModel(
const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback) const;
void AddRemoteModel(
const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback) const;
void DeleteModel(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback,
const std::string& model_id);
void SetModelAlias(
const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback) const;
void StartModel(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback);
void StopModel(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback);
void GetModelStatus(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback,
const std::string& model_id);
void GetRemoteModels(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback,
const std::string& engine_id);
void AddModelSource(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback);
void DeleteModelSource(
const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback);
void GetModelSources(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback);
void GetModelSource(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback,
const std::string& src);
void GetRepositoryList(const HttpRequestPtr& req,
std::function<void(const HttpResponsePtr&)>&& callback,
std::optional<std::string> author,
std::optional<std::string> tag);
private:
std::shared_ptr<DatabaseService> db_service_;
std::shared_ptr<ModelService> model_service_;
std::shared_ptr<EngineService> engine_service_;
std::shared_ptr<ModelSourceService> model_src_svc_;
};