Galileo TypeScript sdk

Polar Sponsor
爱发电 赞助
.NET 9.0

完整的Galileo AI平台 TypeScript/JS SDK 参考,用于评估、观察和保护 GenAI 应用。适用于构建 Node.js 或 TypeScript 项目。

Galileo TypeSDK.

功能概述

Galileo TypeSDK.是一项面向实际任务的技能,主要用于Galileo TypeScript SDK( galileo) 为GenAI 应用程序在Node.js和TypeScript. 它支持日志 LLM 调用, r。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Galileo TypeScript SDK

Galileo TypeScript SDK(galileo)为 Node.js 和 TypeScript 环境下的 GenAI 应用提供评估(evaluation)与可观测性(observability)工作流。它支持记录 LLM 调用、检索器(retriever)操作、工具(tool)调用以及多步工作流,并内置评分能力。

其他参考资料:

  • 框架集成 — Vercel AI SDK、Mastra、LangGraph(JS)等
  • Guardrail 指标参考 — 评估工作流中可用的评分指标
  • 高级评估模式 — 复杂工作流评估与实验设计

安装

npm install galileo

或使用 yarn / pnpm:

yarn add galileo
pnpm add galileo

快速开始

import { wrapOpenAI, init, flush } from "galileo";
import OpenAI from "openai";

await init({ projectName: "my-project", logstream: "my-log-stream" });

const openai = wrapOpenAI(new OpenAI());
const response = await openai.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "用一句话解释量子计算。" }],
});

console.log(response.choices[0].message.content);

await flush();

认证

在 .env 文件或 Shell 中设置以下环境变量:

GALILEO_API_KEY="your-api-key"            # 必需 — 来自 Galileo 控制台
GALILEO_CONSOLE_URL="https://app.galileo.ai"  # 控制台 URL(或自托管地址)

也可通过用户名/密码方式认证:

GALILEO_USERNAME="your-username"
GALILEO_PASSWORD="your-password"

可观测性

封装的 OpenAI 客户端(自动日志记录)

最简单的全量追踪 OpenAI 调用方式:封装客户端后,所有调用将自动记录:

import { wrapOpenAI, init, flush } from "galileo";
import OpenAI from "openai";

await init({ projectName: "my-project", logstream: "production" });

const openai = wrapOpenAI(new OpenAI());
const response = await openai.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "RAG 是什么?" }],
});

await flush();

Azure OpenAI 同样受支持,可通过 wrapAzureOpenAI 封装。

log() 函数封装器

可封装任意函数,将其执行记录为一个 span。支持同步、异步及生成器(generator)函数:

import { log, init, flush } from "galileo";

await init({ projectName: "my-project", logstream: "production" });

const retrieveDocuments = log(
  { spanType: "retriever", name: "vector-search" },
  async (query: string) => {
    const results = await vectorDb.search(query, { k: 5 });
    return results.map((r) => r.content);
  }
);

const generateResponse = log(
  { spanType: "llm", name: "gpt-4o-call" },
  async (query: string, context: string[]) => {
    const openai = new OpenAI();
    const response = await openai.chat.completions.create({
      model: "gpt-4o",
      messages: [{ role: "user", content: `Context: ${context.join("\n")}\n\nQuestion: ${query}` }],
    });
    return response.choices[0].message.content;
  }
);

const ragPipeline = log(
  { spanType: "workflow", name: "rag-pipeline" },
  async (query: string) => {
    const docs = await retrieveDocuments(query);
    return generateResponse(query, docs);
  }
);

await ragPipeline("RAG 有哪些优势?");
await flush();

支持的 span 类型包括:workflow、llm、retriever、tool、agent。

GalileoLogger(手动创建 spans)

如需更精细的控制,可直接使用 GalileoLogger 显式构建 trace 和 spans:

import { GalileoLogger } from "galileo";

const logger = new GalileoLogger({
  projectName: "my-project",
  logStreamName: "production",
});

logger.startTrace({ input: "计算 15 * 42" });

logger.addToolSpan({
  input: "15 * 42",
  output: "630",
  durationNs: 50000000,
});

logger.addLlmSpan({
  input: "数学工具返回了 630。请向用户作答。",
  output: "15 乘以 42 等于 630。",
  durationNs: 800000000,
  model: "gpt-4o",
});

logger.conclude({ output: "15 乘以 42 等于 630。" });

await logger.flush();

可用的 span 方法包括:addLlmSpan、addRetrieverSpan、addToolSpan、addWorkflowSpan、addAgentSpan、addProtectSpan。

上下文 API(Context API)

使用 galileoContext 进行作用域化的生命周期管理:

import { galileoContext } from "galileo";

await galileoContext.init({ projectName: "my-project", logstream: "production" });

// ... 追踪你的调用 ...

await galileoContext.flush();
await galileoContext.reset();

会话(Sessions)

将相关 trace 分组为 session,适用于多轮对话场景:

import { init, flush, startSession, setSession, clearSession } from "galileo";

await init({ projectName: "my-project", logstream: "production" });

const sessionId = await startSession({ name: "user-conversation-123" });

// 在 setSession 与 clearSession 之间创建的所有 trace 均被归入该 session
setSession(sessionId);
// ... 记录你的 trace ...
clearSession();

await flush();

评估

运行实验(Experiment)

使用 runExperiment 对 LLM 工作流在数据集上进行自动化评分评估:

import { runExperiment, GalileoMetrics } from "galileo";

const result = await runExperiment({
  name: "qa-eval-run",
  datasetName: "my-test-dataset",
  metrics: [GalileoMetrics.contextAdherence, GalileoMetrics.completeness, GalileoMetrics.inputToxicity],
  projectName: "eval-project",
  function: async (input) => {
    const response = await callYourLLM(input.question);
    return response;
  },
});

console.log("实验链接:", result.link);

内联数据集的实验

import { runExperiment, GalileoMetrics } from "galileo";

const result = await runExperiment({
  name: "rag-eval",
  dataset: [
    { question: "什么是机器学习?", expected: "机器学习是..." },
    { question: "解释人工智能", expected: "人工智能是..." },
  ],
  metrics: [GalileoMetrics.contextAdherence, GalileoMetrics.chunkAttributionUtilization, GalileoMetrics.completeness],
  projectName: "eval-project",
  function: async (input) => {
    const docs = await retrieve(input.question);
    return generateAnswer(input.question, docs);
  },
});

带提示模板(Prompt Template)的实验

import { runExperiment, GalileoMetrics } from "galileo";

const result = await runExperiment({
  name: "prompt-eval",
  datasetName: "my-test-dataset",
  promptTemplate: { id: "your-prompt-template-id" },
  promptSettings: { model_alias: "GPT-4o", temperature: 0.7 },
  metrics: [GalileoMetrics.correctness, GalileoMetrics.instructionAdherence],
  projectName: "eval-project",
});

更多内容请参阅「高级评估模式」。

常见模式

带检索器 spans 的 RAG 工作流

import { GalileoLogger } from "galileo";

const logger = new GalileoLogger({
  projectName: "rag-app",
  logStreamName: "production",
});

logger.startTrace({ input: "光合作用是如何工作的?" });

logger.addRetrieverSpan({
  input: "光合作用是如何工作的?",
  output: ["光合作用是植物通过……的过程。"],
});

logger.addLlmSpan({
  input: "结合上下文,解释光合作用。",
  output: "光合作用是植物所使用的一种过程……",
  durationNs: 1500000000,
  model: "gpt-4o",
});

logger.conclude({ output: "光合作用是植物所使用的一种过程……" });
await logger.flush();

嵌套式 Agent 工作流

import { GalileoLogger } from "galileo";

const logger = new GalileoLogger({
  projectName: "agent-app",
  logStreamName: "production",
});

logger.startTrace({ input: "调研并总结量子计算" });

logger.addToolSpan({
  input: "search: 量子计算概述",
  output: "搜索结果……",
  durationNs: 200000000,
});

logger.addRetrieverSpan({
  input: "量子计算",
  output: ["文档1:量子比特……", "文档2:叠加态……"],
});

logger.addLlmSpan({
  input: "总结以下关于量子计算的研究……",
  output: "量子计算利用量子力学现象……",
  durationNs: 2500000000,
  model: "gpt-4o",
});

logger.conclude({
  output: "量子计算利用量子力学现象……",
});

await logger.flush();

最佳实践

  1. 在记录任何 trace 前,务必先调用 init() 或创建 GalileoLogger 实例。
  2. 始终在最后调用 flush(),以确保 trace 上传至 Galileo;在 Web 服务中,应在每个请求处理器末尾执行 flush()。
  3. 对 OpenAI 调用启用零配置自动追踪,请使用 wrapOpenAI。
  4. 使用 log() 封装函数作为 span —— 它可自动处理同步、异步和生成器函数。
  5. 当需要对单个 span 进行精细控制时,请使用 GalileoLogger。
  6. 执行评估任务时,请使用 runExperiment —— 它自动完成数据集加载、评分及结果上传。
  7. 建议将环境变量写入 .env 文件,而非硬编码 API 密钥。
  8. 手动创建 span 时,请提供准确的 durationNs 值,以保障延迟指标的有效性。

旧版 API

GalileoObserveWorkflow 和 GalileoEvaluateWorkflow 已弃用,但为保持向后兼容仍导出。请改用 GalileoLogger(或 wrapOpenAI / log())与 runExperiment。

资源

  • 文档: https://docs.galileo.ai
  • TypeScript SDK 仓库: https://github.com/rungalileo/galileo-js
  • SDK 示例: https://github.com/rungalileo/sdk-examples
  • npm: https://www.npmjs.com/package/galileo
  • Galileo 控制台: https://app.galileo.ai

相关专题

更多
TypeScript Node.js 全栈工程化与Monorepo架构实践
TypeScript Node.js 全栈工程化与Monorepo架构实践

本专题围绕 TypeScript 在 Node.js 全栈开发中的工程化实践展开,系统讲解 Monorepo 架构设计、包管理策略、模块复用机制以及服务端与前端统一类型系统的构建方法。通过真实项目案例,帮助开发者提升大型全栈项目的可维护性与协作效率。

2026.06.16

278

8

TypeScript 全栈开发进阶指南
TypeScript 全栈开发进阶指南

面向有 JavaScript 基础的开发者,深入讲解 TypeScript 的类型系统与全栈开发实践。

2026.06.03

166

29

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

2026.03.13

251

19

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

2026.02.25

400

17

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

2026.02.13

192

17

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

0

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

0

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

0

10

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

2026.10.16

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WebStorm 官方调试文档
WebStorm 官方调试文档

共0课时 | 0人学习

TypeScript 教程
TypeScript 教程

共19课时 | 6.7万人学习

TypeScript——十天技能课堂
TypeScript——十天技能课堂

共21课时 | 1.7万人学习