172 sao GitHub và vẫn tăng — dzhng/llm-api là dự án TypeScript mà TopGit đang theo dõi trên nền tảng. Fully typed & consistent chat APIs for OpenAI, Anthropic, Groq, and Azure's chat models for browser, edge, and node environments.
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
options
You can override the default request options via this parameter. A request will automatically be retried if there is a ratelimit or server error.
type ModelRequestOptions = {
// set to automatically add system message (only relevant when using textCompletion)
systemMessage?: string | (() => string);
// send a prefix to the model response so the model can continue generating from there, useful for steering the model towards certain output structures.
// the response prefix WILL be appended to the model response.
// for Anthropic's models ONLY
responsePrefix?: string;
// function related parameters are for OpenAI's models ONLY
functions?: ModelFunction[];
// force the model to call the following function
callFunction?: string;
// default: 3
retries?: number;
// default: 30s
retryInterval?: number;
// default: 60s
timeout?: number;
// the minimum amount of tokens to allocate for the response. if the request is predicted to not have enough tokens, it will automatically throw a 'TokenError' without sending the request
// default: 200
minimumResponseTokens?: number;
// the maximum amount of tokens to use for response
// NOTE: in OpenAI models, setting this option also requires contextSize in ModelConfig to be set
maximumResponseTokens?: number;
};
Response
Completion responses are in the following format:
interface ModelResponse {
content?: string;
// used to parse function responses
name?: string;
arguments?: JsonValue;
usage?: {
promptTokens: number;
completionTokens: number;
totalTokens: number;
};
// function to send another message in the same 'chat', this will automatically append a new message to the messages array
respond: (
message: ChatCompletionRequestMessage,
opt?: ModelRequestOptions,
) => Promise<ModelResponse>;
}
📃 Token Errors
A common error with LLM APIs is token usage - you are only allowed to fit a certain amount of data in the context window.
If you set a contextSize key, llm-api will automatically determine if the request will breach the token limit BEFORE sending the actual request to the model provider (e.g. OpenAI). This will save one network round-trip call and let you handle these type of errors in a responsive manner.
const openai = new OpenAIChatApi(
{ apiKey: 'YOUR_OPENAI_KEY' },
{ model: 'gpt-4-0613', contextSize: 8129 },
);
try {
const res = await openai.textCompletion(...);
} catch (e) {
if (e instanceof TokenError) {
// handle token errors...
}
}
🔷 Azure
llm-api also comes with support for Azure's OpenAI models. The Azure version is usually much faster and more reliable than OpenAI's own API endpoints. In order to use the Azure endpoints, you must include 2 Azure specific options when initializing the OpenAI model, azureDeployment and azureEndpoint. The apiKey field will also now be used for the Azure API key.
You can find the Azure API key and endpoint in the Azure Portal. The Azure Deployment must be created under the Azure AI Portal.
Note that the model parameter in ModelConfig will be ignored when using Azure. This is because in the Azure system, the model is selected on deployment creation, not on run time.
const openai = new OpenAIChatApi({
apiKey: 'AZURE_OPENAI_KEY',
azureDeployment: 'AZURE_DEPLOYMENT_NAME',
azureEndpoint: 'AZURE_ENDPOINT',
// optional, defaults to 2023-06-01-preview
azureApiVersion: 'YYYY-MM-DD',
});
🔶 Anthropic
Anthropic's models have the unique advantage of a large 100k context window and extremely fast performance. If no explicit model is specified, llm-api will default to the Claude Sonnet model.
const anthropic = new AnthropicChatApi(params: AnthropicConfig, config: ModelConfig);
🔶 Groq
Groq is a new LLM inference provider that provides the fastest inference speed on the market. They currently support Meta's Llama 2 and Mistral's Mixtral models.
const groq = new GroqChatApi(params: GroqConfig, config: ModelConfig);
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/dzhng/llm-api là nguồn chính thức.
dzhng/llm-api có bao nhiêu sao?
dzhng/llm-api có 172 sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/dzhng/llm-api. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
dzhng/llm-api có phải mã nguồn mở không?
Có — dzhng/llm-api phát hành theo license MIT, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/dzhng/llm-api.
dzhng/llm-api còn đang phát triển không?
Commit gần nhất trên dzhng/llm-api là 2.2 năm trước (theo timestamp GitHub). Repo có 11 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
dzhng/llm-api là gì?
dzhng/llm-api (dzhng/llm-api) là dự án TypeScript trên GitHub. Theo mô tả gốc: Fully typed & consistent chat APIs for OpenAI, Anthropic, Groq, and Azure's chat models for browser, edge, and node environments.
Đọc đầy đủ README ở tab phía trên.
Vẫn đang phân vân về llm-api?
Một cú bấm sẽ gửi câu hỏi kèm trang này cho AI — xem AI nói gì về llm-api.