Trình bổ trợ Ollama cung cấp giao diện cho mọi mô hình ngôn ngữ lớn (LLM) địa phương được hỗ trợ Ollama.
Lắp đặt
npm i --save genkitx-ollama
Cấu hình
Trình bổ trợ này yêu cầu bạn cài đặt trước và chạy máy chủ ollama. Bạn có thể theo dõi hướng dẫn trên: https://ollama.com/download
Bạn có thể sử dụng Ollama CLI để tải mô hình mà bạn quan tâm xuống. Cho ví dụ:
ollama pull gemma
Để sử dụng trình bổ trợ này, hãy chỉ định trình bổ trợ này khi bạn gọi configureGenkit()
.
import { ollama } from 'genkitx-ollama';
export default configureGenkit({
plugins: [
ollama({
models: [
{
name: 'gemma',
type: 'generate', // type: 'chat' | 'generate' | undefined
},
],
serverAddress: 'http://127.0.0.1:11434', // default local address
}),
],
});
Xác thực
Nếu bạn muốn truy cập vào các bản triển khai từ xa của ollama yêu cầu tiêu đề tuỳ chỉnh (tĩnh, chẳng hạn như khoá API hoặc động, chẳng hạn như tiêu đề xác thực), bạn có thể chỉ định các khoá đó trong trình bổ trợ cấu hình ollama:
Tiêu đề tĩnh:
ollama({
models: [{ name: 'gemma'}],
requestHeaders: {
'api-key': 'API Key goes here'
},
serverAddress: 'https://my-deployment',
}),
Bạn cũng có thể tự động đặt tiêu đề cho mỗi yêu cầu. Dưới đây là ví dụ về cách đặt mã thông báo giá trị nhận dạng bằng thư viện Google Auth:
import { GoogleAuth } from 'google-auth-library';
import { ollama, OllamaPluginParams } from 'genkitx-ollama';
import { configureGenkit, isDevEnv } from '@genkit-ai/core';
const ollamaCommon = { models: [{ name: 'gemma:2b' }] };
const ollamaDev = {
...ollamaCommon,
serverAddress: 'http://127.0.0.1:11434',
} as OllamaPluginParams;
const ollamaProd = {
...ollamaCommon,
serverAddress: 'https://my-deployment',
requestHeaders: async (params) => {
const headers = await fetchWithAuthHeader(params.serverAddress);
return { Authorization: headers['Authorization'] };
},
} as OllamaPluginParams;
export default configureGenkit({
plugins: [
ollama(isDevEnv() ? ollamaDev : ollamaProd),
],
});
// Function to lazily load GoogleAuth client
let auth: GoogleAuth;
function getAuthClient() {
if (!auth) {
auth = new GoogleAuth();
}
return auth;
}
// Function to fetch headers, reusing tokens when possible
async function fetchWithAuthHeader(url: string) {
const client = await getIdTokenClient(url);
const headers = await client.getRequestHeaders(url); // Auto-manages token refresh
return headers;
}
async function getIdTokenClient(url: string) {
const auth = getAuthClient();
const client = await auth.getIdTokenClient(url);
return client;
}
Cách sử dụng
Trình bổ trợ này không xuất tĩnh các tệp tham chiếu mô hình. Chỉ định một trong các mô hình mà bạn đã định cấu hình bằng cách sử dụng mã nhận dạng chuỗi:
const llmResponse = await generate({
model: 'ollama/gemma',
prompt: 'Tell me a joke.',
});