टूल्स API

AI इंटरैक्शन के लिए कस्टम टूल्स बनाएं और प्रबंधित करें। फ़ाइल ऑपरेशन, शेल कमांड, वेब अनुरोध और अधिक के लिए शक्तिशाली टूल्स के साथ Gemini CLI का विस्तार करें।

अंतर्निहित टूल्स

Gemini CLI में तुरंत उपयोग के लिए तैयार शक्तिशाली टूल्स

फ़ाइल सिस्टम टूल्स

फ़ाइलों को पढ़ने, लिखने और प्रबंधित करने के लिए टूल्स

read_file

फ़ाइल से सामग्री पढ़ें

हस्ताक्षर:
read_file(path: string): Promise<string>
उदाहरण:
const content = await tools.read_file('./package.json');
console.log(content);

write_file

फ़ाइल में सामग्री लिखें

हस्ताक्षर:
write_file(path: string, content: string): Promise<void>
उदाहरण:
await tools.write_file('./output.txt', 'Hello, World!');

list_files

डायरेक्टरी में फ़ाइलों की सूची बनाएं

हस्ताक्षर:
list_files(path: string): Promise<string[]>
उदाहरण:
const files = await tools.list_files('./src');
console.log(files);

शेल टूल्स

शेल कमांड निष्पादित करने के लिए टूल्स

run_shell_command

शेल कमांड निष्पादित करें

हस्ताक्षर:
run_shell_command(command: string, options?: ShellOptions): Promise<ShellResult>
उदाहरण:
const result = await tools.run_shell_command('ls -la');
console.log(result.stdout);

run_script

स्क्रिप्ट फ़ाइल निष्पादित करें

हस्ताक्षर:
run_script(scriptPath: string, args?: string[]): Promise<ShellResult>
उदाहरण:
const result = await tools.run_script('./build.sh', ['--production']);

वेब टूल्स

वेब अनुरोध और खोज के लिए टूल्स

web_fetch

URL से सामग्री प्राप्त करें

हस्ताक्षर:
web_fetch(url: string, options?: FetchOptions): Promise<string>
उदाहरण:
const content = await tools.web_fetch('https://api.example.com/data');
console.log(content);

web_search

जानकारी के लिए वेब खोजें

हस्ताक्षर:
web_search(query: string, options?: SearchOptions): Promise<SearchResult[]>
उदाहरण:
const results = await tools.web_search('Gemini CLI documentation');
console.log(results);

कस्टम टूल विकास

Gemini CLI कार्यक्षमता का विस्तार करने के लिए अपने स्वयं के टूल्स बनाएं

कस्टम टूल बनाना

यहाँ एक कस्टम मौसम टूल बनाने का पूरा उदाहरण है:

import { Tool, ToolDefinition } from '@google/generative-ai-cli';

// कस्टम टूल परिभाषित करें
const weatherTool: ToolDefinition = {
  name: 'get_weather',
  description: 'किसी स्थान के लिए वर्तमान मौसम प्राप्त करें',
  parameters: {
    type: 'object',
    properties: {
      location: {
        type: 'string',
        description: 'शहर और राज्य, जैसे मुंबई, भारत'
      },
      unit: {
        type: 'string',
        enum: ['celsius', 'fahrenheit'],
        description: 'तापमान इकाई'
      }
    },
    required: ['location']
  },
  execute: async ({ location, unit = 'celsius' }) => {
    // आपका मौसम API लॉजिक यहाँ
    const response = await fetch(`https://api.weather.com/v1/current?location=${location}&unit=${unit}`);
    const data = await response.json();
    return `${location} में वर्तमान मौसम: ${data.temperature}°${unit === 'celsius' ? 'C' : 'F'}, ${data.description}`;
  }
};

// टूल पंजीकृत करें
gemini.registerTool(weatherTool);

// बातचीत में टूल का उपयोग करें
const response = await gemini.ask("दिल्ली में मौसम कैसा है?", {
  tools: ['get_weather']
});

टूल पंजीकरण और प्रबंधन

आपके Gemini CLI इंस्टेंस में टूल्स का प्रबंधन

टूल्स पंजीकृत करें

// एक टूल पंजीकृत करें
gemini.registerTool(myTool);

// कई टूल्स पंजीकृत करें
gemini.registerTools([tool1, tool2, tool3]);

// प्लगइन से लोड करें
gemini.loadPlugin('./my-tools-plugin');

टूल्स सूचीबद्ध करें और प्रबंधित करें

// सभी उपलब्ध टूल्स सूचीबद्ध करें
const tools = gemini.listTools();

// टूल जानकारी प्राप्त करें
const toolInfo = gemini.getTool('tool_name');

// टूल को अपंजीकृत करें
gemini.unregisterTool('tool_name');

सर्वोत्तम प्रथाएं

प्रभावी टूल्स बनाने के लिए दिशानिर्देश

टूल डिज़ाइन

  • टूल्स को एकल जिम्मेदारी पर केंद्रित रखें
  • स्पष्ट, वर्णनात्मक नाम और विवरण प्रदान करें
  • व्यापक पैरामीटर स्कीमा परिभाषित करें
  • त्रुटियों को सुंदरता से संभालें और अर्थपूर्ण संदेश प्रदान करें

प्रदर्शन

  • एसिंक ऑपरेशन को सही तरीके से लागू करें
  • लंबे ऑपरेशन के लिए टाइमआउट हैंडलिंग जोड़ें
  • उपयुक्त होने पर परिणामों को कैश करें
  • प्रसंस्करण से पहले इनपुट को मान्य करें

संबंधित संसाधन

टूल विकास और उपयोग के बारे में और जानें