Skip to content

快速开始

本章节展示 @yh-ui/ai-sdk 的最小使用示例,帮助快速上手。

最小示例

generateText - 非流式生成

一次性获取完整回复:

typescript
import { generateText } from '@yh-ui/ai-sdk'
import { createOpenAI } from '@ai-sdk/openai'

const openai = createOpenAI({
  apiKey: process.env.OPENAI_API_KEY
})

const result = await generateText({
  model: openai('gpt-4'),
  prompt: '用一句话介绍 Vue 3'
})

console.log(result.text)

streamText - 流式生成

逐块获取回复,实现打字机效果:

typescript
import { streamText } from '@yh-ui/ai-sdk'
import { createOpenAI } from '@ai-sdk/openai'

const openai = createOpenAI()

const result = streamText({
  model: openai('gpt-4'),
  prompt: '写一首关于春天的诗'
})

for await (const chunk of result.textStream) {
  process.stdout.write(chunk)
}

useAIChat - Vue 对话 Hook

在 Vue 组件中管理对话:

typescript
import { useAIChat } from '@yh-ui/ai-sdk'

const { messages, input, isLoading, sendMessage } = useAIChat({
  api: '/api/chat',
  initialMessages: [{ role: 'assistant', content: '你好!有什么可以帮助你的?' }]
})

// 发送消息
await sendMessage('你好')

完整示例:带工具调用

typescript
import { generateText, createYHFunctionTool } from '@yh-ui/ai-sdk'
import { createOpenAI } from '@ai-sdk/openai'

// 定义工具
const weatherTool = createYHFunctionTool({
  name: 'get_weather',
  description: '获取指定城市的天气信息',
  parameters: {
    type: 'object',
    properties: {
      city: { type: 'string', description: '城市名称' }
    },
    required: ['city']
  },
  execute: async ({ city }) => {
    // 实际调用天气 API
    return { city, weather: '晴', temperature: 25 }
  }
})

// 调用
const openai = createOpenAI()
const result = await generateText({
  model: openai('gpt-4'),
  prompt: '北京天气怎么样?',
  tools: [weatherTool]
})

console.log(result.toolResults)

下一步

Released under the MIT License.