Ollama प्लगिन

Ollama प्लगिन, उन सभी स्थानीय एलएलएम के लिए इंटरफ़ेस उपलब्ध कराता है जो Android 18 के साथ काम करते हैं ओलामा.

इंस्टॉल करना

npm i --save genkitx-ollama

कॉन्फ़िगरेशन

इस प्लग इन के लिए आवश्यक है कि आप पहले ollama सर्वर को इंस्टॉल करें और चलाएं. इन्हें फ़ॉलो किया जा सकता है यहां दिए गए निर्देश देखें: https://ollama.com/download

आपके पास अपनी पसंद का मॉडल डाउनलोड करने के लिए, Ollama CLI का इस्तेमाल करने का विकल्प है. इसके लिए उदाहरण:

ollama pull gemma

इस प्लग इन का इस्तेमाल करने के लिए, 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
    }),
  ],
});

पुष्टि करना

अगर आपको ओलामा के रिमोट डिप्लॉयमेंट को ऐक्सेस करना है और इसके लिए कस्टम हेडर (स्टैटिक, जैसे कि एपीआई कुंजियां या डाइनैमिक, जैसे कि पुष्टि करने वाले हेडर), तो आपको इन चीज़ों को ollama कॉन्फ़िगरेशन प्लगिन में तय करने का विकल्प मिलता है:

स्टैटिक हेडर:

ollama({
  models: [{ name: 'gemma'}],
  requestHeaders: {
    'api-key': 'API Key goes here'
  },
  serverAddress: 'https://my-deployment',
}),

हर अनुरोध के लिए, डाइनैमिक तौर पर हेडर भी सेट किए जा सकते हैं. यहां एक उदाहरण दिया गया है. इसमें, लिंक का इस्तेमाल करके आईडी टोकन सेट करने का तरीका बताया गया है Google प्राधिकरण लाइब्रेरी:

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;
}

इस्तेमाल किए जाने से जुड़ी जानकारी

यह प्लगिन, मॉडल रेफ़रंस को स्टैटिक तौर पर एक्सपोर्ट नहीं करता. इनमें से किसी एक को चुनें स्ट्रिंग आइडेंटिफ़ायर का इस्तेमाल करके कॉन्फ़िगर किए गए मॉडल:

const llmResponse = await generate({
  model: 'ollama/gemma',
  prompt: 'Tell me a joke.',
});