Raycast 中文文档
  • 介绍
  • 链接
    • 官网
    • 官网 API 文档
    • 社区
    • GitHub
    • Store
    • Icon 生成器
    • 扩展图标模板
  • 基础
    • 起步
    • 创建您的第一个扩展
    • 贡献一个扩展
    • 过审一个扩展
    • 发布一个扩展
    • 调试一个扩展
    • 安装一个扩展
  • 团队
    • 开始
    • 发布私人扩展
    • 协作开发私有扩展
  • 例子
    • Doppler 共享 Secrets
    • Hacker News
    • Todo 列表
    • Spotify Controls
  • 资料
    • 最佳实践
    • 工具
      • CLI
      • ESLint
      • VS Code(社区工具)
    • 文件结构
    • 生命周期
      • 参数
      • 后台刷新
      • Deeplinks
    • Manifest
    • 安全性
    • 术语
    • 版本控制
  • API 参考
    • AI
    • Cache
    • Command
    • Clipboard
    • Environment
    • Feedback
      • Alert
      • HUD
      • Toast
    • Keyboard
    • Menu Bar Commands
    • OAuth
    • Preferences
    • Storage
    • System Utilities
    • 用户界面
      • Action Panel
      • Actions
      • Detail
      • Form
      • List
      • Grid
      • Colors
      • Icons & Images
      • Navigation
    • 窗口 & 搜索栏
  • 公共包
    • 起步
    • 功能
      • 执行 AppleScript
    • 图标
      • getAvatarIcon
      • getFavicon
      • getProgressIcon
    • React hooks
      • useCachedState
      • usePromise
      • useCachedPromise
      • useFetch
      • useForm
      • useExec
      • useSQL
      • useAI
  • 迁移
  • FAQ
由 GitBook 提供支持
在本页
  • API 参考
  • AI.ask
  • 类型
  • AI.Creativity
  • AI.Model
  • AI.AskOptions
  1. API 参考

AI

上一页版本控制下一页Cache

最后更新于1年前

AI API 为开发人员提供了对 AI 功能的无缝访问,无需 API 密钥、配置或额外的依赖项。

某些用户可能无权访问此 API。如果用户无权访问 Raycast AI,当您的扩展程序调用 AI API 时,系统会询问他们是否想要访问权限。如果用户不希望获得访问权限,API 调用将引发错误。

您可以使用 检查用户是否有权访问该API。

API 参考

AI.ask

向 AI 询问任何你想要的东西,可以在“no-view” 命令、effects 或回调中使用它。在 React 组件中,您可能想使用 代替。

签名

async function ask(prompt: string, options?: AskOptions): Promise<string> & EventEmitter;

例子

import { AI, Clipboard } from "@raycast/api";

export default async function command() {
  const answer = await AI.ask("Suggest 5 jazz songs");

  await Clipboard.copy(answer);
}
import { AI, showToast } from "@raycast/api";

export default async function command() {
  try {
    await AI.ask("Suggest 5 jazz songs");
  } catch (error) {
    // Handle error here, eg: by showing a Toast
    await showToast({
      style: Toast.Style.Failure,
      title: "Failed to generate answer",
    });
  }
}
import { AI, getSelectedFinderItems, showHUD } from "@raycast/api";
import fs from "fs";

export default async function main() {
  let allData = "";
  const [file] = await getSelectedFinderItems();

  const answer = AI.ask("Suggest 5 jazz songs");

  // Listen to "data" event to stream the answer
  answer.on("data", async (data) => {
    allData += data;
    await fs.promises.writeFile(`${file.path}`, allData.trim(), "utf-8");
  });

  await answer;

  await showHUD("Done!");
}
import { AI, getSelectedFinderItems, showHUD } from "@raycast/api";
import fs from "fs";

export default async function main() {
  let allData = "";
  const [file] = await getSelectedFinderItems();

  // If you're doing something that happens in the background
  // Consider showing a HUD or a Toast as the first step
  // To give users feedback about what's happening
  await showHUD("Generating answer...");

  const answer = await AI.ask("Suggest 5 jazz songs");

  await fs.promises.writeFile(`${file.path}`, allData.trim(), "utf-8");

  // Then, when everythig is done, notify the user again
  await showHUD("Done!");
}
import { AI, getSelectedFinderItems, showHUD, environment } from "@raycast/api";
import fs from "fs";

export default async function main() {
  if (environment.canAccess(AI)) {
    const answer = await AI.ask("Suggest 5 jazz songs");
    await Clipboard.copy(answer);
  } else {
    await showHUD("You don't have access :(");
  }
}

参数

名称
描述
类型

prompt*

string

options

返回

一个resolves 的 Promise。

类型

AI.Creativity

具体任务(例如修复语法)需要较少的创造力,而开放式问题(例如产生想法)则需要更多创造力。

type Creativity = "none" | "low" | "medium" | "high" | "maximum" | number;

如果传递一个数字,则该数字需要在 0-2 范围内。对于较大的值,将使用 2。对于较低的值,将使用 0。

AI.Model

用于回答提示的 AI 模型。默认为 "text-davinci-003"。

type Model = "text-davinci-003" | "gpt-3.5-turbo";

AI.AskOptions

属性

名称
描述
类型

creativity

具体任务(例如修复语法)需要较少的创造力,而开放式问题(例如产生想法)则需要更多创造力。如果传递一个数字,则该数字需要在 0-2 范围内。对于较大的值,将使用 2。对于较低的值,将使用 0。

model

用于回答提示的 AI 模型。

signal

取消请求的中止标识。

AbortSignal

environment.canAccess(AI)
useAI util hook
AI.AskOptions
AI.Creativity
AI.Model