AI Agent开发学习系列 - langchain: 本地大模型调用
调用本地大模型的核心价值在于:在保证数据安全、控制成本、提升性能的同时,获得完全的自主控制权。随着硬件性能的提升和模型优化技术的发展,本地大模型正在成为AI应用的重要选择,特别适合对隐私、成本和控制有严格要求的企业和个人用户。
Ollama 是一个开源的本地大模型运行框架,让用户能够在个人电脑上轻松运行各种大语言模型,无需复杂的配置和部署过程。
https://ollama.com/
准备工作:
- 进入ollama网站下载ollama
- 下载需要的模型
- 根据说明运行模型
模型运行好后,进行下面的代码编写。
from langchain_community.llms.ollama import Ollamallm = Ollama(model="gemma3:1b")
llm.invoke("你好")
输出:
'你好!很高兴与你聊天。有什么我可以为你做的吗? 😊\n'
这段代码展示了使用 LangChain 调用本地 Ollama 大模型的简洁流程:首先从 langchain_community.llms.ollama 导入 Ollama 类,然后创建实例并指定使用 gemma3:1b 模型,最后通过 invoke() 方法输入"你好"并获取模型回复。
技术要点:
- 使用 Google 的轻量级 Gemma 3B 模型,适合资源受限环境;
- 完全本地部署,无需网络连接,数据安全;
- 与 LangChain 生态完美集成,支持参数配置和流式输出;
- 体现了本地大模型调用的简洁性和实用性,是入门本地 AI 开发的理想起点。
使用流式
#使用流式
from langchain.callbacks.manager import CallbackManager
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
from langchain_community.llms.ollama import Ollamacallback_manager = CallbackManager([StreamingStdOutCallbackHandler()])llm = Ollama(model="gemma3:1b", callback_manager=callback_manager)llm.invoke("能描述下南极的概况吗?")
输出:
好的,下面是关于南极的概况,内容涵盖了地理、气候、生态、历史、以及一些有趣的细节:**一、地理位置与环境*** **位置:** 南极位于地球南北极之间,仅占地球陆地总面积的约 2% 。它位于南大洋之中。
* **地理特性:** 南极岛屿群围绕着冰山和冰盖形成,没有明显的陆地景观,只有冰雪和冰层。
* **板块构造:** 南极地质活动最活跃的区域是冰盖的形成和运动,是地球板块构造的重要组成部分。
* **气候:** 南极的气候非常极端,长期维持着极低的温度。**二、气候特点*** **极寒气候:** 南极气候是极寒气候,平均温度接近冰点 (0°C)。
* **降水:** 降水极少,主要为冰雪降雨,但通常极轻微。
* **风力:** 极高的风力,主要由南大洋风和大陆风产生。
* **季节变化:** 南极存在明显的季节变化,但整体的长度是略微接近一年中的,因为南大洋风的影响更明显。**三、生态系统*** **冰原生态:** 南极生态系统主要依赖冰雪和冰盖,因此,生态系统以冰原、雪地、冻土等形式为主。
* **动物:** 尽管环境恶劣,但南极仍然保留了许多适应寒冷环境的动物,包括:* **企鹅:** 澳大利亚企鹅、南极企鹅等。* **海豹:** 独特的冰豹、南极海豹等。* **驯鹿:** 南极鹿等。* **海豚:** 在冰下和海面环境中生活,如海豚、鲸豚等。* **鱼类:** 主要以冰川和冰盖为食,如冰鱼、深海鱼等。* **昆虫:** 数量较少,主要为冰象蝶等。
* **植物:** 仅为极少数植物能够生存,如苔藓、苔藓、海草等。
* **菌群:** 南极拥有独特的微生物群落,能够适应极端环境。**四、历史与人类活动*** **早期探访:** 19世纪初,欧洲探险家首次发现南极,并开始进行探索。
* **英国、法国、德国、澳大利亚、南非等国家:** 南极域被多个国家控制,特别是英国,在19世纪和20世纪初期进行了大规模的南极考察和控制。
* **“南极条约”:** 1950年,经联合国签署,划定南极为“永久领土”的区域, 限制了人类活动,但由于历史原因,在“永久领土”内进行大规模活动。
* **现代探索:** 20世纪后半叶,随着科学技术的进步,南极的探索更加深入和广泛。**五、重要地标与研究*** **大冰谷:** 南极最大的冰川——冰川系统。
* **南极洲:** 世界上最大的陆地,面积约为 100,000 平方公里。
* **南极地质公园:** 南极地貌的保护区,是研究地质活动和生物特征的重要场所。
* **科学家研究:** 南极是科学家进行地质、生物、气候、大气等方面的研究的理想场所。**六、一些有趣的细节*** **极光:** 南极的极光现象非常罕见,是由于地球磁场与太阳风相互作用产生的。
* **时间流逝:** 南极的地球日长比地球上的任何地方短, 这导致了漫长的昼夜节律。
* **人类活动:** 尽管南极被划定为“永久领土”,但人类在南极仍然进行着探险、科研、以及旅游等活动。 **总结:**南极是一个独特的、极寒的地理区域,拥有独特的生态系统、科学价值和历史。它仍然是地球上的一张神秘画卷,吸引着无数的科学家和探险家。希望这个概况对您有帮助! 如果您想了解关于南极的某个特定方面,例如动物、地理、历史等等,请告诉我,我可以为您提供更详细的信息。'好的,下面是关于南极的概况,内容涵盖了地理、气候、生态、历史、以及一些有趣的细节:\n\n**一、地理位置与环境**\n\n* **位置:** 南极位于地球南北极之间,仅占地球陆地总面积的约 2% 。它位于南大洋之中。\n* **地理特性:** 南极岛屿群围绕着冰山和冰盖形成,没有明显的陆地景观,只有冰雪和冰层。\n* **板块构造:** 南极地质活动最活跃的区域是冰盖的形成和运动,是地球板块构造的重要组成部分。 \n* **气候:** 南极的气候非常极端,长期维持着极低的温度。\n\n**二、气候特点**\n\n* **极寒气候:** 南极气候是极寒气候,平均温度接近冰点 (0°C)。\n* **降水:** 降水极少,主要为冰雪降雨,但通常极轻微。\n* **风力:** 极高的风力,主要由南大洋风和大陆风产生。\n* **季节变化:** 南极存在明显的季节变化,但整体的长度是略微接近一年中的,因为南大洋风的影响更明显。\n\n**三、生态系统**\n\n* **冰原生态:** 南极生态系统主要依赖冰雪和冰盖,因此,生态系统以冰原、雪地、冻土等形式为主。\n* **动物:** 尽管环境恶劣,但南极仍然保留了许多适应寒冷环境的动物,包括:\n * **企鹅:** 澳大利亚企鹅、南极企鹅等。\n * **海豹:** 独特的冰豹、南极海豹等。\n * **驯鹿:** 南极鹿等。\n * **海豚:** 在冰下和海面环境中生活,如海豚、鲸豚等。\n * **鱼类:** 主要以冰川和冰盖为食,如冰鱼、深海鱼等。\n * **昆虫:** 数量较少,主要为冰象蝶等。\n* **植物:** 仅为极少数植物能够生存,如苔藓、苔藓、海草等。\n* **菌群:** 南极拥有独特的微生物群落,能够适应极端环境。\n\n**四、历史与人类活动**\n\n* **早期探访:** 19世纪初,欧洲探险家首次发现南极,并开始进行探索。\n* **英国、法国、德国、澳大利亚、南非等国家:** 南极域被多个国家控制,特别是英国,在19世纪和20世纪初期进行了大规模的南极考察和控制。\n* **“南极条约”:** 1950年,经联合国签署,划定南极为“永久领土”的区域, 限制了人类活动,但由于历史原因,在“永久领土”内进行大规模活动。\n* **现代探索:** 20世纪后半叶,随着科学技术的进步,南极的探索更加深入和广泛。\n\n**五、重要地标与研究**\n\n* **大冰谷:** 南极最大的冰川——冰川系统。\n* **南极洲:** 世界上最大的陆地,面积约为 100,000 平方公里。\n* **南极地质公园:** 南极地貌的保护区,是研究地质活动和生物特征的重要场所。\n* **科学家研究:** 南极是科学家进行地质、生物、气候、大气等方面的研究的理想场所。\n\n**六、一些有趣的细节**\n\n* **极光:** 南极的极光现象非常罕见,是由于地球磁场与太阳风相互作用产生的。\n* **时间流逝:** 南极的地球日长比地球上的任何地方短, 这导致了漫长的昼夜节律。\n* **人类活动:** 尽管南极被划定为“永久领土”,但人类在南极仍然进行着探险、科研、以及旅游等活动。 \n\n**总结:**\n\n南极是一个独特的、极寒的地理区域,拥有独特的生态系统、科学价值和历史。它仍然是地球上的一张神秘画卷,吸引着无数的科学家和探险家。\n\n希望这个概况对您有帮助! 如果您想了解关于南极的某个特定方面,例如动物、地理、历史等等,请告诉我,我可以为您提供更详细的信息。'
这段代码展示了如何在 LangChain 中为 Ollama 本地大模型配置流式输出功能。首先导入必要的回调管理器模块,然后创建 CallbackManager 实例并添加 StreamingStdOutCallbackHandler 处理器,接着在创建 Ollama 实例时通过 callback_manager 参数传入回调管理器,最后调用模型并输入关于南极的问题。
流式输出技术要点:
- StreamingStdOutCallbackHandler 实现实时输出到标准输出流,用户可以看到模型逐字生成内容;
- 回调管理器模式让输出处理与模型推理解耦,便于扩展不同的输出方式;
- 流式输出提供更好的用户体验,避免长时间等待,特别适合生成长文本内容;
- 这种设计体现了 LangChain 的模块化架构优势,可以灵活配置不同的输出处理策略。