使用 LangChain 和 Llama3 构建文章生成器:人工智能开发者之旅
作为一名 AI 开发人员,我经常发现自己在寻找使复杂的大型语言模型 (LLM) 交互更易于管理的方法。 LangChain 引起了我的注意,不仅因为它在人工智能开发社区中越来越受欢迎,还因为它解决常见的 LLM 集成挑战的实用方法。该框架将复杂的法学硕士操作转变为简化的工作流程的声誉引起了我的兴趣,并对其进行了测试。我决定构建一个文章生成系统,将 LangChain 的功能与 Llama3 模型结合起来,创建一个具有实际应用的工具。
为什么浪链有意义
LangChain 通过提供结构化、直观的方法来处理复杂操作,改变了我们与法学硕士互动的方式。将其视为精心设计的开发套件,每个组件都有特定的用途。该框架提供了一个干净的界面,从开发人员的角度来看,感觉很自然,而不是兼顾原始 API 调用和手动管理提示。这不仅仅是为了简化流程,而是为了使 LLM 应用程序更加可靠和可维护。
浪链关键组件
LangChain 的核心是使用链,即连接在一起的操作序列来创建更复杂的行为。这些链执行从格式化提示到处理模型响应的所有操作。虽然该框架包括用于管理提示和维护交互上下文的复杂系统,但我将主要关注我们的文章生成器的链和提示方面。
文章生成器
对于这个项目,我想构建一些实用的系统,可以根据主题、长度、语气和目标受众等特定参数生成定制文章。通过 Ollama 访问的 Llama3 模型为这项任务提供了性能和灵活性的适当平衡。
入门
设置很简单:
- 首先,我安装了必要的软件包:
pip install langchain langchain-ollama requests
- 然后,我设置了 Ollama:
- 我从 https://ollama.com/blog/llama3 下载并安装了 Ollama
- 在一个新终端中,我启动了 Ollama 服务器:
ollama serve
- 我拉了Llama3模型:
ollama pull llama3
使用文章生成器时,Ollama 服务器必须在其终端中运行。如果关闭,生成器将无法连接到模型。
构建核心组件
让我们来分解一下系统各个部分的工作原理:
连接管理
这个简单的检查有助于通过尽早发现连接问题来避免运行时错误。这是检查 Ollama 服务器连接的可靠方法:
pip install langchain langchain-ollama requests
型号配置
模型设置对于在我们生成的内容中获得适当的平衡至关重要:
ollama serve
这些参数代表了我在测试文章生成的各种组合后发现的最佳点。
温度 (0.7): 控制输出的随机性。较低的值(如 0.3)将使文本更可预测,而较高的值(如 0.9)将使其更具创意。 0.7 是一个很好的平衡。
Top_p (0.9): 此参数也称为核心采样,告诉模型要考虑多少个单词选项。在 0.9 时,它会考虑足够的选项来保持文本的趣味性,同时保持对主题的关注。
num_ctx(4096): 上下文窗口大小,或者模型一次可以处理多少文本。这为输入和大量文章输出提供了足够的空间,因为它可以处理大约 3000-3500 个单词。
及时工程
提示模板是我们定义模型所需内容的地方:
ollama pull llama3
发电管道
浪链最优雅的特点之一就是其简单的链组成:
def check_ollama_connection(): """ Check if Ollama server is running """ try: requests.get('http://localhost:11434/api/tags') return True except requests.exceptions.ConnectionError: return False
这一行创建了一个完整的生成管道,用于处理提示格式化、模型交互和响应处理。
命令行界面
为了使该工具用户友好,我实现了一个命令行界面:
llm = OllamaLLM( model="llama3", temperature=0.7, # Balances creativity and consistency top_p=0.9, # Helps with text diversity num_ctx=4096 # Sets the context window )
实际使用
生成器的使用非常简单:运行代码并传递参数。
例子#1
article_template = """ You are a professional content writer tasked with creating a comprehensive article. Topic: {topic} Writing Requirements: 1. Length: Approximately {word_count} words 2. Style: {tone} tone 3. Target Audience: {audience} 4. Format: Plain text without any markdown notation 5. Additional Details/Requirements: {extra_details} Content Structure Guidelines: - Start with an engaging introduction that hooks the reader - Organize content into clear sections with descriptive headings (not numbered) - Include relevant examples, statistics, or case studies when appropriate - Provide practical insights and actionable takeaways - End with a compelling conclusion that summarizes key points - Ensure smooth transitions between paragraphs and sections Writing Style Guidelines: - Use clear, concise language appropriate for the target audience - Avoid jargon unless necessary for the target audience - Incorporate relevant examples and real-world applications - Maintain an engaging and natural flow throughout the article - Use active voice predominantly - Include specific details and evidence to support main points - Ensure proper paragraph breaks for readability Additional Notes: - Do not use any markdown formatting - Keep paragraphs concise and focused - Use proper spacing between sections - If technical terms are used, provide brief explanations - Include a brief overview of what will be covered at the start Please write the article now: """
生成的文章:
chain = prompt | llm
例子#2
def parse_arguments(): """ Parse command line arguments """ parser = argparse.ArgumentParser(description='Generate an article using AI') parser.add_argument('--topic', type=str, required=True, help='The topic of the article') parser.add_argument('--word-count', type=int, default=800, help='Target word count (default: 800)') parser.add_argument('--tone', type=str, default='professional', choices=['professional', 'casual', 'academic', 'informative', 'technical'], help='Writing tone (default: professional)') parser.add_argument('--audience', type=str, default='general', help='Target audience (default: general)') parser.add_argument('--extra-details', type=str, default='', help='Additional requirements or details for the article') return parser.parse_args()
生成的文章:
python main.py \ --topic "Benefits of playing board games with friends" \ --word-count 200 \ --tone casual \ --audience "Board games lovers" \ --extra-details "Avoid markdown notation"
主要经验教训
通过这个项目,我发现了关于使用 LangChain 的几个重要见解:
- 性能模式:由于模型加载,第一代需要更长的时间,但后续运行速度明显更快。
- 上下文管理:4096 个令牌的上下文窗口为大多数文章提供了充足的空间,同时保持良好的性能。
- 生成参数:Temperature (0.7) 和 top_p (0.9) 设置提供了创造力和连贯性之间的最佳平衡。
最后的想法
构建这篇文章生成器展示了LangChain在AI开发方面的实用价值。它可以处理法学硕士交互的复杂性,同时让开发人员可以自由地专注于构建有用的功能。该框架在抽象和控制之间取得了平衡,使创建可靠的人工智能应用程序变得更加容易。
对于该领域的亲爱的同事或单独的爱好者,我相信LangChain提供了开发所需的所有必要意义,而最好的部分是:它不是与灵活性的权衡。考虑到人工智能工具领域正在呈指数级增长,像LangChain这样的框架对于构建实用的、生产就绪的应用程序将变得更有价值。
浪链鹦鹉和链条的标志背后蕴藏着巧妙的寓意。鹦鹉指的是法学硕士有时被称为“随机鹦鹉”,因为他们重复和改造人类语言。链部分是一个有趣的参考,说明框架如何帮助将语言模型“鹦鹉”“链接”到有用的应用程序中。
以上是使用 LangChain 和 Llama 构建文章生成器人工智能开发者之旅的详细内容。更多信息请关注PHP中文网其他相关文章!

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

选择Python还是C 取决于项目需求:1)如果需要快速开发、数据处理和原型设计,选择Python;2)如果需要高性能、低延迟和接近硬件的控制,选择C 。

通过每天投入2小时的Python学习,可以有效提升编程技能。1.学习新知识:阅读文档或观看教程。2.实践:编写代码和完成练习。3.复习:巩固所学内容。4.项目实践:应用所学于实际项目中。这样的结构化学习计划能帮助你系统掌握Python并实现职业目标。

在两小时内高效学习Python的方法包括:1.回顾基础知识,确保熟悉Python的安装和基本语法;2.理解Python的核心概念,如变量、列表、函数等;3.通过使用示例掌握基本和高级用法;4.学习常见错误与调试技巧;5.应用性能优化与最佳实践,如使用列表推导式和遵循PEP8风格指南。

Python适合初学者和数据科学,C 适用于系统编程和游戏开发。1.Python简洁易用,适用于数据科学和Web开发。2.C 提供高性能和控制力,适用于游戏开发和系统编程。选择应基于项目需求和个人兴趣。

Python更适合数据科学和快速开发,C 更适合高性能和系统编程。1.Python语法简洁,易于学习,适用于数据处理和科学计算。2.C 语法复杂,但性能优越,常用于游戏开发和系统编程。

每天投入两小时学习Python是可行的。1.学习新知识:用一小时学习新概念,如列表和字典。2.实践和练习:用一小时进行编程练习,如编写小程序。通过合理规划和坚持不懈,你可以在短时间内掌握Python的核心概念。

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版
好用的JavaScript开发工具