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 按以下优先顺序检查环境文件:
.env.development
(最高优先级).env.local
.env
(最低优先级)
优先级较高的文件中的值会覆盖优先级较低文件中的值。
选项 3:全局配置(用户设置)
适用于希望在所有项目中使用相同 API 密钥的个人开发者。
在主目录中创建一个配置文件:
touch ~/.lingodotdevrc
将以下内容添加到文件中:
[llm]
groqApiKey="your-api-key-here"
此配置在您的机器上所有终端会话和项目中持续有效。
配置优先级
当使用多种配置方法时,Lingo.dev Compiler 按以下顺序检查 API 密钥:
- 环境变量(最高优先级)
- 项目 .env 文件(按其自身的优先顺序)
- 用户配置文件
~/.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",
},
});