探索 LangChain、Hugging Face、LM Studio 等 AI 应用工具

ollama+langchain构建数据查询问答的三种方式 本文基于ollama部署轻量级的大模型,结合三种数据查询问答方式,对模型进行调用测试。 阅读详情

1. LangChain v0.2

LangChain Logo

简介

LangChain 是一个旨在帮助开发人员构建由大型语言模型(LLMs)驱动的应用程序的框架。其主要特点如下:

  1. 模块化组件:LangChain 提供了多个独立或组合使用的模块。
    • 提示管理 Prompt:用于优化和处理提示的工具。
    • 记忆管理 Memory:管理跨不同交互的状态。
    • 链式操作 Chain:将多个 LLM 调用链接在一起,以创建更复杂的应用程序。
    • 代理 Agent:基于用户输入动态决策的系统。
    • 回调 Calback:用于日志记录和事件跟踪。
  2. 集成能力:LangChain 支持与多个 LLM 提供商的集成,如 OpenAI、Cohere 和 Hugging Face,适用于各种应用场景。
  3. 应用场景:常见应用包括聊天机器人、文档分析工具和自动推理系统。
  4. 社区和开源:作为一个开源项目,LangChain 拥有不断增长的社区,提供广泛的支持和贡献。

安装

安装 LangChain 到 Python 环境
LangChain作为一个框架由许多包组成

pip install langchain					// 0.2.10
pip install langcahin_community			// 0.2.9
pip install langchain_openai			// 0.1.17

可以使用pip show package_name验证和查看版本

概念指南

LangChain 0.2

  • Architecture - 架构
    • langchain-core - LangChain 核心
    • Partner packages - 合作伙伴包 // 从 LangChain 社区分离的流行的包
    • langchain - LangChain
    • langchain-community - LangChain 社区
    • langgraph - LangGraph
    • langserve - LangServe
    • LangSmith - LangSmith
  • LangChain Expression Language (LCEL) - LangChain 表达式语言
    • Runnable interface - 可运行接口
  • Components - 组件
    • Chat models - 聊天模型
    • LLMs - 大型语言模型
    • Messages - 消息
    • Prompt templates - 提示模板
    • Example selectors - 示例选择器
    • Output parsers - 输出解析器
    • Chat history - 聊天历史
    • Documents - 文档
    • Document loaders - 文档加载器
    • Text splitters - 文本分割器
    • Embedding models - 嵌入模型
    • Vector stores - 向量存储
    • Retrievers - 检索器
    • Tools - 工具
    • Toolkits - 工具包
    • Agents - 代理
    • Callbacks - 回调
  • Techniques - 技术
    • Streaming - 流式处理
    • Structured output - 结构化输出
    • Retrieval - 检索
    • Text splitting - 文本分割
    • Evaluation - 评估
    • Tracing - 跟踪

Runnable interface
LangChain 引入了一个标准接口 “Runnable” 协议,旨在简化自定义链的创建和调用过程。该协议已在多个 LangChain 组件中实现,包括聊天模型、LLM、输出解析器、检索器和提示模板等。通过统一的接口,开发者可以更轻松地定义和调用自定义链。

Runnable 协议包含以下标准接口方法:

  • stream:以流的形式返回响应的块。
  • invoke:对单个输入调用链。
  • batch:对输入列表调用链。
组件 输入类型 输出类型
Prompt Dictionary PromptValue
ChatModel 单字符串、聊天消息列表或 PromptValue ChatMessage
LLM 单字符串、聊天消息列表或 PromptValue String
OutputParser LLM 或 ChatModel 的输出 取决于解析器
Retriever 单字符串 文档列表
Tool 单字符串或字典(取决于工具) 取决于工具

简单试用

(1) 模型选择

使用本地模型,可以通过 LM Studio、Ollama 等方式下载

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(base_url="http://localhost:1234/v1", api_key="lm-studio", max_tokens=256, temperature=0.0, top_p=0.9)

llm.invoke("你好")
AIMessage(content='你好!很高兴能为你提供帮助。有什么问题或者需要我做的事情吗?', response_metadata={'token_usage': {'completion_tokens': 16, 'prompt_tokens': 24, 'total_tokens': 40}, 'model_name': 'Qwen/Qwen1.5-7B-Chat-GGUF/qwen1_5-7b-chat-q5_k_m.gguf', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None}, id='run-16d51193-ab6e-4462-bb18-9818b88962ec-0', usage_metadata={'input_tokens': 24, 'output_tokens': 16, 'total_tokens': 40})

AIMessage.content 即为返回内容
————————————————————
使用 OpenAI API 访问云端模型,例如通过 OpenAI 或 阿里云DashScope模型服务灵积 申请

from langchain_openai import ChatOpenAI

qwen = ChatOpenAI(model="qwen-turbo", api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", max_tokens=256, temperature=0.0, top_p=0.9)

qwen.invoke("你好")
AIMessage(content='你好!有什么我可以帮助你的吗?', response_metadata={'token_usage': {'completion_tokens': 8, 'prompt_tokens': 9, 'total_tokens': 17}, 'model_name': 'qwen-turbo', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None}, id='run-d9ef21c6-2b64-4982-964a-d55b651865a2-0', usage_metadata={'input_tokens': 9, 'output_tokens': 8, 'total_tokens': 17})

————————————————————
也可以直接调用 HuggingFace 上的模型

from langchain_community.llms.huggingface_hub import HuggingFaceHub

model = HuggingFaceHub(repo_id="openai-community/gpt2", task="text-generation", huggingfacehub_api_token="hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")

response = model.generate(["Hello, how are you?"])
print(response)
generations=[[Generation(text="Hello, how are you?\n\nI'm a little bit of a nerd. I'm a big nerd. I'm a big nerd. I'm a big nerd. I'm a big nerd. I'm a big nerd. I'm a big nerd. I'm a big nerd. I'm a big nerd. I'm a big nerd. I'm a big nerd. I'm a big nerd. I'm a big nerd. I'm a big nerd. I'm a big nerd. I'm a big nerd")]] llm_output=None run=[RunInfo(run_id=UUID('0e4e40a7-d8ea-4a4b-8194-58c45bda66a5'))]

==================================

(2) 基础操作

使用提示词模板 PromptTemplate

from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_messages([
        ("system", "You are a helpful assistant that translates {input_language} to {output_language}."),
        ("user", "{input}")
])

chain = prompt | llm # 简单组合链,串联可运行对象

chain.invoke({
   
   "input": "I love programming.", "input_language"
LangChain教程——LangChain基本使用 LangChain是一个用于开发由大型语言模型 (LLM) 驱动的应用程序的框架,帮助开发者使用大型语言模型(LLMs)和聊天模型构建端到端的应用程序。LangChain库主要有以下几个不同的包组成:langchain-core:基础抽象和LangChain表达语言;langchain-community:第三方集成,主要包括langchain集成的第三方组件;langchain:主要包括链(chain)、代理(agent)和检索策略; 阅读详情

相关推荐

LM Studio本地大模型部署保姆级教程

本文提供LMStudio本地大模型部署的完整教程,适合零基础用户。LMStudio是一款跨平台工具,支持Windows/Mac/Linux系统,可一键式完成模型下载、部署和交互。教程详细介绍了硬件配置要求、软件安装步骤、模型选择建议(推荐Qwen1.5-7B-Chat等中文友好模型),以及图形化操作流程。同时包含API服务配置、常见问题解决方案等内容,帮助用户在10分钟内完成离线大模型部署,无需命令行操作。

斌味代码的博客 2393

Ollama与Hugging Face:AI大模型本地部署与集成实战指南

在人工智能领域,大语言模型已成为推动技术创新的核心引擎。其背后的Transformer架构通过自注意力机制实现了对序列数据的强大建模能力,为自然语言处理、代码生成等任务带来了革命性突破。从技术价值看,大模型不仅提升了AI任务的性能上限,更通过标准化接口降低了开发门槛,使得模型即服务(MaaS)成为可能。在实际应用场景中,开发者常面临模型部署复杂、环境配置繁琐等工程挑战,而开源模型社区与本地化工具的结合正是解决这些痛点的关键。本文聚焦于Hugging Face这一全球最大的AI模型生态平台,以及Ollama这

weixin_30571465的博客 435

LM Studio免费化:本地AI编程工具的核心优势与实战配置指南

大语言模型(LLM)作为当前人工智能领域的核心技术,通过在海量数据上进行预训练,具备了强大的自然语言理解和生成能力。其核心原理基于Transformer架构,通过自注意力机制捕捉长距离依赖关系。这项技术的核心价值在于能够将复杂的语言任务转化为可计算的概率问题,从而在代码生成、文本理解等场景中实现自动化。在编程领域,本地部署的LLM工具解决了数据隐私和代码安全的核心痛点,所有计算均在本地完成,杜绝了敏感信息外泄的风险。同时,本地化部署提供了模型的可定制性与可控性,开发者可以根据特定技术栈(如C++、Qt)选择

dixi7825的博客 434

本地LLM推理工具选型:Ollama与LM Studio核心差异解析

本地大语言模型(LLM)推理服务是当前AI工程落地的关键环节,其本质是将模型权重、量化格式(如GGUF)、硬件加速(GPU/CPU协同)与API服务封装为可控计算单元。理解其底层原理需从内存映射(mmap)、量化精度(Q4_K_M/Q5_K_M)、进程模型(守护进程vs单体应用)出发,技术价值在于保障数据主权、降低长尾延迟、重构算力成本结构。典型应用场景包括医疗PDF离线问答、开发者安全审计Agent、科研文献批量摘要等对隐私、实时性或吞吐量有硬性要求的领域。本文聚焦Ollama与LM Studio两大主流

466

本地大模型工具实战解析:LM Studio与Ollama的架构差异与场景适配

本文深入解析了本地大模型工具LM Studio与Ollama的架构差异与场景适配,帮助开发者在选型时做出明智决策。LM Studio以简单易用著称,适合非技术用户快速体验;Ollama则提供强大的灵活性和开发接口,适合技术爱好者和企业级应用。文章还对比了两者在模型格式支持、资源管理及性能表现上的差异,并提供了实战经验与避坑指南。

weixin_28683689的博客 489

LM Studio本地大语言模型部署指南:从零搭建私有AI助手

大语言模型(LLM)作为当前人工智能领域的核心技术,通过海量数据训练获得强大的语言理解和生成能力。其工作原理基于Transformer架构,通过自注意力机制处理序列数据,实现上下文感知的文本生成。这项技术的核心价值在于能够作为通用任务处理器,广泛应用于智能对话、代码生成、内容创作等场景。在实际工程实践中,如何在本地硬件上高效、私密地部署和运行这些模型成为开发者关注的重点。借助LM Studio等工具,用户可以绕过复杂的命令行配置,通过图形化界面轻松管理GGUF格式的模型文件,实现一键式本地部署。这为构建私有

weixin_33861800的博客 441

LM Studio本地大模型桌面工具:GGUF格式与OpenAI兼容API实战指南

本地大模型推理正从服务器走向桌面,核心在于轻量、跨平台、开箱即用的交互体验。GGUF作为专为CPU/边缘设备优化的模型序列化格式,凭借内存映射加载、量化原生支持和零Python依赖等特性,成为桌面端事实标准;而OpenAI兼容API则通过统一接口协议,将本地模型无缝接入Codex、ComfyUI、LangChain等主流AI开发工具链。二者结合,解决了模型部署‘最后一公里’难题——无需配置环境、不写一行代码、不依赖云端,即可实现秒级加载、低延迟响应与生态级集成。本文聚焦LM Studio这一典型实现,详解G

weixin_30509393的博客 357

llama.cpp、Ollama与LM Studio三者定位与协作逻辑解析

本地大模型运行依赖三大核心工具链:llama.cpp作为底层推理引擎,提供对GGUF模型的原子级控制与硬件直通能力;Ollama是标准化服务层,封装为OpenAI兼容API,解决多环境部署与模型生命周期管理;LM Studio则是面向终端用户的GUI沙盒,专注交互式调试而非生产承载。三者并非替代关系,而是分层协作——llama.cpp决定性能上限,Ollama保障工程稳定性,LM Studio提升验证效率。理解其原理差异,可规避‘no lm runtime found for model format gg

子夜轻风 493

Ollama、llama.cpp、LM Studio本质区别与选型指南

大模型本地部署工具常被泛化为‘跑模型的软件’,但其底层定位截然不同:Ollama是面向开发者的模型运行时环境,提供开箱即用的API与抽象化封装;llama.cpp是轻量级推理引擎,专注CPU/GPU极致性能与量化控制;LM Studio则是基于llama.cpp的桌面GUI外壳,主打零配置可视化交互。三者在模型格式支持(如GGUF vs safetensors)、硬件调度粒度(全层GPU加载 vs 自定义ngl)、API兼容性(OpenAI标准程度)上存在根本差异。理解这些原理,才能避免‘装上就崩’的踩坑现

weixin_33904756的博客 586

Windows 11本地大模型实战:OpenClaw+LM Studio零配置部署GGUF模型

本地大模型(LLM)是指在个人设备上运行、无需依赖云端服务的AI推理系统,其核心原理是通过量化模型(如GGUF格式)与轻量级运行时(如llama.cpp)实现CPU/GPU协同加速。技术价值在于数据隐私可控、响应实时性强、离线可用,广泛应用于办公自动化、私有知识库问答和AI技能编排等场景。本文聚焦Windows 11原生环境,详解如何绕过WSL2与Docker,利用LM Studio提供稳定HTTP API服务、OpenClaw实现声明式技能调度,真实落地PDF摘要、微信对接等生产级任务,特别适配RTX 3

dilv4062的博客 539

本地大语言模型推理工具选型指南:Ollama、LM Studio与llama.cpp深度对比

本地大语言模型(LLM)推理是指在自有设备上运行模型完成文本生成、问答等任务的技术实践,其核心依赖硬件算力、模型格式兼容性与运行时框架协同。当前主流方案围绕GGUF模型格式和OpenAI兼容API构建,Ollama以Docker式抽象降低使用门槛,LM Studio通过图形界面实现零代码部署,而llama.cpp则提供C++级精细控制能力。三者技术路径差异显著:Ollama侧重服务化与跨平台分发,LM Studio聚焦用户体验与API标准化,llama.cpp强调极致性能与底层可调性。实际应用中需权衡首to

406

8G显存跑Qwen3.5-9B去审查版:GGUF量化与LM Studio部署全解析

大语言模型本地推理的核心瓶颈在于显存占用与格式兼容性。GGUF作为专为边缘设备优化的工业级模型格式,通过分层量化(如Q5_K_M)在保持98.7% MMLU精度的同时,将9B级模型压缩至7.2GB显存占用,使RTX 3060等8G显卡具备实用推理能力;其自描述结构、零拷贝加载和CUDA Graph硬件加速特性,显著优于SafeTensors等Python依赖型格式。结合LM Studio的动态CUDA编译与精细GPU层分配机制,用户可在消费级硬件上构建可控、透明、可调试的本地大模型服务,广泛适用于私有RAG

1681

10.1 LangChain 智能体开发(LangSmith Studio)

LangSmith Studio是一个本地可视化调试工具,用于开发和测试LangChain智能体。它通过连接本地运行的智能体,实时展示执行步骤、提示词、工具调用及结果。使用前需注册LangSmith账号并获取API密钥。安装LangGraph CLI后,配置智能体代码和环境变量,通过langgraph dev命令即可在Studio界面中查看和调试智能体。核心功能包括可视化执行流程、重放输入、监控指标、热重载等,能显著提升复杂工作流的调试效率。最佳实践建议开发时必配Studio,通过langgraph.jso

kjkdd的博客 152

JLink版本不兼容?手把手教你解决APM32F003F6P6在Keil中烧写闪退和报错

本文详细解析了APM32F003F6P6在Keil中烧写闪退和报错的解决方案,重点介绍了JLink版本兼容性问题。通过实测不同版本组合,推荐使用JLink 7.20a或6.86b与Keil 5.25的黄金组合,并提供详细的降级驱动和工程配置步骤,帮助开发者高效解决烧写困境。

weixin_33694620的博客 414

DLL导出函数名隐藏实战:三种方法保护代码安全

在Windows软件开发中,动态链接库(DLL)的导出函数名是模块间通信的关键标识,也是逆向工程的重要突破口。理解PE文件格式中的导出表结构是掌握DLL工作原理的基础,它记录了函数地址、名称和序号的映射关系。通过隐藏或混淆这些导出名称,可以有效增加代码分析的难度,提升软件的知识产权保护和安全性。这一技术在软件保护、游戏反作弊和安全组件中具有重要价值。本文聚焦DLL导出函数名隐藏,结合Dependencies工具分析,详细解析仅序号导出、导出转发器和运行时动态修改三种实用方案,为开发者提供从原理到实践的完整指

weixin_29315091的博客 302

IPOP 使用详解 (附IPOP工具包)

IP 地址动态绑定功能;路由信息查询和配置功能;MAC 地址信息查询和修改功能;MAC 、主机信息扫描功能;本机网络报文统计功能;本机端口列表、远程端口扫描功能;端口映射功能;网卡流量统计功能;本机 IP 报文捕获和发送功能;终端控制功能(支持 telnet 、 dos、 ssh、 sftp 、ftp、com 等协议);TCL 脚本支持;多种服务功能( tcp/udp/ping/telnet/ftp/tftp/web/team/syslog/smtp );

悦分享 1万+

EfficientNet 改进:StripCGLU模块的创新与应用

本文提出了一种改进的EfficientNet-b0模型,核心创新是通过引入StripCGLU模块来提升网络性能。StripCGLU结合了水平/垂直条带卷积和GLU激活机制,具有参数效率高、计算量少的优点。改进策略包括选择性替换部分MBConv为StripCGLU模块(每隔3个块插入),同时保留早期层结构。测试表明该模型适用于移动端视觉任务,在保持效率的同时提升性能。代码实现包含模块定义、模型构建及测试部分,展示了如何通过精心设计的模块改进现有网络架构。

Henry的博客 235

【ESP 保姆级教程】玩转emqx数据集成篇④ ——数据桥接之HTTP服务

主要是学习数据桥接功能以及构建自己的http服务器,这是一个非常有用的功能。包括各种传感器上报基本上都需要数据桥接功能支持,所以还是希望认真学习这一块开发,然后结合数据库存储等等知识点进行进一步学习。

单片机菜鸟哥的博客 1298

如何正确的计算两个角度的角度差?

这一步是必要的,因为它确保了无论a相对于b是在逆时针方向还是顺时针方向,d2总是正确地反映出绕圆相反方向的角度差。这样,当函数进行最后的比较时,它能够准确地比较两个方向的旋转路径并选择最短的一个。

小秋 AI SLAM 入门实战教程 4129

Codex 接入国产大模型指南:客户端与 CLI 双端实战

CC Switch是目前最流行的 Codex / Claude Code 模型切换工具,内置了协议转换功能,支持几乎所有主流国产模型。核心原理Codex → 本地 8317 端口(CC Switch)→ 协议转换 → 国产模型 API整个过程对 Codex 完全透明,Codex 以为自己在跟标准的 Responses API 对话。用户类型推荐方案理由新手 / 不想折腾配置简单,免费额度够用追求稳定体验通义千问(原生接入)官方兼容,功能最完整企业用户自建 AI 网关可控性强,支持多用户管理预算有限。

篮球界最会写bug的人;程序猿中打球最菜的人。 558

【推荐100个unity插件】unity易于使用模块化设计的天空、体积云和天气系统——Enviro 3

Enviro 3是一款功能强大的Unity天空与天气系统插件,提供动态天空、体积云、天气模拟等丰富功能。安装时需将预制体拖入场景并配置主相机,URP支持需激活深度纹理和添加渲染特性。模块化设计允许自由添加/移除时间、光照、雾效等模块,并通过API控制参数。推荐配合色调映射(如ACES模式)获得最佳视觉效果。插件支持季节、温湿度模拟及闪电风暴等特效,适用于需要逼真环境渲染的Unity项目。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2081

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: Vite构建Typescript简易原生前端项目
下一篇: AI生成行业关键词辅助网页爬虫
Alex程
博客等级 码龄7年 60粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值