Skip to content

快速开始

欢迎使用 XAI-SDK!本指南将帮助您在5分钟内快速上手。

🚀 安装

bash
npm install xai-sdk
bash
yarn add xai-sdk
bash
pnpm add xai-sdk

🔑 获取 API 密钥

前往您的AI提供商获取API密钥:

💡 第一个示例

创建 example.js 文件:

javascript
import { XAI_SDK } from 'xai-sdk';

// 初始化SDK
const sdk = new XAI_SDK({
  environment: 'cli', // 或 'browser'
  config: {
    apiKey: 'your-api-key-here',
    model: 'gpt-4',
  },
});

// 使用SDK
async function main() {
  // 初始化
  await sdk.initialize();

  // 分析代码
  const code = `
    function fibonacci(n) {
      if (n <= 1) return n;
      return fibonacci(n - 1) + fibonacci(n - 2);
    }
  `;

  const analysis = await sdk.analyze(code);
  console.log('代码分析结果:', analysis);

  // AI对话
  const response = await sdk.chat({
    messages: [
      {
        role: 'user',
        content: '请优化这个斐波那契函数的性能',
      },
    ],
  });

  console.log('AI建议:', response.content);
}

main().catch(console.error);

运行示例:

bash
node example.js

🌐 不同环境使用

CLI 环境

适用于Node.js应用、脚本工具等:

javascript
import { XAI_SDK } from 'xai-sdk';

const sdk = new XAI_SDK({
  environment: 'cli',
  config: {
    apiKey: process.env.OPENAI_API_KEY,
    model: 'gpt-4',
  },
});

// 读取本地文件并分析
const fileContent = await sdk.filesystem.readFile('./src/app.js');
const analysis = await sdk.analyze(fileContent);

浏览器环境

适用于Web应用:

javascript
import { XAI_SDK } from 'xai-sdk';

const sdk = new XAI_SDK({
  environment: 'browser',
  config: {
    apiKey: 'your-api-key',
    model: 'gpt-4',
  },
});

// 分析用户输入的代码
const userCode = document.getElementById('code-input').value;
const analysis = await sdk.analyze(userCode);

⚛️ React 集成

使用Hook

jsx
import React, { useState } from 'react';
import { useXAISDK } from 'xai-sdk/react';

function CodeAnalyzer() {
  const [code, setCode] = useState('');
  const [result, setResult] = useState(null);

  const { sdk, isLoading, error } = useXAISDK({
    apiKey: 'your-api-key',
    model: 'gpt-4',
  });

  const analyzeCode = async () => {
    if (!sdk || !code) return;

    try {
      const analysis = await sdk.analyze(code);
      setResult(analysis);
    } catch (err) {
      console.error('分析失败:', err);
    }
  };

  if (isLoading) return <div>初始化中...</div>;
  if (error) return <div>错误: {error.message}</div>;

  return (
    <div>
      <textarea
        value={code}
        onChange={e => setCode(e.target.value)}
        placeholder='输入要分析的代码'
        rows={10}
        cols={50}
      />
      <br />
      <button onClick={analyzeCode}>分析代码</button>

      {result && (
        <div>
          <h3>分析结果:</h3>
          <pre>{JSON.stringify(result, null, 2)}</pre>
        </div>
      )}
    </div>
  );
}

export default CodeAnalyzer;

🎯 Vue 集成

使用Composable

vue
<template>
  <div>
    <textarea
      v-model="code"
      placeholder="输入要分析的代码"
      rows="10"
      cols="50"
    ></textarea>
    <br />
    <button @click="analyzeCode" :disabled="isLoading">
      {{ isLoading ? '分析中...' : '分析代码' }}
    </button>

    <div v-if="result">
      <h3>分析结果:</h3>
      <pre>{{ JSON.stringify(result, null, 2) }}</pre>
    </div>

    <div v-if="error" class="error">错误: {{ error.message }}</div>
  </div>
</template>

<script setup>
import { ref } from 'vue';
import { useXAISDK } from 'xai-sdk/vue';

const code = ref('');
const result = ref(null);

const { sdk, isLoading, error } = useXAISDK({
  apiKey: 'your-api-key',
  model: 'gpt-4',
});

const analyzeCode = async () => {
  if (!sdk.value || !code.value) return;

  try {
    result.value = await sdk.value.analyze(code.value);
  } catch (err) {
    console.error('分析失败:', err);
  }
};
</script>

<style>
.error {
  color: red;
  margin-top: 10px;
}
</style>

🛠️ 常用功能示例

代码分析

javascript
// 基础分析
const analysis = await sdk.analyze(code);

// 指定分析类型
const complexityAnalysis = await sdk.analyze(code, {
  type: 'complexity',
  language: 'javascript',
});

// 安全分析
const securityAnalysis = await sdk.analyze(code, {
  type: 'security',
  rules: ['no-eval', 'no-innerHTML'],
});

AI对话

javascript
// 简单对话
const response = await sdk.chat({
  messages: [
    {
      role: 'user',
      content: '如何优化这段代码的性能?',
    },
  ],
});

// 带工具的对话
const response = await sdk.chat({
  messages: [
    {
      role: 'user',
      content: '帮我找到项目中所有的TODO注释',
    },
  ],
  tools: ['filesystem', 'search'],
});

文件操作

javascript
// 读取文件
const content = await sdk.filesystem.readFile('src/index.js');

// 搜索文件
const files = await sdk.filesystem.search({
  pattern: '*.js',
  exclude: ['node_modules', 'dist'],
});

// 写入文件
await sdk.filesystem.writeFile('output.js', generatedCode);

🔧 配置选项

基础配置

javascript
const sdk = new XAI_SDK({
  environment: 'cli', // 'cli' | 'browser'
  config: {
    // 必需配置
    apiKey: 'your-api-key',
    model: 'gpt-4',

    // 可选配置
    baseURL: 'https://api.openai.com/v1',
    timeout: 30000,
    maxRetries: 3,

    // 日志配置
    logging: {
      level: 'info', // 'debug' | 'info' | 'warn' | 'error'
      output: 'console', // 'console' | 'file'
    },
  },
});

环境变量配置

创建 .env 文件:

env
XAI_API_KEY=your-api-key-here
XAI_MODEL=gpt-4
XAI_BASE_URL=https://api.openai.com/v1

在代码中使用:

javascript
const sdk = new XAI_SDK({
  environment: 'cli',
  config: {
    apiKey: process.env.XAI_API_KEY,
    model: process.env.XAI_MODEL || 'gpt-4',
    baseURL: process.env.XAI_BASE_URL,
  },
});

🚨 错误处理

javascript
try {
  const result = await sdk.analyze(code);
  console.log(result);
} catch (error) {
  if (error.code === 'INVALID_API_KEY') {
    console.error('API密钥无效,请检查配置');
  } else if (error.code === 'RATE_LIMIT_EXCEEDED') {
    console.error('请求频率超限,请稍后重试');
  } else {
    console.error('未知错误:', error.message);
  }
}

🔌 使用插件

安装插件

bash
# 安装官方插件
npm install @xai-sdk/file-tools-plugin
npm install @xai-sdk/ai-providers-plugin

# 安装社区插件
npm install your-favorite-xai-plugin
bash
# 安装官方插件
yarn add @xai-sdk/file-tools-plugin
yarn add @xai-sdk/ai-providers-plugin

# 安装社区插件
yarn add your-favorite-xai-plugin
bash
# 安装官方插件
pnpm add @xai-sdk/file-tools-plugin
pnpm add @xai-sdk/ai-providers-plugin

# 安装社区插件
pnpm add your-favorite-xai-plugin

注册和使用插件

javascript
import { XAI_SDK } from 'xai-sdk';
import { FileToolsPlugin } from '@xai-sdk/file-tools-plugin';
import { OpenAIProviderPlugin } from '@xai-sdk/ai-providers-plugin';

// 创建SDK实例
const sdk = new XAI_SDK({
  environment: 'cli',
});

// 注册插件
const filePlugin = new FileToolsPlugin();
const aiPlugin = new OpenAIProviderPlugin({
  apiKey: process.env.OPENAI_API_KEY,
});

await sdk.registerPlugin(filePlugin);
await sdk.registerPlugin(aiPlugin);

// 初始化SDK
await sdk.initialize();

// 使用插件提供的工具
const fileContent = await sdk.executeTool('read-file', {
  path: './src/app.js',
});

// 使用插件提供的AI服务
const analysis = await sdk.chat({
  messages: [
    {
      role: 'user',
      content: `请分析这段代码:\n${fileContent.content}`,
    },
  ],
  provider: 'openai',
  model: 'gpt-4',
});

常用插件推荐

插件名称功能安装命令
@xai-sdk/file-tools文件操作工具npm install @xai-sdk/file-tools
@xai-sdk/code-analyzer代码分析工具npm install @xai-sdk/code-analyzer
@xai-sdk/git-toolsGit操作工具npm install @xai-sdk/git-tools
@xai-sdk/openai-providerOpenAI集成npm install @xai-sdk/openai-provider
@xai-sdk/claude-providerClaude集成npm install @xai-sdk/claude-provider

📚 下一步

现在您已经掌握了基础用法,可以探索更多高级功能:

💡 小贴士

API密钥安全

永远不要在客户端代码中硬编码API密钥,使用环境变量或配置文件。

错误处理

始终包装SDK调用在try-catch块中,以便优雅地处理错误。

性能优化

对于大文件,考虑使用分块分析以提高性能。

缓存

启用缓存以提高重复分析的性能。

🆘 需要帮助?


🎉 恭喜! 您已经成功开始使用 XAI-SDK。现在可以开始构建您的AI驱动的代码工具了!

Released under the MIT License.