Configure a custom OpenAI-compatible server and model.
#include "example_support.hpp"
#include <iostream>
#include <utility>
using namespace neuralplus;
using namespace neuralplus_examples;
namespace {
void usage() {
std::cout
<< "Custom OpenAI-compatible server configuration\n"
<< "Usage: neuralplus_openai_compatible_custom_config [options]\n"
<< " --base-url URL Server root, default http://localhost:8000/v1\n"
<< " --model ID Server model ID, default local-model\n"
<< " --api-key KEY Optional bearer token\n"
<< " --api-key-env NAME Read bearer token from this environment variable\n"
<< " --prompt TEXT Prompt to send\n"
<< " --help Show this message\n";
}
}
int main(int argc, const char* const* argv) {
try {
const Arguments arguments(
argc,
argv,
{"--base-url",
"--model",
"--api-key",
"--api-key-env",
"--prompt"});
if (arguments.help()) {
usage();
return 0;
}
arguments.value_or("--model", "local-model"),
arguments.value_or(
"--base-url", "http://localhost:8000/v1"));
require_secure_base_url(config.base_url);
config.model.display_name = "Application-selected compatible model";
config.model.capabilities.tools = true;
config.model.capabilities.parallel_tool_calls = true;
config.model.provider_options["frequency_penalty"] = 0.1;
apply_api_key(arguments, config.api_key);
config.api_key_environment =
arguments.optional("--api-key-env");
arguments.value_or(
"--prompt", "Explain what this server model is good at."),
generation);
return 0;
} catch (const std::exception& error) {
return print_exception(error);
}
}
std::string text() const
Concatenates text parts without discarding non-text parts from the message.
NEURALPLUS_API std::unique_ptr< AIClient > make_client(OpenAIConfig config, const ClientOptions &options={})
Creates an OpenAI client. Credentials resolve as explicit value, environment, error.
Normalized response returned by both one provider round and the full tool loop.
Definition types.hpp:393
Message message
Assistant message returned by the provider.
Definition types.hpp:398
Per-call generation settings shared by all providers.
Definition types.hpp:339
std::optional< std::size_t > max_output_tokens
Maximum generated tokens for this call.
Definition types.hpp:344
Definition providers.hpp:96