Wtyczka Ollama zapewnia interfejsy do dowolnego z lokalnych LLM obsługiwanych przez Ollama
Instalacja
npm i --save genkitx-ollama
Konfiguracja
Ta wtyczka wymaga wcześniejszego zainstalowania i uruchomienia serwera ollama. Możesz obserwować Instrukcje znajdziesz na https://ollama.com/download
Aby pobrać model, który Cię interesuje, możesz użyć interfejsu wiersza poleceń Ollama. Przykład:
ollama pull gemma
Aby używać tej wtyczki, określ ją, gdy wywołujesz 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
}),
],
});
Uwierzytelnianie
Jeśli chcesz uzyskać dostęp do zdalnych wdrożeń Ollamy, które wymagają niestandardowych nagłówków (statycznych, takich jak klucze interfejsu API lub dynamiczne, takie jak nagłówki uwierzytelniania), możesz je określić we wtyczce konfiguracji ollama:
Nagłówki statyczne:
ollama({
models: [{ name: 'gemma'}],
requestHeaders: {
'api-key': 'API Key goes here'
},
serverAddress: 'https://my-deployment',
}),
Możesz też dynamicznie ustawiać nagłówki dla każdego żądania. Oto przykład konfiguracji tokena tożsamości za pomocą do biblioteki 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) => ({
Authorization: `Bearer ${await getIdToken(params.serverAddress)}`,
}),
} as OllamaPluginParams;
export default configureGenkit({
plugins: [
ollama(isDevEnv() ? ollamaDev: ollamaProd),
],
});
export async function getIdToken(url: string): Promise<string> {
const auth = getAuthClient();
const client = await auth.getIdTokenClient(url);
return client.idTokenProvider.fetchIdToken(url);
}
let auth: GoogleAuth;
function getAuthClient() {
// Lazy load GoogleAuth client.
if (!auth) {
auth = new GoogleAuth();
}
return auth;
}
Wykorzystanie
Ta wtyczka nie eksportuje statycznie odwołań do modeli. Podaj jedną z wartości skonfigurowane przez Ciebie modele za pomocą identyfikatora ciągu:
const llmResponse = await generate({
model: 'ollama/gemma',
prompt: 'Tell me a joke.',
});