使用 LangChain 和 Llama 建立文章生成器人工智慧開發者之旅
使用 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中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。
