Skip to content

Commit 7dbed97

Browse files
committed
hmm...
1 parent 0274e6b commit 7dbed97

File tree

1 file changed

+28
-25
lines changed

1 file changed

+28
-25
lines changed

examples/server/server.cpp

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3176,24 +3176,24 @@ int main(int argc, char ** argv) {
31763176
res.status = 200; // HTTP OK
31773177
};
31783178

3179-
const auto handle_get_control_vectors = [&ctx_server, &params](const httplib::Request & req, httplib::Response & res) {
3179+
const auto handle_get_control_vectors = [&ctx_server](const httplib::Request & req, httplib::Response & res) {
31803180
json vectors = json::array();
31813181

3182-
for (const auto & vec : params.control_vectors) {
3182+
for (const auto & vec : ctx_server.params.control_vectors) {
31833183
vectors.push_back(json {
31843184
{ "fname", vec.fname },
31853185
{ "strength", vec.strength }
31863186
});
31873187
}
31883188
json data = {
31893189
{ "vectors", vectors },
3190-
{ "layer_start", params.control_vector_layer_start },
3191-
{ "layer_end", params.control_vector_layer_end }
3190+
{ "layer_start", ctx_server.params.control_vector_layer_start },
3191+
{ "layer_end", ctx_server.params.control_vector_layer_end }
31923192
};
31933193
res.set_content(data.dump(), "application/json; charset=utf-8");
31943194
};
31953195

3196-
const auto handle_set_control_vectors = [&ctx_server, &res_error, &params, &handle_get_control_vectors](const httplib::Request & req, httplib::Response & res) {
3196+
const auto handle_set_control_vectors = [&ctx_server, &res_error, &handle_get_control_vectors](const httplib::Request & req, httplib::Response & res) {
31973197
res.set_header("Access-Control-Allow-Origin", req.get_header_value("Origin"));
31983198

31993199
json data = json::parse(req.body);
@@ -3202,52 +3202,55 @@ int main(int argc, char ** argv) {
32023202
if (data.contains("vectors") && data["vectors"].is_array()) {
32033203
for (const auto &item : data["vectors"]) {
32043204
auto v = item.get<llama_control_vector_load_info>();
3205-
// std::cout << "Add vector: " << v.fname << " " << v.strength << "\n";
3205+
std::cout << "Add vector: " << v.fname << " " << v.strength << "\n";
32063206
vec_params.push_back(v);
32073207
}
32083208
} else {
32093209
std::cerr << "No vectors passed\n";
32103210
res_error(res, format_error_response("No vectors passed", ERROR_TYPE_SERVER));
32113211
return;
32123212
}
3213-
for (auto v : params.control_vectors) {
3214-
// std::cout << "Subtract vector:" << v.fname << " " << v.strength << "\n";
3215-
vec_params.push_back({ -v.strength, v.fname });
3216-
}
32173213
const auto cvec = llama_control_vector_load(vec_params);
32183214
if (cvec.n_embd == -1) {
3219-
// std::cerr << "Could not load control vector\n";
3215+
std::cerr << "Could not load control vector\n";
32203216
res_error(res, format_error_response("Could not load control vector", ERROR_TYPE_SERVER));
32213217
return;
32223218
}
32233219

3224-
if (params.control_vector_layer_start <= 0) {
3225-
params.control_vector_layer_start = 1;
3220+
if (ctx_server.params.control_vector_layer_start <= 0) {
3221+
ctx_server.params.control_vector_layer_start = 1;
32263222
}
3227-
if (params.control_vector_layer_end <= 0){
3228-
params.control_vector_layer_end = llama_n_layer(ctx_server.model);
3223+
if (ctx_server.params.control_vector_layer_end <= 0){
3224+
ctx_server.params.control_vector_layer_end = llama_n_layer(ctx_server.model);
32293225
}
32303226
int err = llama_control_vector_apply(ctx_server.ctx,
32313227
cvec.data.data(),
32323228
cvec.data.size(),
32333229
cvec.n_embd,
3234-
params.control_vector_layer_start,
3235-
params.control_vector_layer_end);
3230+
ctx_server.params.control_vector_layer_start,
3231+
ctx_server.params.control_vector_layer_end);
32363232
if (err) {
32373233
std::cerr << "Could not apply control vector\n";
32383234
res_error(res, format_error_response("Could not apply control vector", ERROR_TYPE_SERVER));
32393235
return;
32403236
}
3241-
auto s = params.control_vectors.size();
3242-
auto s2 = vec_params.size();
3243-
params.control_vectors.clear();
3244-
unsigned i = 0;
3237+
ctx_server.params.control_vectors.clear();
32453238
for (auto v : vec_params) {
3246-
if (i++ < s2 - s) {
3247-
//std::cout << "set vector param: " << v.fname << " " << v.strength << "\n";
3248-
params.control_vectors.push_back(v);
3249-
}
3239+
//std::cout << "set vector param: " << v.fname << " " << v.strength << "\n";
3240+
ctx_server.params.control_vectors.push_back(v);
32503241
}
3242+
3243+
/*std::cerr << "Maybe we need to do this initiation ritual before it werks?\n"; // No, it's still all garbled bullshit.
3244+
3245+
std::vector<llama_token> tmp = { llama_token_bos(ctx_server.model), llama_token_eos(ctx_server.model), };
3246+
std::cerr << "decode, bro\n";
3247+
llama_decode(ctx_server.ctx, llama_batch_get_one(tmp.data(), std::min(tmp.size(), (size_t) ctx_server.params.n_batch), 0, 0));
3248+
std::cerr << "clear that fucking cache\n";
3249+
llama_kv_cache_clear(ctx_server.ctx);
3250+
std::cerr << "symcr0nice or what\n";
3251+
llama_synchronize(ctx_server.ctx);
3252+
std::cerr << "time will tell\n";
3253+
llama_reset_timings(ctx_server.ctx);*/
32513254
handle_get_control_vectors(req, res);
32523255
};
32533256

0 commit comments

Comments
 (0)