Compare commits

...

2 Commits

Author SHA1 Message Date
cf49a42093 Update. 2025-03-28 23:00:17 +01:00
ecadf1e9a2 Progress. 2025-03-28 21:38:50 +01:00
6 changed files with 73 additions and 15 deletions

View File

@ -1,4 +1,4 @@
all: build build_free build_rpylib run_free all: build build_rd build_free build_rpylib run_free
# Variables for compiler and flags # Variables for compiler and flags
CC = gcc CC = gcc
@ -13,6 +13,12 @@ build_free:
$(CC) -DOLLAMA main.c $(CFLAGS) -o rf $(CC) -DOLLAMA main.c $(CFLAGS) -o rf
publish rf publish rf
build_rd:
$(CC) -DRD main.c $(CFLAGS) -o rd
publish rd
build_rpylib: build_rpylib:
$(CC) -shared -o rpylib.so -fPIC rpylib.c -lpython3.12 `python3-config --includes` -I/usr/include/CL -ljson-c -lcurl -lsqlite3 $(CC) -shared -o rpylib.so -fPIC rpylib.c -lpython3.12 `python3-config --includes` -I/usr/include/CL -ljson-c -lcurl -lsqlite3
publish rpylib.so publish rpylib.so
@ -21,4 +27,7 @@ run:
./r --verbose ./r --verbose
run_free: run_free:
./rf --verbose ./rf --verbose
run_rd:
./rd --verbose

1
malloc.c Normal file
View File

@ -0,0 +1 @@
#include "malloc.h"

33
malloc.h Normal file
View File

@ -0,0 +1,33 @@
#ifndef R_MALLOC
#define R_MALLOC
#include <malloc.h>
long long int r_malloc_alloc_count = 0;
long long int r_malloc_alloc_total = 0;
void *r_malloc(size_t size) {
r_malloc_alloc_count++;
r_malloc_alloc_total++;
return malloc(size);
}
void r_free(void *ptr) {
r_malloc_alloc_count--;
free(ptr);
}
void r_malloc_stats() {
fprintf(stderr, "r_malloc_alloc_count: %lld\n", r_malloc_alloc_count);
fprintf(stderr, "r_malloc_alloc_total: %lld\n", r_malloc_alloc_total);
fprintf(stderr, "r_malloc_freed_total: %lld\n",
r_malloc_alloc_total - r_malloc_alloc_count);
}
#define malloc(x) r_malloc(x)
#define free(x) r_free(x)
#include <stdio.h>
#endif

17
r.h
View File

@ -7,16 +7,31 @@
#include <string.h> #include <string.h>
bool is_verbose = false; bool is_verbose = false;
#ifndef RD
#ifndef OLLAMA #ifndef OLLAMA
char *models_api_url = "https://api.openai.com/v1/models"; char *models_api_url = "https://api.openai.com/v1/models";
// char *completions_api_url = "https://ollama.molodetz.nl/v1/chat/completions"; // char *completions_api_url = "https://ollama.molodetz.nl/v1/chat/completions";
char *completions_api_url = "https://api.openai.com/v1/chat/completions"; char *completions_api_url = "https://api.openai.com/v1/chat/completions";
char *advanced_model = "gpt-4o-mini"; char *advanced_model = "gpt-4o-mini";
char *fast_model = "gpt-3.5-turbo"; char *fast_model = "gpt-3.5-turbo";
#else #endif
#endif
#ifdef RD
char *models_api_url = "https://api.openai.com/v1/models";
char *completions_api_url = "https://api.deepinfra.com/v1/openai/chat/completions";
char *advanced_model = "meta-llama/Llama-3.3-70B-Instruct-Turbo";
//char *advanced_model = "meta-llama/Meta-Llama-3.1-8B-Instruct";
//char *advanced_model = "google/gemini-1.5-flash";
char *fast_model = "Qwen/Qwen2.5-Coder-32B-Instruct";
#endif
#ifdef OLLAMA
char *models_api_url = "https://ollama.molodetz.nl/v1/models"; char *models_api_url = "https://ollama.molodetz.nl/v1/models";
char *completions_api_url = "https://ollama.molodetz.nl/v1/chat/completions"; char *completions_api_url = "https://ollama.molodetz.nl/v1/chat/completions";
char *advanced_model = "qwen2.5:3b"; char *advanced_model = "qwen2.5:3b";
//char *advanced_model = "qwen2.5-coder:0.5b";
char *fast_model = "qwen2.5:0.5b"; char *fast_model = "qwen2.5:0.5b";
#endif #endif

BIN
rpylib.so

Binary file not shown.

24
tools.h
View File

@ -216,7 +216,7 @@ struct json_object *tool_description_db_get() {
json_object_array_add(required, json_object_new_string("key")); json_object_array_add(required, json_object_new_string("key"));
json_object_object_add(parameters, "required", required); json_object_object_add(parameters, "required", required);
json_object_object_add(parameters, "additionalProperties", json_object_object_add(parameters, "additionalProperties",
json_object_new_boolean(0)); json_object_new_boolean(0));
json_object_object_add(function, "parameters", parameters); json_object_object_add(function, "parameters", parameters);
@ -266,7 +266,7 @@ struct json_object *tool_description_db_query() {
json_object_array_add(required, json_object_new_string("query")); json_object_array_add(required, json_object_new_string("query"));
json_object_object_add(parameters, "required", required); json_object_object_add(parameters, "required", required);
json_object_object_add(parameters, "additionalProperties", json_object_object_add(parameters, "additionalProperties",
json_object_new_boolean(0)); json_object_new_boolean(0));
json_object_object_add(function, "parameters", parameters); json_object_object_add(function, "parameters", parameters);
@ -323,7 +323,7 @@ struct json_object *tool_description_db_set() {
json_object_array_add(required, json_object_new_string("value")); json_object_array_add(required, json_object_new_string("value"));
json_object_object_add(parameters, "required", required); json_object_object_add(parameters, "required", required);
json_object_object_add(parameters, "additionalProperties", json_object_object_add(parameters, "additionalProperties",
json_object_new_boolean(0)); json_object_new_boolean(0));
json_object_object_add(function, "parameters", parameters); json_object_object_add(function, "parameters", parameters);
@ -494,8 +494,7 @@ struct json_object *tool_description_index_source_directory() {
struct json_object *required = json_object_new_array(); struct json_object *required = json_object_new_array();
json_object_array_add(required, json_object_new_string("path")); json_object_array_add(required, json_object_new_string("path"));
json_object_object_add(parameters, "required", required); json_object_object_add(parameters, "required", required);
json_object_object_add(parameters, "additionalProperties",
json_object_object_add(parameters, "additionalProperties",
json_object_new_boolean(0)); json_object_new_boolean(0));
json_object_object_add(function, "parameters", parameters); json_object_object_add(function, "parameters", parameters);
@ -621,7 +620,7 @@ struct json_object *tool_description_read_file() {
json_object_object_add(parameters, "required", required); json_object_object_add(parameters, "required", required);
json_object_object_add(parameters, "additionalProperties", json_object_object_add(parameters, "additionalProperties",
json_object_new_boolean(0)); json_object_new_boolean(0));
json_object_object_add(function, "parameters", parameters); json_object_object_add(function, "parameters", parameters);
json_object_object_add(function, "strict", json_object_new_boolean(1)); json_object_object_add(function, "strict", json_object_new_boolean(1));
@ -951,8 +950,8 @@ struct json_object *tool_description_http_get() {
json_object_array_add(required, json_object_new_string("url")); json_object_array_add(required, json_object_new_string("url"));
json_object_object_add(parameters, "required", required); json_object_object_add(parameters, "required", required);
json_object_object_add(parameters, "additionalProperties", //json_object_object_add(parameters, "additionalProperties",
json_object_new_boolean(0)); // json_object_new_boolean(0));
json_object_object_add(function, "parameters", parameters); json_object_object_add(function, "parameters", parameters);
json_object_object_add(function, "strict", json_object_new_boolean(1)); json_object_object_add(function, "strict", json_object_new_boolean(1));
@ -993,8 +992,8 @@ struct json_object *tool_description_directory_glob() {
json_object_array_add(required, json_object_new_string("path")); json_object_array_add(required, json_object_new_string("path"));
json_object_object_add(parameters, "required", required); json_object_object_add(parameters, "required", required);
json_object_object_add(parameters, "additionalProperties", // json_object_object_add(parameters, "additionalProperties",
json_object_new_boolean(0)); // json_object_new_boolean(0));
json_object_object_add(function, "parameters", parameters); json_object_object_add(function, "parameters", parameters);
json_object_object_add(function, "strict", json_object_new_boolean(1)); json_object_object_add(function, "strict", json_object_new_boolean(1));
@ -1032,8 +1031,8 @@ struct json_object *tool_description_linux_terminal() {
json_object_array_add(required, json_object_new_string("command")); json_object_array_add(required, json_object_new_string("command"));
json_object_object_add(parameters, "required", required); json_object_object_add(parameters, "required", required);
json_object_object_add(parameters, "additionalProperties", //json_object_object_add(parameters, "additionalProperties",
json_object_new_boolean(0)); // json_object_new_boolean(0));
json_object_object_add(function, "parameters", parameters); json_object_object_add(function, "parameters", parameters);
json_object_object_add(function, "strict", json_object_new_boolean(1)); json_object_object_add(function, "strict", json_object_new_boolean(1));
@ -1326,3 +1325,4 @@ struct json_object *tools_execute(struct json_object *tools_array) {
} }
#endif #endif