openai-d 0.4.0
OpenAI Clinet APIs
To use this package, run the following command in your project's root directory:
						Manual usage
						
						Put the following dependency into your project's dependences section:
					
OpenAI API for D
This library provides unofficial D clients for OpenAI API
Features
Endpoint
- [x] OpenAI
 - [ ] Azure OpenAI Service
 
API
OpenAI
- [ ] Audio
 - [x] Chat
 - [x] tools (function_call)
 - [x] Embeddings
 - [ ] Fine-tunings
 - [ ] Files
 - [ ] Images
 - [x] Models
 - [x] Moderations
 
legacy
- [x] Completions (Legacy)
 
deprecated
- Edits
 - Use chat API instead. See: https://platform.openai.com/docs/deprecations/edit-models-endpoint
 
Optimization
- [ ] Switch HTTP client to 'requests'
- Not adopted because it is less convenient due to Windows' handling of system certificates. Version flag is required for support.
 - Adopting 'requests' is expected to lead to more efficient use of Fiber in vibe.d.
 
 
Usage
Installation
dub add openai-d
OpenAIClient
Completion
import std;
import openai;
// Load API key from environment variable
auto client = new OpenAIClient();
// POST /completions
auto message = completionRequest("gpt-3.5-turbo-instruct", "Hello, D Programming Language!\n", 10, 0);
message.stop = "\n";
auto response = client.completion(message);
writeln(response.choices[0].text.chomp());
Chat
import std;
import openai;
// Load API key from environment variable
auto client = new OpenAIClient();
// POST /chat/completions
const request = chatCompletionRequest("gpt-3.5-turbo", [
    systemChatMessage("You are a helpful assistant."),
    userChatMessage("Hello!")
], 16, 0);
auto response = client.chatCompletion(request);
writeln(response.choices[0].message.content);
Embedding
import std;
import openai;
// Load API key from environment variable
auto client = new OpenAIClient();
// POST /embeddings
const request = embeddingRequest("text-embedding-ada-002", "Hello, D Programming Language!");
auto response = client.embedding(request);
float[] embedding = response.data[0].embedding;
writeln(embedding.length); // text-embedding-ada-002 -> 1536
Moderation
import std;
import openai;
// Load API key from environment variable
auto client = new OpenAIClient();
// POST /moderations
const request = moderationRequest("D is a general-purpose programming language with static typing, systems-level access, and C-like syntax. With the D Programming Language, write fast, read fast, and run fast.");
auto response = client.moderation(request);
if (response.results[0].flagged)
    writeln("Warning!");
else
    writeln("Probably safe.");
OpenAIClientConfig
Environment variables
import std.process;
import openai;
environment["OPENAI_API_KEY"] = "<Your API Key>";
environment["OPENAI_ORGANIZATION"] = "<Your Organization>";
auto config = OpenAIClientConfig.fromEnvironment();
assert(config.apiKey == "<Your API Key>");
assert(config.organization == "<Your Organization>");
Configuration file
import std.file;
import openai;
write("config.json", `{"apiKey": "<Your API Key>", "organization": null}`);
scope (exit) remove("config.json");
auto config = OpenAIClientConfig.fromFile("config.json");
assert(config.apiKey == "<Your API Key>");
assert(config.organization is null);
- 0.4.0 released a year ago
 - lempiji/openai-d
 - MIT
 
- Authors:
 - Dependencies:
 - mir-ion
 - Versions:
 - 
						
Show all 11 versions0.9.0 2025-Jun-29 0.8.0 2025-Jun-08 0.7.0 2025-Feb-28 0.6.0 2025-Jan-19 0.5.0 2024-Aug-13  - Download Stats:
 - 
						
- 
								
0 downloads today
 - 
								
0 downloads this week
 - 
								
3 downloads this month
 - 
								
142 downloads total
 
 - 
								
 - Score:
 - 1.5
 - Short URL:
 - openai-d.dub.pm