项目介绍:学习 LLMs 和 GenAI 在开发、安全和运维中的应用
项目概述
这个项目名为“学习LLMs和GenAI在Dev,Sec,Ops中的应用”,旨在为用户提供一套容易理解的指南,帮助他们理解大语言模型(LLMs)和生成人工智能(GenAI)在软件工程中的应用,尤其是从开发、运维和安全的角度进行介绍。通过整理各类材料和文档,该项目试图为用户提供一个统一的学习框架,即便是传统的软件工程师也能轻松掌握项目内的知识。
项目的主要学习内容基于Langchain框架,用户需要对Python编程语言有基本的了解。部分例子来自Langchain文档页面,并在可能的情况下注明出处,感谢Langchain收集了如此丰厚的材料!
学习内容概览
开发方向
- 如何使用OpenAI调用一个简单的大语言模型。
- 在Langchain中进行调试的方法。
- 如何通过OpenAI模型进行对话。
- 使用提示模板(Prompt Templates)。
- 使用Docloader读取本地文件并准备好供LLM使用。
- 解释嵌入的计算和使用方法。
- 理解分割和分块的重要性。
- 将嵌入和文档加载到矢量数据库中。
- 使用链式方式进行问答,实施RAG模式(检索增强生成)。
- 展示如何使用OpenAI文档,让LLM生成调用以获取实时信息。
- 实现一个代理(Agent),并为其提供获取实时信息的工具。
运维方向
- 了解使用的tokens数量及其成本。
- 如何通过精确匹配或嵌入来缓存对LLM的调用。
- 如何缓存嵌入的计算并在本地运行计算。
- 运行本地的LLM(使用Ollama)。
- 跟踪调用并记录到文件中(使用回调处理程序)。
- 强制输出的结构为JSON格式,并在不正确时让LLM重试。
安全方向
- 解释LLMs的OWASP十大安全问题。
- 展示简单的提示注入(Prompt Injection)工作原理及一些缓解策略。
- 如何使用Hugginface的第三方模型检测提示注入。
- 使用提示(Prompt)检测项目注入。
- 检查LLMs提供的答案并反映其是否合适。
- 使用Hugginface模型检测LLM输出是否有毒。
- 展示一个简单的提示,询问LLM对Kubernetes和Trivy漏洞的看法。
立即参与:项目链接。更多内容即将推出!
项目历史
- 项目的初始课程结构是在一次由Techstrong/MediaOps组织的GenAI黑客马拉松中形成的。
- 其课程内容为参加伦敦DevOps聚会的演讲做了优化。
- 其他人计划进行他们自己的版本,例如DevopsDaysATL活动。
如何参与和贡献
- 告诉我们你希望在课程中看到的主题?可以通过GitHub Issue来建议。
- 提交新课程或发送更正以帮助改进课程。
- 使用此项目作为基础运行你自己的聚会或黑客马拉松,并与我们分享经验!也可以分享照片或视频。
- 向@patrickdebois发送感谢推文。
项目运行要求
使用开发容器
该项目包含一个开发容器,允许用户本地运行项目。或者可以使用Google Colab等工具来运行。
本地运行
- 我们使用Microsoft VSCode来运行示例。
- 本地运行Python和Jupyter notebooks。
- 使用Poetry作为虚拟环境的Python管理器。
Poetry是一种新的包管理器,类似于Conda或Pip加上venv。
poetry init
poetry install --no-root
配置VSCode以使用Poetry
- 安装Python 3.11(大部分示例可在3.12上运行)通过pyenv。
- 获取pyenv的Python路径。
- 设定Poetry的Python版本。
- 找到Poetry环境的路径。
- 在VSCode中,选择解释器路径并添加路径。
- 使用
poetry add ipykernel
命令。
配置Jupyter notebooks
- 安装VSCode插件。
- 安装ipykernel模块。
更新日志
- 0.1版本:包含初始Langchain语法。
- 0.2版本:适配新的langchain-community、langchain-openai和新的语法。