#ifndef R_H #define R_H #include "auth.h" #include "utils.h" #include <stdbool.h> #include <string.h> bool is_verbose = true; char *models_api_url = "https://api.openai.com/v1/models"; char *completions_api_url = "https://api.openai.com/v1/chat/completions"; char *advanced_model = "gpt-4o-mini"; char *fast_model = "gpt-3.5-turbo"; // char *models_api_url = "https://api.openai.com/v1/models"; // char *completions_api_url = "https://api.anthropic.com/v1/chat/completions"; // char *advanced_model = "claude-3-5-haiku-20241022"; // char *advanced_model = "meta-llama/Meta-Llama-3.1-8B-Instruct"; // char *advanced_model = "google/gemini-1.5-flash"; // char *fast_model = "claude-3-5-haiku-20241022"; // #endif // #ifdef OLLAMA // char *models_api_url = "https://ollama.molodetz.nl/v1/models"; // char *completions_api_url = "https://ollama.molodetz.nl/v1/chat/completions"; // char *advanced_model = "qwen2.5:3b"; // char *advanced_model = "qwen2.5-coder:0.5b"; // char *fast_model = "qwen2.5:0.5b"; // #endif 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")); } return NULL; } bool get_use_strict() { if (getenv("R_USE_STRICT") != NULL) { const char *value = getenv("R_USE_STRICT"); 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_completions_api_url() { if (getenv("R_BASE_URL") != NULL) { return joinpath(getenv("R_BASE_URL"), "v1/chat/completions"); } return completions_api_url; } char *get_models_api_url() { if (getenv("R_BASE_URL") != NULL) { return joinpath(getenv("R_BASE_URL"), "v1/models"); } return models_api_url; } void set_prompt_model(const char *model) { if (_model != NULL) { free(_model); } _model = strdup(model); } const char *get_prompt_model() { if (_model == NULL && getenv("R_MODEL") != NULL) { _model = strdup(getenv("R_MODEL")); } if (_model) { return _model; } if (auth_type != AUTH_TYPE_API_KEY) { if (_model == NULL) { _model = strdup(fast_model); } } else if (_model == NULL) { _model = strdup(advanced_model); } return _model; } #endif