Skip to content

jiahp0920/llm-study-summary

Repository files navigation

LLM-Study 项目文档

项目简介

本项目旨在提供一套完整的大语言模型(LLM)学习和实践代码示例,涵盖了从基础概念到高级应用的各个方面。通过实际代码演示,帮助开发者快速掌握 LangChain 等框架在 LLM 应用开发中的使用方法。

目录结构

.
├── 01-入门与底层原理           # LLM 基础知识和核心概念
├── 02-Models IO 使用          # 模型输入输出操作
├── 03-提示词的使用            # 提示词模板和管理
├── 04-Memory-记忆使用         # 对话记忆机制实现
├── 05-Tools使用              # 工具集成和智能体应用
├── 06-Rag使用                # 检索增强生成技术
├── 07-Agent使用              # 智能体实现和应用
├── 08-Chains使用             # 链式调用和处理
├── 09-MCP使用                # MCP 协议相关实现
├── 11-Langchain-v10          # Langchain v10 特性演示
├── data                      # 数据文件目录
└── ...                       # 配置和辅助文件

环境配置

项目依赖以下环境变量,需在 .env 文件中配置:

  • OPEN_API_KEY: OpenAI API 密钥
  • OPEN_BASE_URL: OpenAI API 基础 URL
  • ZHI_PU_API_KEY: 智谱 API 密钥
  • ZHI_PU_BASE_URL: 智谱 API 基础 URL
  • DASHSCOPE_API_KEY: DashScope API 密钥
  • DASHSCOPE_BASE_URL: DashScope API 基础 URL

各模块详细介绍

01-入门与底层原理

该模块包含了 LLM 开发的基础知识和核心组件使用方法:

  1. 获取大模型: 展示如何初始化和调用不同平台的大语言模型
  2. 提示词模板: 使用 LangChain 的提示词模板系统构建结构化提示
  3. 使用输出解析器: 将模型输出解析为特定格式(如 JSON)
  4. 使用向量存储: 文档向量化及 FAISS 向量数据库的使用
  5. 检索增强生成: 结合向量检索和语言模型生成答案
  6. 使用 Agent: 构建基于工具的智能代理

02-Models IO 使用

展示各种模型调用方式:

  1. 非对话模型的调用: 基础语言模型调用
  2. 对话模型的调用: 支持对话历史的模型调用
  3. 嵌入模型的调用: 文本向量化模型使用
  4. 各平台 API 调用: 不同供应商模型的统一接口调用
  5. 异步调用: 异步方式调用大模型提高性能
  6. 本地大模型调用: 在本地运行的大模型接入
  7. 流式调用: 流式输出模型响应结果

03-提示词的使用

提示词工程的最佳实践:

  1. PromptTemplate 使用: 基础提示词模板构建
  2. ChatPromptTemplate 使用: 对话式提示词模板
  3. 从文档加载 Prompt: 从外部文件加载提示词模板

04-Memory-记忆使用

对话系统中的记忆管理机制:

  1. ChatMessageHistory: 基础聊天历史记录
  2. ConversationBufferMemory: 缓冲式对话记忆
  3. ConversationChain: 基础对话链
  4. ConversationBufferWindowMemory: 滑动窗口式记忆
  5. ConversationTokenBufferMemory: 基于 Token 数量的记忆缓冲
  6. ConversationSummaryMemory: 对话摘要记忆
  7. ConversationSummaryBufferMemory: 摘要与缓冲结合的记忆
  8. ConversationEntityMemory: 实体级对话记忆
  9. ConversationKGMemory: 知识图谱式记忆
  10. VectorStoreRetrieverMemory: 基于向量存储的记忆
  11. SingleStoreDBChatMessageHistory: 使用 SingleStore 数据库的记忆
  12. FileChatMessageHistory: 文件持久化聊天历史

05-Tools使用

工具集成和智能代理实现:

  1. @Tool 装饰器: 使用装饰器定义工具函数
  2. StructuredTool: 结构化工具定义
  3. 智能体结合工具: 将工具与智能体结合使用
  4. 结合大模型使用: 大模型驱动的工具选择和使用

06-Rag使用

检索增强生成技术实现:

  1. 文档加载器: 多种格式文档加载方法
  2. 文档拆分器: 文本分割策略
  3. 嵌入向量: 文本向量化处理
  4. 向量数据库: Chroma 等向量数据库使用
  5. 检索增强: 检索与生成相结合的应用

07-Agent使用

智能代理实现:

  1. FunctionCall 使用: 函数调用机制
  2. ToolStrategy: 工具选择策略

08-Chains使用

链式处理模式:

  1. LECL 使用: LangChain 表达式语言
  2. 单个 Chain 使用: 基础链式调用
  3. 顺序链: 多步骤顺序执行链
  4. 数学链: 数学计算专用链
  5. 路由链: 条件路由链实现
  6. LCEL 构建的 Chains: 使用 LangChain 表达式语言构建链

09-MCP使用

模型控制协议(Model Control Protocol)实现:

包含多种代理实现和服务端实现示例。

快速开始

  1. 克隆项目到本地
  2. 安装依赖包: pip install -r requirements.txt
  3. 配置 .env 文件中的 API 密钥和访问地址
  4. 运行任意示例脚本查看效果

使用示例

每个模块下的 .py 文件都是可独立运行的示例代码,展示了特定功能的实现方式。可以直接运行这些文件来了解相应功能的工作原理。

例如:

python "01-入门与底层原理/01-获取大模型.py"

注意事项

  1. 请确保正确配置了所有必需的环境变量
  2. 部分示例可能需要访问外部 API,会产生相应的费用
  3. 根据实际需求调整模型参数和调用方式
  4. 向量数据库等组件可能需要额外安装依赖

贡献

欢迎提交 Issue 和 Pull Request 来改进这个学习项目。

About

本项目旨在提供一套完整的大语言模型(LLM)学习和实践代码示例,涵盖了从基础概念到高级应用的各个方面。通过实际代码演示,帮助开发者快速掌握 LangChain1.0版本 等框架在 LLM 应用开发中的使用方法。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors