Ollama प्लगिन

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

इंस्टॉल करना

npm i --save genkitx-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 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;
}

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

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

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