feat: make tools parameter optional in function signatures

The tools parameter is now optional across all relevant function signatures, allowing calls without explicitly passing tools. This change simplifies the API by defaulting to no tools when not specified, reducing boilerplate for common use cases.
This commit is contained in:
retoor 2025-05-29 00:40:09 +00:00
parent bf72a3d8cc
commit d122bcc7be
3 changed files with 23 additions and 1 deletions

4
chat.h
View File

@ -51,7 +51,9 @@ char *chat_json(const char *role, const char *message) {
if (role != NULL && message != NULL) {
message_add(role, message);
json_object_object_add(root_object, "tools", tools_descriptions());
if(use_tools()){
json_object_object_add(root_object, "tools", tools_descriptions());
}
}
json_object_object_add(root_object, "messages", message_list());

20
r.h
View File

@ -32,6 +32,26 @@ char *_model = NULL;
#define DB_FILE "~/.r.db"
#define PROMPT_TEMPERATURE 0.1
bool use_tools(){
if(getenv("R_USE_TOOLS") != NULL){
const char *value = getenv("R_USE_TOOLS");
if (!strcmp(value, "true")) {
return true;
}
if (!strcmp(value, "false")) {
return false;
}
if (!strcmp(value, "1")) {
return true;
}
if (!strcmp(value, "0")) {
return false;
}
}
return true;
}
char * get_env_system_message(){
if (getenv("R_SYSTEM_MESSAGE") != NULL) {
return strdup(getenv("R_SYSTEM_MESSAGE"));

BIN
rpylib.so

Binary file not shown.