https://github.com/haveniceda/ai
基于Langchain学习AI
https://github.com/haveniceda/ai
Last synced: 1 day ago
JSON representation
基于Langchain学习AI
- Host: GitHub
- URL: https://github.com/haveniceda/ai
- Owner: HaveNiceDa
- Created: 2026-02-04T15:14:01.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-03-25T15:35:40.000Z (3 months ago)
- Last Synced: 2026-07-05T20:26:53.284Z (1 day ago)
- Language: Python
- Homepage:
- Size: 325 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LangChain TypeScript 项目
这是一个使用 TypeScript 和 LangChain 构建的项目,包含了多个示例和工具。
## 项目结构
```
├── chain.ts # 链式调用示例
├── embedding.ts # 嵌入向量示例
├── textsplitter.ts # 文本分割工具
├── csvloader.ts # CSV 文件加载器
├── pdf-example.ts # PDF 文本提取示例
├── pdf-lib-example.ts # PDF 创建和修改示例
├── test.ts # 测试文件
├── tsconfig.json # TypeScript 配置
└── package.json # 项目依赖配置
```
## 安装依赖
```bash
pnpm install
```
## 可用脚本
- `pnpm run dev` - 运行开发模式
- `pnpm run build` - 编译 TypeScript 代码
- `pnpm run test` - 运行测试
- `pnpm run textsplitter` - 运行文本分割示例
- `pnpm run chain` - 运行链式调用示例
- `pnpm run embedding` - 运行嵌入向量示例
- `pnpm run csvloader` - 运行 CSV 加载器示例
- `pnpm run pdf` - 运行 PDF 文本提取示例
- `pnpm run pdf-lib` - 运行 PDF 创建和修改示例
## TypeScript 配置
项目使用严格的 TypeScript 配置,包括:
- 启用严格模式 (`strict: true`)
- 检查未使用的变量和参数
- 检查隐式返回
- 模块解析使用 bundler 模式
- 支持 ES2022 特性
## 环境变量
确保在项目根目录创建 `.env` 文件并配置必要的 API 密钥:
```env
API_KEY=your_api_key_here
```
## 运行示例
### 文本分割
```bash
pnpm run textsplitter
```
### 链式调用
```bash
pnpm run chain
```
### 嵌入向量
```bash
pnpm run embedding
```
### PDF 处理
#### 提取 PDF 文本(类似 Python pypdf)
```bash
pnpm run pdf
```
需要将 PDF 文件放在项目根目录下的 `example.pdf`,或修改代码中的路径。
#### 创建和修改 PDF
```bash
pnpm run pdf-lib
```
这会创建三个 PDF 文件:
- `created.pdf` - 新创建的 PDF
- `modified.pdf` - 修改后的 PDF
- `merged.pdf` - 合并后的 PDF
## PDF 处理库说明
项目包含三个主要的 PDF 处理库:
### 1. pdf-parse
- **用途**: 提取 PDF 文本内容
- **特点**: 简单易用,类似 Python 的 pypdf
- **适用场景**: 只需要读取 PDF 文本
### 2. pdfjs-dist
- **用途**: Mozilla 的 PDF.js 库
- **特点**: 功能强大,支持渲染和提取
- **适用场景**: 需要在浏览器中渲染 PDF 或提取详细内容
### 3. pdf-lib
- **用途**: 创建、修改和生成 PDF
- **特点**: 现代化 API,支持完整的 PDF 操作
- **适用场景**: 需要创建、修改、合并 PDF 文件
## 技术栈
- **TypeScript** - 类型安全的 JavaScript 超集
- **LangChain** - 语言模型应用开发框架
- **tsx** - TypeScript 执行器
- **pnpm** - 快速、节省磁盘空间的包管理器
- **pdf-parse** - PDF 文本提取
- **pdf-lib** - PDF 创建和修改
- **pdfjs-dist** - PDF 渲染和处理
## 开发
在开发过程中,你可以直接使用 `tsx` 运行 TypeScript 文件:
```bash
npx tsx your-file.ts
```
或者使用配置好的脚本:
```bash
pnpm run dev your-file.ts
```
## 类型检查
运行 TypeScript 类型检查:
```bash
npx tsc --noEmit
```
## 构建
编译 TypeScript 代码:
```bash
pnpm run build
```
编译后的文件将输出到 `dist` 目录。