项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1213
使用教程
环境要求
- Elixir 1.17 或更高版本
- 项目使用 Mix 构建(在 mix.exs 中管理依赖)
- 至少一个 LLM 提供商的 API Key(如 OpenAI 的 OPENAI_API_KEY)
- 网络可访问所用提供商的 API(Bumblebee 本地模型除外)
安装与启动步骤
-
1确认 Elixir 版本
README 要求 Elixir 1.17 或更高版本,先检查本机版本是否满足,低于 1.17 需先升级。
elixir --version -
2添加 langchain 依赖
在项目根目录的 mix.exs 的 deps 列表中加入 langchain,版本用 README 给出的 ~> 0.9.0。
{:langchain, "~> 0.9.0"} -
3拉取依赖
在项目根目录执行,Mix 会按 mix.exs 下载并编译 langchain 及其依赖(含 Req)。
mix deps.get -
4配置 API Key
在 config/runtime.exs 中读取环境变量并写入 openai_key、openai_org_id,README 给的是 System.fetch_env! 写法。
config :langchain, openai_key: System.fetch_env!("OPENAI_API_KEY") config :langchain, openai_org_id: System.fetch_env!("OPENAI_ORG_ID") -
5设置环境变量
把真实密钥导出到环境变量,供上一步的 fetch_env! 读取;换成你自己的 sk- 开头密钥。
export OPENAI_API_KEY=sk-xxxxxxxx export OPENAI_ORG_ID=org-xxxxxxxx -
6编写并运行链
用 LLMChain.new! 组装链,add_message 加用户消息后 run;README 也给出 ChatGrok 的用法示例。
{: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() -
7查看 Token 用量
运行后可从链的 token_usage 字段读取输入输出 token 统计,README 示例返回 %TokenUsage{}。
trajectory.token_usage
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
openai_key | 是 | OpenAI API 密钥,库通过 Req 调用接口时使用 | System.fetch_env!("OPENAI_API_KEY") |
openai_org_id | 否 | OpenAI 组织 ID,README 示例中与密钥一起配置 | System.fetch_env!("OPENAI_ORG_ID") |
如何确认成功
运行 LLMChain.run() 返回 {:ok, chain} 且无报错,必要时用 chain.token_usage 查看 token 统计。
常见问题
Q:支持哪些模型提供商?
A:README 列出 Anthropic Claude、OpenAI ChatGPT/Responses API、AWS Bedrock Mantle、Cloudflare Workers AI、xAI Grok、Google Gemini/Vertex AI、DeepSeek、Ollama、Mistral、Perplexity、orq.ai、Bumblebee、ReqLLM 等。
Q:可以用本地模型吗?
A:可以,README 提到通过 Bumblebee(基于 Nx)自托管 Llama、Mistral、Zephyr 等模型,也可用 Ollama 运行本地开源模型。
Q:使用 Grok 需要配 openai_key 吗?
A:示例中 ChatGrok.new 用于 Grok-4,README 只给出 openai_key/openai_org_id 的配置片段,其他提供商的密钥配置请以官方文档为准。
Q:怎么知道消耗了多少 token?
A:运行链之后访问 token_usage,README 示例返回 %TokenUsage{input: 150, output: 45}。
注意事项
- 库内部使用 Req 库发起 API 调用,需保证 Req 依赖正常可用。
- README 只演示了 OpenAI 的 openai_key/openai_org_id 配置写法,其它提供商的配置项未在节选中给出。
- 除 OpenAI 外,本库也兼容 OpenAI 兼容接口的第三方服务。
核心亮点
- 原生 Elixir 实现,与 Phoenix 等框架无缝集成
- 支持多种 LLM 提供商(OpenAI、Anthropic)及本地模型
- 提供链式抽象,简化复杂 AI 流程编排
不足之处
- 生态和文档相比 Python 版 LangChain 不够成熟
- 社区规模较小,示例和教程较少
适用场景
- 在 Elixir 项目中快速集成 ChatGPT 等对话能力
- 构建基于 Phoenix 的 AI 聊天机器人
- 利用本地模型(Bumblebee)实现离线 AI 功能
替代项目
LangChain (Python)、LangChain.js (JavaScript)、LlamaIndex (Python)
上一篇:ai4j
同类项目推荐
comfyui-mixlab-nodes
开源
把 ComfyUI 工作流变成能对话、能共享的实用应用
Workflow-to-APP、ScreenShare&FloatingVideo、GPT & 3D、SpeechRecognition&TTS
bellman
开源
用 Go 一套代码接入 ChatGPT、Gemini、Claude 和 Ollama
Golang lib for LLM APIs, ChatGPT, Gemini and Anthropic
smile
开源
Java开发者一站式机器学习工具箱,高效构建智能应用
Statistical Machine Intelligence & Learning Engine
openai-partial-stream
开源
把 token 流秒变 JSON,让 AI 应用界面不再干等。
Turn a stream of token into a parsable JSON object as soon as possible. Enable Strea···
swarmauri-sdk
开源
模块化 AI 智能体 SDK,快速组装 LLM 应用
Modular Python SDK and monorepo for AI agents, LLM integrations, tools, parsers, emb···
text-to-sql-bedrock-workshop
开源
在 Bedrock 上从零到精通 Text-to-SQL,动手练出高准确率查询
This repository is intended for those looking to dive deep on advanced Text-to-SQL c···
diffusers
开源
一个工具库搞定图像视频音频生成,拿来即用
Diffusers: State-of-the-art diffusion models for image, video, and audio generation ···
tardigrade
开源
事件日志驱动,Agent 状态可回放可恢复
The TypeScript framework for building durable, event-driven actors.
Power-CAT-Copilot-Studio-Kit
开源
用 TypeScript 快速搭 Copilot Studio 智能体
