langchain

GitHub
1.1k 193 简单 2 次阅读 昨天NOASSERTION图像Agent语言模型开发框架
AI 解读 由 AI 自动生成,仅供参考

langchain 是一个专为 Elixir 语言打造的开源框架,灵感来源于流行的 LangChain 体系,旨在帮助 Elixir 项目轻松集成和利用大型语言模型(LLM)。单独使用 LLM 往往不足以构建强大的应用,langchain 解决了如何将语言模型与其他数据源、计算过程或服务连接起来的问题,让应用具备“数据感知”和“代理”能力。

langchain 适合熟悉 Elixir 生态的开发者,特别是希望在函数式编程环境中构建 AI 驱动应用的人群。langchain 支持 OpenAI、Anthropic、Google Gemini 等多种主流 AI 服务及本地模型(如 Ollama)。与 Python 或 JavaScript 版本不同,langchain 遵循 Elixir 的函数式编程范式,不强行套用面向对象设计,提供模块化组件和预制链式流程,方便定制与扩展。无论是快速搭建原型还是开发复杂应用,langchain 都能让 Elixir 开发者更高效地驾驭 AI 能力,将语言模型真正融入业务逻辑之中。

使用场景

一家基于 Elixir Phoenix 框架的 SaaS 团队,希望在其客服系统中引入 AI 助手,自动处理用户关于账单和技术文档的咨询,以提升响应速度。

没有 langchain 时

  • 开发者需为不同大模型单独编写 API 调用代码,切换模型时重构成本高。
  • 难以将内部数据库信息安全地传递给模型,导致回答缺乏依据且容易产生幻觉。
  • 复杂任务流程(如先查账单再解释)需要手动串联多个步骤,代码耦合度高。
  • 维护多个供应商的 SDK 增加了项目依赖负担和调试难度。

使用 langchain 后

  • 通过统一抽象接口,可灵活切换 OpenAI、Claude 或本地 Ollama 模型,无需修改业务逻辑。
  • 利用数据感知组件轻松连接数据库,让 AI 基于真实账单信息生成准确回复。
  • 使用预置链条(Chains)快速搭建“检索 - 分析 - 生成”工作流,显著简化复杂任务处理。
  • 模块化设计降低了代码重复率,团队能更专注于业务场景而非底层 API 对接。

langchain 帮助 Elixir 开发者将大模型与现有系统无缝连接,大幅降低集成门槛,快速构建数据驱动的智能应用。

运行环境要求

操作系统
  • 未说明
GPU

未说明

内存

未说明

依赖
notes这是 LangChain 的 Elixir 实现版本,并非 Python 或 JavaScript 版本。主要作为客户端集成外部 AI 服务(如 OpenAI、Anthropic),也支持通过 Bumblebee、Ollama 等集成本地模型。运行需配置相应的 API 密钥。本地模型的具体硬件需求取决于外部服务配置而非本库本身。
python不需要 (基于 Elixir)
Elixir 1.17+
Req
langchain hero image

快速开始

Elixir CI Module Version Hex Docs

Logo with chat chain links Elixir LangChain

Elixir LangChain 使 Elixir 应用程序能够将 AI 服务和自托管模型(self-hosted models)集成到应用中。

当前支持的 AI 服务:

模型 v0.3.x v0.5.x
OpenAI ChatGPT
OpenAI DALL-e 2(图像生成) ?
Anthropic Claude
Anthropic Claude(思考模式) X
xAI Grok X
Google Gemini
Google Vertex AI* X
Ollama ?
Mistral X
Bumblebee 自托管模型** ?
LMStudio*** ?
Perplexity
  • *Google Vertex AI 是 Google 的企业级产品
  • **Bumblebee 自托管模型 - 包括 Llama、Mistral 和 Zephyr
  • ***LMStudio 通过其 OpenAI 兼容 API(应用程序接口)
  • ****xAI Grok 模型,包括 Grok-4、Grok-3-mini、Grok-4 Heavy(多代理)

LangChain 是 Language Chain 的缩写。LLM(大型语言模型,Large Language Model)是其中的"Language"部分。该库使 Elixir 应用程序更容易将不同的流程、集成、库、服务或功能与 LLM“链”接或连接在一起。

LangChain 是一个用于开发由语言模型驱动的应用程序的框架。它使应用程序具备以下能力:

  • 数据感知(Data-aware): 将语言模型连接到其他数据源
  • 代理(Agentic): 允许语言模型与其环境交互

LangChain 的主要价值主张是:

  1. 组件(Components): 用于使用语言模型的抽象,以及每个抽象的实现集合。无论您是否使用 LangChain 框架的其余部分,组件都是模块化且易于使用的
  2. 开箱即用的链(Off-the-shelf chains): 为实现特定高级任务而构建的结构化组件组装

开箱即用的链让您轻松上手。对于更复杂的应用程序和细微的用例,组件可以轻松定制现有链或构建新链。

这是什么?

大型语言模型(LLM)正成为一种变革性技术,使开发人员能够构建以前无法构建的应用程序。但孤立地使用这些 LLM 通常不足以创建真正强大的应用程序——真正的力量来自于将它们与其他计算或知识来源相结合。

本库旨在协助开发此类应用程序。

文档

在线文档可以在此找到

演示

查看您可以下载和审查的演示项目

与 JavaScript 和 Python LangChain 的关系

本库使用 Elixir 编写,旨在与 Elixir 应用程序一起使用。原始库是 LangChain JS/TSLangChain Python

JavaScript 和 Python 项目旨在尽可能无缝地相互集成。预期的集成非常强大,以至于所有对象(提示词、LLM、链等)的设计方式都使它们可以在两种语言之间序列化(serialized)和共享。

这个 Elixir 版本并不旨在与 JavaScript 和 Python 库完全对等。为什么不?

  • JavaScript 和 Python 都是面向对象(Object Oriented)语言。Elixir 是函数式(Functional)语言。我们不会强制应用不适用的设计。
  • JS 和 Python 版本在对话式 LLM 成为标准之前就开始开发了。当 LLM 不支持时,他们投入了大量精力来保留历史(如对话)。我们这里不这样做。

本库深受 JavaScript 库实际工作方式和与 LLM 交互方式的启发,并基于此构建。

安装

要求: Elixir 1.17 或更高版本

可以通过将 langchain 添加到 mix.exs 中的依赖列表来安装该包:

def deps do
  [
    {:langchain, "~> 0.6.0"}
  ]
end

配置

目前,该库编写为使用 Req 库进行 API(应用程序接口)调用。

您可以为 OpenAI 的 API 配置 组织 IDAPI 密钥,但该库也适用于 其他兼容 API 以及其他服务,甚至 在 Bumblebee 上运行的本地模型

config/runtime.exs

config :langchain, openai_key: System.fetch_env!("OPENAI_API_KEY")
config :langchain, openai_org_id: System.fetch_env!("OPENAI_ORG_ID")
# 或
config :langchain, openai_key: "YOUR SECRET KEY"
config :langchain, openai_org_id: "YOUR_OPENAI_ORG_ID"

config :langchain, :anthropic_key, System.fetch_env!("ANTHROPIC_API_KEY")
config :langchain, :xai_api_key, System.fetch_env!("XAI_API_KEY")

可以使用函数或元组来解析密钥:

config :langchain, openai_key: {MyApp.Secrets, :openai_api_key, []}
config :langchain, openai_org_id: {MyApp.Secrets, :openai_org_id, []}
# 或
config :langchain, openai_key: fn -> System.fetch_env!("OPENAI_API_KEY") end
config :langchain, openai_org_id: fn -> System.fetch_env!("OPENAI_ORG_ID") end

API 密钥应被视为机密,不应检查到您的存储库中。

对于 fly.io,添加机密如下所示:

fly secrets set OPENAI_API_KEY=MyOpenAIApiKey
fly secrets set ANTHROPIC_API_KEY=MyAnthropicApiKey
fly secrets set XAI_API_KEY=MyXaiApiKey

要使用的模型列表:

提示词缓存 (Prompt caching)

ChatGPT、Claude 和 DeepSeek 都提供基于前缀的提示词缓存 (prefix-based prompt caching),这对于较长的提示词可以提供成本和性能优势。Gemini 提供上下文缓存 (context caching),类似。

  • ChatGPT 的提示词缓存 对于超过 1024 tokens (令牌) 的提示词是自动的,缓存最长的公共前缀。
  • Claude 的提示词缓存 不是自动的。它按顺序前缀化处理工具 (tools)、系统 (system) 和消息 (messages),直至并包括标记为 {"cache_control": {"type": "ephemeral"}} 的块。参见 LangChain.ChatModels.ChatAnthropicTest 以获取示例。
  • DeepSeek 的提示词缓存 为重复的提示词和系统消息提供自动缓存,有助于降低更长对话的成本并改善响应时间。
  • Gemini 的上下文缓存 (context caching) 需要单独的调用,Langchain 不支持。

用法

本库的核心模块 (module) 是 LangChain.Chains.LLMChain。大多数其他部分要么是它的输入,要么是它使用的结构。要了解如何使用本库,请从这里开始。

xAI Grok 支持

LangChain 支持所有 xAI Grok 模型,包括高级的 Grok-4 变体:

alias LangChain.ChatModels.ChatGrok
alias LangChain.Chains.LLMChain
alias LangChain.Message

# Basic Grok-4 usage
{:ok, grok} = ChatGrok.new(%{model: "grok-4", temperature: 0.7})

{:ok, chain} =
  LLMChain.new!(%{llm: grok})
  |> LLMChain.add_message(Message.new_user!("Explain quantum computing"))
  |> LLMChain.run()

# Fast and efficient Grok-3-mini
{:ok, mini_grok} = ChatGrok.new(%{model: "grok-3-mini", temperature: 0.8})

Grok 模型提供独特的功能:

  • 130K+ 上下文窗口 (context window) 用于广泛的对话
  • 多代理推理 (Multi-agent reasoning) (Grok-4 Heavy) 多个代理协作
  • 高级推理模式 (Advanced reasoning mode) 具有第一性原理思维
  • 专用编码支持 (Specialized coding support) (Grok-4 Code)
  • 多模态能力 (Multimodal capabilities) 包括视觉和图像分析

向 ChatGPT 暴露自定义 Elixir 函数

LangChain 的一个非常强大的功能是能够轻松地将大型语言模型 (LLM) 集成到您的应用程序中,并将功能、数据和功能从您的应用程序暴露给 LLM。

Diagram showing LLM integration to application logic and data through a LangChain.Function

LangChain.Function 弥合了 LLM 和我们应用程序代码之间的差距。我们选择暴露什么,并使用 context(上下文),我们可以确保任何操作都限制在用户有权执行和访问的范围内。

有关交互式示例,请参阅项目 Livebook 笔记本 (notebook) "LangChain: Executing Custom Elixir Functions"

下面是一个接收参数的函数示例。

alias LangChain.Function
alias LangChain.Message
alias LangChain.Chains.LLMChain
alias LangChain.ChatModels.ChatOpenAI
alias LangChain.Utils.ChainResult

# map of data we want to be passed as `context` to the function when
# executed.
custom_context = %{
  "user_id" => 123,
  "hairbrush" => "drawer",
  "dog" => "backyard",
  "sandwich" => "kitchen"
}

# a custom Elixir function made available to the LLM
custom_fn =
  Function.new!(%{
    name: "custom",
    description: "Returns the location of the requested element or item.",
    parameters_schema: %{
      type: "object",
      properties: %{
        thing: %{
          type: "string",
          description: "The thing whose location is being requested."
        }
      },
      required: ["thing"]
    },
    function: fn %{"thing" => thing} = _arguments, context ->
      # our context is a pretend item/location location map
      {:ok, context[thing]}
    end
  })

# create and run the chain
{:ok, updated_chain} =
  LLMChain.new!(%{
    llm: ChatOpenAI.new!(),
    custom_context: custom_context,
    verbose: true
  })
  |> LLMChain.add_tools(custom_fn)
  |> LLMChain.add_message(Message.new_user!("Where is the hairbrush located?"))
  |> LLMChain.run(mode: :while_needs_response)

# print the LLM's answer
IO.puts(ChainResult.to_string!(updated_chain))
# => "The hairbrush is located in the drawer."

替代 OpenAI 兼容 API (应用程序接口)

有几个服务或自托管应用程序提供用于类似 ChatGPT 行为的 OpenAI 兼容 API (OpenAI compatible API)。要使用此类服务,ChatOpenAI 结构体 (struct) 的 endpoint(端点)可以指向用于聊天的 API 兼容 endpoint

例如,如果本地运行的服务提供该功能,以下代码可以连接到该服务:

{:ok, updated_chain} =
  LLMChain.new!(%{
    llm: ChatOpenAI.new!(%{endpoint: "http://localhost:1234/v1/chat/completions"}),
  })
  |> LLMChain.add_message(Message.new_user!("Hello!"))
  |> LLMChain.run()

Bumblebee 聊天支持

支持 Bumblebee 托管的聊天模型。内置支持 Llama 2、Mistral 和 Zephyr 模型。

目前,函数调用 (function calling) 仅支持 llama 3.1 Json Tool,不支持 Llama 2、Mistral 和 Zephyr。 notebook 文件夹中有一个示例 notebook。

ChatBumblebee.new!(%{
  serving: @serving_name,
  template_format: @template_format,
  receive_timeout: @receive_timeout,
  stream: true
})

serving 是托管模型的 Nx.Serving 的模块名称。

详见 LangChain.ChatModels.ChatBumblebee 文档

测试

在运行实时 API 测试之前,您需要提供 API 密钥 (API keys)。复制示例文件并用您的值填充它:

cp .env.example .env

使用您的私有 API 密钥编辑 .env

.env 文件已被 Git 忽略 (gitignored),并通过 dotenvy 由测试套件自动加载——无需 shell 设置或外部工具。

要运行所有测试,包括针对 OpenAI API 执行实时调用 (live calls) 的测试,请使用以下命令:

mix test --include live_call
mix test --include live_open_ai
mix test --include live_ollama_ai
mix test --include live_anthropic
mix test --include live_mistral_ai
mix test --include live_grok
mix test --include live_vertex_ai
mix test test/tools/calculator_test.exs --include live_call

注意: 这将使用配置好的 API 凭证,从而产生计费事件。

否则,运行以下命令将仅运行本地测试,不进行任何外部 API 调用:

mix test

执行特定测试,无论是否为 live_call,都会执行该测试并可能产生计费事件。

多模态 (Multi-modal) 支持:

LangChain 现在支持多模态 (multi-modal) 消息和工具结果。这意味着您可以使用 ContentParts 在单条消息中包含文本、图像、文件,甚至“思考”块。详见模块文档。此支持取决于 LLM(大型语言模型)和服务。并非所有模型都可能支持所有模态。

评估 Agent (智能体) 行为

在构建 Agent 系统时,最终答案只是故事的一部分。两个 Agent 可以通过非常不同的推理路径产生相同的答案——一个可能进行单次高效的工具调用,而另一个可能进行五次冗余调用。LangChain 提供 LangChain.Trajectory 来评估过程,而不仅仅是结果。

轨迹 (trajectory) 捕获 LLMChain 运行期间产生的工具调用结构化序列,支持回归测试、成本控制、安全验证和 Agent 工作流调试。

捕获轨迹 (Trajectory)

运行 chain 后,提取其轨迹:

alias LangChain.Trajectory

{:ok, chain} =
  LLMChain.new!(%{llm: llm})
  |> LLMChain.add_tools(my_tools)
  |> LLMChain.add_message(Message.new_user!("What's the weather in Paris?"))
  |> LLMChain.run(mode: :while_needs_response)

trajectory = Trajectory.from_chain(chain)
trajectory.tool_calls
#=> [%{name: "search", arguments: %{"query" => "weather paris"}},
#    %{name: "get_forecast", arguments: %{"city" => "Paris"}}]

匹配工具调用序列

使用 Trajectory.matches?/3 将实际工具调用与预期模式进行比较:

# Strict: exact order and arguments
Trajectory.matches?(trajectory, [
  %{name: "search", arguments: %{"query" => "weather paris"}},
  %{name: "get_forecast", arguments: %{"city" => "Paris"}}
])

# Wildcard arguments: pass nil to match any arguments
Trajectory.matches?(trajectory, [
  %{name: "search", arguments: nil},
  %{name: "get_forecast", arguments: nil}
])

# Unordered: same calls in any order
Trajectory.matches?(trajectory, expected, mode: :unordered)

# Superset: actual contains at least all expected calls
Trajectory.matches?(trajectory, [%{name: "search", arguments: nil}], mode: :superset)

# Subset args: expected arguments are a subset of actual
Trajectory.matches?(trajectory, expected, args: :subset)

ExUnit 断言

LangChain.Trajectory.Assertions 提供 assert_trajectoryrefute_trajectory 宏,带有信息丰富的失败差异对比:

use LangChain.Trajectory.Assertions

test "agent calls the right tools in order" do
  trajectory = Trajectory.from_chain(chain)

  assert_trajectory trajectory, [
    %{name: "search", arguments: %{"query" => "weather"}},
    %{name: "get_forecast", arguments: nil}
  ]
end

test "agent does not call dangerous tools" do
  trajectory = Trajectory.from_chain(chain)

  refute_trajectory trajectory, [
    %{name: "delete_all", arguments: nil}
  ], mode: :superset
end

这两个宏也直接接受 LLMChain,自动提取轨迹。

黄金文件 (Golden-File) 测试

保存一个已知良好的轨迹,并将未来的运行结果与之比较以捕捉回归问题:

# Save the golden file
golden = chain |> Trajectory.from_chain() |> Trajectory.to_map()
File.write!("test/fixtures/weather_agent.json", Jason.encode!(golden))

# In your test
golden_map = "test/fixtures/weather_agent.json" |> File.read!() |> Jason.decode!()
expected = Trajectory.from_map(golden_map)
actual = Trajectory.from_chain(chain)

assert_trajectory actual, expected

检查轨迹 (Trajectories)

过滤和分组工具调用以进行更深入的分析:

# All calls to a specific tool
Trajectory.calls_by_name(trajectory, "search")

# Group calls by conversation turn
Trajectory.calls_by_turn(trajectory)
#=> [{0, [%{name: "search", ...}]}, {1, [%{name: "get_forecast", ...}]}]

# Check aggregated token usage
trajectory.token_usage
#=> %TokenUsage{input: 150, output: 45}

# Check metadata
trajectory.metadata
#=> %{model: "gpt-4", llm_module: LangChain.ChatModels.ChatOpenAI}

请参阅 LangChain.TrajectoryLangChain.Trajectory.Assertions 模块文档以获取完整的 API 参考。

版本历史

v0.8.02026/04/04
v0.7.02026/04/02
v0.6.32026/03/28
v0.6.22026/03/13
v0.6.12026/03/05
v0.6.02026/02/22
v0.5.22026/02/11
v0.5.12026/01/31
v0.5.02026/01/28
v0.4.12025/12/02
v0.4.02025/10/02
v0.4.0-rc.32025/09/19
v0.4.0-rc.22025/08/27
v0.4.0-rc.12025/07/03
v0.4.0-rc.02025/04/23
v0.3.32025/04/23
v0.3.22025/03/18
v0.3.12025/02/05
v0.3.02025/01/22
v0.3.0-rc.22025/01/09

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2天前
Agent图像开发框架