Groq

使用 Groq 和 Lingo.dev Compiler 进行 AI 翻译

什么是 Groq?

Groq 是一家设计高性能 AI 硬件和软件的公司,其产品专为超低延迟推理优化。通过其定制的 Tensor Streaming Processor 架构,Groq 的解决方案旨在加速 AI 工作负载,例如大型语言模型和实时分析。

设置 API 密钥

Groq 需要一个 API 密钥来验证来自 Lingo.dev Compiler 的请求。选择最适合您工作流程的设置方法:

选项 1:环境变量(终端)

适用于快速实验和测试,无需修改任何文件。

在终端会话中直接设置密钥:

export GROQ_API_KEY="your-api-key-here"

此密钥仅在关闭终端窗口之前有效。

选项 2:项目配置(.env 文件)

适用于项目特定的配置和团队环境,每个项目可能使用不同的凭据。

在项目根目录中创建一个 .env 文件:

touch .env

将以下内容添加到文件中:

GROQ_API_KEY="your-api-key-here"

Lingo.dev Compiler 按以下优先顺序检查环境文件:

  1. .env.development(最高优先级)
  2. .env.local
  3. .env(最低优先级)

优先级较高的文件中的值会覆盖优先级较低文件中的值。

选项 3:全局配置(用户设置)

适用于希望在所有项目中使用相同 API 密钥的个人开发者。

在主目录中创建一个配置文件:

touch ~/.lingodotdevrc

将以下内容添加到文件中:

[llm]
groqApiKey="your-api-key-here"

此配置在您的机器上所有终端会话和项目中持续有效。

配置优先级

当使用多种配置方法时,Lingo.dev Compiler 按以下顺序检查 API 密钥:

  1. 环境变量(最高优先级)
  2. 项目 .env 文件(按其自身的优先顺序)
  3. 用户配置文件 ~/.lingodotdevrc(最低优先级)

使用找到的第一个有效 API 密钥。

使用 Groq

要启用 Groq,请在编译器选项中设置 models 属性:

import react from "@vitejs/plugin-react";
import lingoCompiler from "lingo.dev/compiler";
import { type UserConfig } from "vite";

// https://vite.dev/config/
const viteConfig: UserConfig = {
  plugins: [react()],
};

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja"],
  rsc: false,
  useDirective: false,
  debug: false,
  models: {
    "*:*": "groq:llama-3.1-8b-instant",
  },
});

export default withLingo(viteConfig);

该属性接受一个对象,其中:

  • 键是源语言和目标语言的配对,* 表示任意语言
  • 值是模型标识符(例如,groq:llama-3.1-8b-instant

您可以使用 Groq 进行以下翻译:

  • 在所有语言之间
  • 从特定的源语言
  • 到特定的目标语言
  • 在特定的源语言和目标语言之间

翻译所有语言

使用通配符模式 *:* 为所有翻译对应用相同的 Groq 模型:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // 为所有翻译对使用 Llama 3.1 8B
    "*:*": "groq:llama-3.1-8b-instant",
  },
});

从特定的源语言翻译

使用特定的源语言和通配符目标语言,为从该源语言的所有翻译应用一个模型:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // 为所有从英语翻译的内容使用 Llama 3.1 70B
    "en:*": "groq:llama-3.1-70b-versatile",
    // 为从西班牙语翻译到任何语言的内容使用 Mixtral
    "es:*": "groq:mixtral-8x7b-32768",
    // 其他源语言的回退选项
    "*:*": "groq:llama-3.1-8b-instant",
  },
});

翻译为特定目标语言区域

使用通配符源和特定目标语言区域,为所有翻译到该目标语言区域的内容应用模型:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // 为翻译到日语使用专门模型
    "*:ja": "groq:llama-3.1-70b-versatile",
    // 为翻译到中文使用 Mixtral
    "*:zh": "groq:mixtral-8x7b-32768",
    // 为翻译到德语使用 Gemma 2
    "*:de": "groq:gemma2-9b-it",
    // 其他目标语言的默认模型
    "*:*": "groq:llama-3.1-8b-instant",
  },
});

在特定语言区域之间翻译

定义精确的源-目标对,以便对特定语言组合使用最佳模型进行细粒度控制:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // 使用最佳模型的特定语言对
    "en:es": "groq:llama-3.1-70b-versatile", // 英语到西班牙语
    "en:ja": "groq:llama-3.1-70b-versatile", // 英语到日语
    "en:zh": "groq:mixtral-8x7b-32768", // 英语到中文
    "es:en": "groq:llama-3.1-8b-instant", // 西班牙语到英语
    "fr:en": "groq:gemma2-9b-it", // 法语到英语
    "de:en": "groq:gemma2-9b-it", // 德语到英语

    // 未指定语言对的回退模型
    "*:*": "groq:llama-3.1-8b-instant",
  },
});