> ## Documentation Index
> Fetch the complete documentation index at: https://ai-kb.automationanywhere.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK अवलोकन

> हमारे TypeScript SDK का उपयोग करके EKB को अपने अनुप्रयोगों में एकीकृत करें

EKB SDK (Software Development Kit) EKB की शक्तिशाली सुविधाओं को आपके अनुप्रयोगों में एकीकृत करने के लिए एक व्यापक TypeScript/JavaScript लाइब्रेरी प्रदान करता है। चैट इंटरफ़ेस बनाएँ, संरचित डेटा प्रबंधित करें, वॉयस वार्तालाप सक्षम करें और प्रोग्रामेटिक रूप से AI एजेंट्स का लाभ उठाएँ। यह लेख आपको EKB SDK का अवलोकन, कुछ उपयोग मामलों के उदाहरण और सर्वोत्तम प्रथाएँ प्रदान करेगा।

## EKB SDK क्या है?

EKB SDK एक TypeScript लाइब्रेरी है जो EKB की मूल सुविधाओं तक प्रोग्रामेटिक पहुँच प्रदान करती है:

* **ChatSDK**: चैट प्रबंधन, संदेश हैंडलिंग और स्ट्रीमिंग प्रतिक्रियाओं के साथ संवादी AI इंटरफ़ेस बनाएँ।
* **SmartTablesSDK**: उन्नत क्वेरी, फ़िल्टरिंग और AI-संचालित डेटा प्रसंस्करण के साथ संरचित डेटा तालिकाएँ प्रबंधित करें।
* **VoiceSDK**: स्वचालित चैट एकीकरण और React hooks के साथ वॉयस वार्तालाप सक्षम करें।

## इंस्टॉलेशन

```bash theme={null}
npm install @odin-ai-staging/sdk
```

या yarn के साथ:

```bash theme={null}
yarn add @odin-ai-staging/sdk
```

## त्वरित आरंभ

### बुनियादी सेटअप

```typescript theme={null}
import { ChatSDK } from '@odin-ai-staging/sdk';

// SDK को आरंभ करें
const chatSDK = new ChatSDK({
  baseUrl: 'https://your-api-endpoint.com/',
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
  apiSecret: 'your-api-secret'
});

// चैट बनाएँ और संदेश भेजें
const chat = await chatSDK.createChat('मेरी पहली चैट');
const response = await chatSDK.sendMessage('नमस्ते!', {
  chatId: chat.chat_id
});

console.log('AI प्रतिक्रिया:', response.message);
```

## प्रमाणीकरण

SDK दो प्रमाणीकरण विधियों का समर्थन करता है:

### 1. API Key प्रमाणीकरण (सर्वर-साइड के लिए अनुशंसित)

सर्वर-टू-सर्वर संचार और बाहरी एकीकरण के लिए API Keys का उपयोग करें:

```typescript theme={null}
const chatSDK = new ChatSDK({
  baseUrl: 'https://api.example.com/',
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
  apiSecret: 'your-api-secret'
});
```

**API Keys प्राप्त करना:**

1. अपने EKB डैशबोर्ड में **My Account** > **API Keys** पर जाएँ
2. एक नई API Key pair बनाएँ
3. API Key और API Secret कॉपी करें
4. इन्हें सुरक्षित रूप से सहेजें (एनवायरनमेंट वेरिएबल्स का उपयोग करें, कभी भी version control में कमिट न करें)

### 2. Access Token प्रमाणीकरण (वेब ऐप्स के लिए)

मौजूदा उपयोगकर्ता सत्रों वाले क्लाइंट-साइड अनुप्रयोगों के लिए access tokens का उपयोग करें:

```typescript theme={null}
const chatSDK = new ChatSDK({
  baseUrl: 'https://api.example.com/',
  projectId: 'your-project-id',
  accessToken: 'user-access-token' // आपके प्रमाणीकरण सिस्टम से
});
```

## SDK घटक

### Chat SDK

व्यापक चैट प्रबंधन के साथ संवादी AI इंटरफ़ेस बनाएँ।

**प्रमुख विशेषताएँ:**

* चैट बनाएँ, सूचीबद्ध करें और प्रबंधित करें
* स्ट्रीमिंग समर्थन के साथ संदेश भेजें
* ज्ञान आधार एकीकरण
* फ़ाइल अपलोड (चित्र, दस्तावेज़)
* उपयोगकर्ता प्रतिक्रिया (पसंद/नापसंद)
* कस्टम एजेंट्स और मॉडल्स

**और जानें:** [Chat SDK दस्तावेज़](./chat)

### Smart Tables SDK

उन्नत क्वेरी और AI-संचालित प्रसंस्करण के साथ संरचित डेटा प्रबंधित करें।

**प्रमुख विशेषताएँ:**

* डेटा तालिकाएँ बनाएँ और प्रबंधित करें
* उन्नत फ़िल्टरिंग और सॉर्टिंग
* डेटा आयात/निर्यात (CSV, Excel)
* AI-संचालित कॉलम गणना
* कस्टम दृश्य और कॉलम प्रबंधन
* पेजिनेशन और खोज

**और जानें:** [Smart Tables SDK दस्तावेज़](./smart-tables)

### Voice SDK

स्वचालित चैट एकीकरण के साथ वॉयस वार्तालाप सक्षम करें।

**प्रमुख विशेषताएँ:**

* वास्तविक समय वॉयस वार्तालाप
* स्वचालित ट्रांसक्रिप्शन
* आसान एकीकरण के लिए React hooks
* ऑडियो विज़ुअलाइज़ेशन
* सत्र प्रबंधन
* चैट एकीकरण

**और जानें:** [Voice SDK दस्तावेज़](./voice)

## सामान्य उपयोग मामले

### 1. ग्राहक सहायता चैटबॉट

```typescript theme={null}
import { ChatSDK } from '@odin-ai-staging/sdk';

const supportBot = new ChatSDK({
  baseUrl: process.env.API_BASE_URL,
  projectId: process.env.PROJECT_ID,
  apiKey: process.env.API_KEY,
  apiSecret: process.env.API_SECRET
});

// सहायता चैट सत्र बनाएँ
const chat = await supportBot.createChat('सहायता अनुरोध');

// ग्राहक संदेश भेजें
const response = await supportBot.sendMessage(
  'मुझे अपने खाते में सहायता चाहिए',
  {
    chatId: chat.chat_id,
    agentType: 'chat_agent',
    agentId: 'support-agent-id'
  }
);
```

### 2. डेटा प्रबंधन अनुप्रयोग

```typescript theme={null}
import { SmartTablesSDK } from '@odin-ai-staging/sdk';

const dataManager = new SmartTablesSDK({
  baseUrl: process.env.API_BASE_URL,
  projectId: process.env.PROJECT_ID,
  apiKey: process.env.API_KEY,
  apiSecret: process.env.API_SECRET
});

// ग्राहक डेटा के लिए तालिका बनाएँ
const table = await dataManager.createTable(
  'ग्राहक डेटाबेस',
  'ग्राहक जानकारी प्रबंधित करें'
);

// कॉलम जोड़ें
await dataManager.addColumn(table.id, {
  name: 'email',
  type: 'email',
  description: 'ग्राहक ईमेल',
  notNull: true,
  unique: true
});

// डेटा क्वेरी करें
const results = await dataManager.queryTable(table.id, {
  filters: [{ column: 'email', operator: 'contains', value: '@example.com' }],
  pagination: { limit: 50, page: 1 }
});
```

### 3. वॉयस-सक्षम अनुप्रयोग

```typescript theme={null}
import { VoiceSDK } from '@odin-ai-staging/sdk';

const voiceApp = new VoiceSDK({
  baseUrl: process.env.API_BASE_URL,
  projectId: process.env.PROJECT_ID,
  apiKey: process.env.API_KEY,
  apiSecret: process.env.API_SECRET,
  agentId: 'voice-agent-id'
});

// वॉयस वार्तालाप प्रारंभ करें
const sessionId = await voiceApp.startVoiceConversation({
  saveToChat: true,
  callbacks: {
    onConnect: () => console.log('वॉयस कनेक्टेड'),
    onMessage: (message) => console.log('संदेश:', message),
    onTranscription: (text, isFinal) => {
      if (isFinal) console.log('उपयोगकर्ता ने कहा:', text);
    }
  }
});
```

## एनवायरनमेंट वेरिएबल्स

प्रोडक्शन अनुप्रयोगों के लिए, हमेशा एनवायरनमेंट वेरिएबल्स का उपयोग करें:

```bash theme={null}
# .env फ़ाइल
API_BASE_URL=https://api.getodin.ai
PROJECT_ID=your-project-id
API_KEY=your-api-key
API_SECRET=your-api-secret
```

```typescript theme={null}
// अपने कोड में
const chatSDK = new ChatSDK({
  baseUrl: process.env.API_BASE_URL!,
  projectId: process.env.PROJECT_ID!,
  apiKey: process.env.API_KEY!,
  apiSecret: process.env.API_SECRET!
});
```

## त्रुटि हैंडलिंग

सभी SDK विधियाँ त्रुटियाँ फेंकती हैं जिन्हें पकड़ा और हैंडल किया जाना चाहिए:

```typescript theme={null}
try {
  const chat = await chatSDK.createChat('मेरी चैट');
  // सफलता हैंडल करें
} catch (error) {
  if (error instanceof APIError) {
    console.error(`API त्रुटि ${error.status}: ${error.message}`);
    // विशिष्ट त्रुटि कोड हैंडल करें
    if (error.status === 401) {
      // प्रमाणीकरण विफल
    } else if (error.status === 403) {
      // अनुमति अस्वीकृत
    } else if (error.status === 404) {
      // संसाधन नहीं मिला
    }
  } else {
    console.error('अप्रत्याशित त्रुटि:', error);
  }
}
```

## TypeScript समर्थन

SDK TypeScript में लिखा गया है और पूर्ण प्रकार परिभाषाएँ प्रदान करता है:

```typescript theme={null}
import { ChatSDK, Chat, Message, SendMessageOptions } from '@odin-ai-staging/sdk';

const chatSDK = new ChatSDK(config);

// सभी विधियाँ पूर्ण रूप से टाइप की गई हैं
const chat: Chat = await chatSDK.createChat('मेरी चैट');
const options: SendMessageOptions = {
  chatId: chat.id,
  agentType: 'chat_agent'
};
const response: Message = await chatSDK.sendMessage('नमस्ते', options);
```

## React एकीकरण

SDK में आसान एकीकरण के लिए React hooks शामिल हैं:

```tsx theme={null}
import { useVoiceConversation } from '@odin-ai-staging/sdk';

function VoiceChat() {
  const { status, startSession, endSession } = useVoiceConversation({
    sdkConfig: {
      baseUrl: process.env.REACT_APP_API_BASE_URL,
      projectId: process.env.REACT_APP_PROJECT_ID,
      agentId: process.env.REACT_APP_AGENT_ID
    },
    callbacks: {
      onConnect: () => console.log('कनेक्टेड!'),
      onMessage: (message) => console.log('संदेश:', message)
    }
  });

  return (
    <div>
      <button onClick={() => startSession()}>वॉयस चैट प्रारंभ करें</button>
      <button onClick={() => endSession()}>चैट समाप्त करें</button>
      <div>स्थिति: {status}</div>
    </div>
  );
}
```

## सर्वोत्तम प्रथाएँ

### 1. **एनवायरनमेंट वेरिएबल्स का उपयोग करें**

अपने कोड में कभी भी API keys या secrets को हार्डकोड न करें। हमेशा एनवायरनमेंट वेरिएबल्स का उपयोग करें।

### 2. **त्रुटियों को विनम्रतापूर्वक हैंडल करें**

हमेशा SDK कॉल्स को try-catch ब्लॉक्स में रैप करें और उपयोगकर्ताओं को सार्थक त्रुटि संदेश प्रदान करें।

### 3. **SDK इंस्टेंसेस का पुन: उपयोग करें**

SDK इंस्टेंसेस को एक बार बनाएँ और प्रत्येक ऑपरेशन के लिए नए इंस्टेंस बनाने के बजाय उनका पुन: उपयोग करें।

```typescript theme={null}
// अच्छा: एक बार बनाएँ, पुन: उपयोग करें
const chatSDK = new ChatSDK(config);

async function sendMessage(text: string) {
  return await chatSDK.sendMessage(text, options);
}

// बुरा: नए इंस्टेंस बनाना
async function sendMessage(text: string) {
  const chatSDK = new ChatSDK(config); // ऐसा न करें
  return await chatSDK.sendMessage(text, options);
}
```

### 4. **बेहतर UX के लिए स्ट्रीमिंग का उपयोग करें**

चैट अनुप्रयोगों के लिए, वास्तविक समय प्रतिक्रिया के लिए स्ट्रीमिंग प्रतिक्रियाओं का उपयोग करें:

```typescript theme={null}
await chatSDK.sendMessageStream('नमस्ते', {
  chatId: chat.id,
  onChunk: (chunk) => {
    // वास्तविक समय में UI अपडेट करें
    updateChatUI(chunk);
  },
  onComplete: (message) => {
    // समाप्ति हैंडल करें
    saveMessage(message);
  }
});
```

### 5. **पेजिनेशन लागू करें**

चैट्स की सूची बनाते समय या तालिकाओं को क्वेरी करते समय, हमेशा पेजिनेशन लागू करें:

```typescript theme={null}
// पेजिनेशन के साथ चैट्स की सूची बनाएँ
let cursor: number | undefined;
let hasMore = true;

while (hasMore) {
  const result = await chatSDK.listChats(cursor, 30);
  processChats(result.chats);
  hasMore = result.has_more;
  cursor = result.next_cursor;
}
```

## सहायता प्राप्त करें

* **दस्तावेज़**: प्रत्येक SDK घटक के लिए विस्तृत दस्तावेज़ ब्राउज़ करें।
* **सहायता**: तकनीकी सहायता के लिए [सहायता](support@automationanywhere.com) को ईमेल करें।
* **उदाहरण**: पूर्ण कार्यशील उदाहरणों के लिए SDK रिपॉज़िटरी देखें।
