Skip to content

kassane/ollama-d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ollama-d

Static Badge Latest release Artifacts

D language bindings for the Ollama REST API - Seamless integration with local AI models

Features

  • Text generation with native
  • Chat interactions with local AI models
  • Model management (list, create, show, pull, push, copy, delete models)
  • Configurable timeout settings
  • Simple and intuitive API design using std.net.curl and std.json
  • Server version retrieval
  • OpenAI-compatible API endpoints

Prerequisites

Quick Examples

import ollama;
import std.stdio;

void main() {
    // Initialize Ollama client on localhost at port 11434
    auto client = new OllamaClient();

    // Text generation
    auto generateResponse = client.generate("llama3.2", "Why is the sky blue?");
    writeln("Generate Response: ", generateResponse["response"].str);

    // Chat interaction
    Message[] messages = [Message("user", "Hello, how are you?")];
    auto chatResponse = client.chat("llama3.2", messages);
    writeln("Chat Response: ", chatResponse["message"]["content"].str);

    // List available models
    auto models = client.listModels();
    writeln("Available Models: ", models);

    // OpenAI-compatible chat completions
    auto openaiResponse = client.chatCompletions("llama3.2", messages, 50, 0.7);
    writeln("OpenAI-style Response: ", openaiResponse["choices"][0]["message"]["content"].str);

    // Get server version
    auto version = client.getVersion();
    writeln("Ollama Server Version: ", version);
}

Additional Methods

  • generate(): Text generation with custom options
  • chat(): Conversational interactions
  • listModels(): Retrieve available models
  • showModel(): Get detailed model information
  • createModel(): Create custom models
  • copy(): Copy existing models
  • deleteModel(): Remove models from server
  • pull(): Download models from registry
  • push(): Upload models to registry
  • chatCompletions(): OpenAI-compatible chat endpoint
  • completions(): OpenAI-compatible text completion
  • getModels(): List models in OpenAI-compatible format
  • setTimeOut(): Configure request timeout duration
  • getVersion(): Retrieve Ollama server version

License

MIT License