用langchain搭配最新模型ollama打造属于自己的gpt

ollama + fastgpt 搭建免费本地知识库 基于 LLM 大语言模型的知识库问答系统。 阅读详情

langchain

前段时间去玩了一下langchain,熟悉了一下大模型的基本概念,使用等。前段时间meta的ollama模型发布了3.0,感觉还是比较强大的,在了解过后,自己去用前后端代码,调用ollama模型搭建了一个本地的gpt应用。

image.png

核心逻辑

gpt.png

开始搭建

首先本地需要安装ollama的模型,这里有两种方式,大家自己选择即可,第一种选择官网下载ollama, 第二种可以去docker hub里面下载,里面有ollama的镜像包, 这里为了方便我就用第一种了。

ollama

下载好之后,我们直接执行

ollama serve

命令即可, 出现下面的样子,代表执行成功了。

image.png

这时候ollama会运行在11434端口,这样我们的后端可以通过端口连接到ollama的服务了。

ollama run llama3

直接执行这个命令就可以在本地终端里起一个gpt, llama3是ollama最新的模型

image.png

后端代码实现

后端我们用nestjs来搭建

首先我们需要安装一个langchain的包 @langchain/community, 我这里选用的社区版,支持度比较好,模型也比较多。

!!!⚠️注意点 推荐用npm和yarn安装, pnpm安装会导致失败,官网上面也有说明这个,楼主踩过坑,如果非要用pnpm安装的话,按照官网指示的操作来

import { Controller, Post, Body, Sse, Header } from '@nestjs/common';

import { Observable, Subject } from 'rxjs';

import { Ollama } from '@langchain/community/llms/ollama';

  


@Controller()

export class AppController {

private messageSubject = new Subject<MessageEvent>();

private model: Ollama;

constructor() {

  this.model = new Ollama({

    baseUrl: 'http://localhost:11434',

    model: 'llama3',

});

}

  


@Sse('sse')

@Header('Content-Type', 'text/event-stream')

sse(): Observable<MessageEvent> {

  return this.messageSubject.asObservable();

}

  

@Post('question')

async addList(@Body() body: { question: string }): Promise<any> {

  const stream = await this.model.stream(body.question);
  
  for await (const str of stream) {

  this.messageSubject.next({

    data: JSON.stringify({ answer: str, end: false }),

  } as MessageEvent);
Å
}

  
  this.messageSubject.next({

    data: JSON.stringify({ answer: '', end: true }),

  } as MessageEvent);

}

}

sse技术

是一种基于HTTP协议的服务器到客户端的单向数据通信技术,允许服务器向浏览器实时推送更新,而不需要客户端通过轮询等方式反复请求数据。很多gpt应用服务端向客户端发送消息都是利用这种方式去做的。SSE协议本质上就是一个Http的get请求,也支持Https,服务端在接到该请求后,返回状态。同时请求头设置也变为流形式。

Content-Type: text/event-stream,

这里因为只是示例demo,逻辑就写在controller层了,标准一点的还是抽到service层。

nest的sse接口返回值是一个Observable(可观察对象), 刚好在rxjs中,我们的suject(主体)也是一种Observable suject和普通的Observable区别在于,suject是多播,并且像EventEmitters ,像维护着多个监听器的一张注册表,当我们在请求到ollama返回的数据后,就可以调用next方法,将值多播到Observale中,这样就可以做到结果的接收

image.png

这个next方法,其实也就是迭代器方法,不断的调用next,会不断的输出值,直到没有值为止, 这里的end属性是控制我们客户端什么时候和服务端断开连接。

前端实现

前端的逻辑就很简单了,当我们发送问题后,监听到服务端发过来的结果收集起来展示即可,我这里的样式写的比较简陋,功能也只是最基本的,大家可以自己完善

import { useRef, useState } from "react";

type Message = {

answer: string;

end: boolean;

};

export default function Layout() {

const [message, setMessage] = useState<Message[]>([]);

const [question, setQuestion] = useState<string>("");

  

const ref = useRef<any>();

  

const send = () => {

const question = ref.current.value as string;

if (!question) return;

fetch("http://localhost:3000/question", {

method: "POST",

headers: {

"Content-Type": "application/json",

},

body: JSON.stringify({

question,

}),

});

setQuestion(question);

ref.current.value = "";

setMessage((prev) => [...prev, { answer: "", end: false }]);

const eventSource = new EventSource("http://localhost:3000/sse");

eventSource.onmessage = ({ data }) => {

const { answer, end } = JSON.parse(data);

if (!end) {

setMessage((prev) => {

const newMessages = [...prev];

newMessages[newMessages.length - 1].answer += answer;

return newMessages;

});

}

if (end) {

eventSource.close();

}

};

};

  

return (

<div className="h-screen w-screen overflow-hidden bg-orange-400">

<nav className="w-full h-16 flex items-center justify-between bg-indigo-400 px-4">

<span className="w-10 h-10">

<img src="public/ollama.png" className="w-full h-full" />

</span>

<span>ollama大模型</span>

<span className="">欢迎使用</span>

</nav>

  

<div className="w-full h-[calc(100%-64px)] relative">

<aside className="w-[200px] bg-red-400 h-full p-4 absolute top-0 flex justify-center">

todo

</aside>

<main className="w-full h-full absolute left-[200px] top-0 px-2">

<div className="w-full h-[calc(100%-64px)] py-4 overflow-y-auto">

<div

style={{

display: question ? "block" : "none",

}}

className="human min-h-[100px] w-[calc(100%-200px)] p-4 rounded-lg text-white bg-yellow-300"

>

{question}

</div>

<div

style={{

display: message?.[message.length - 1]?.answer

? "block"

: "none",

}}

className="ai min-h-[100px] text-white w-[calc(100%-200px)] bg-indigo-500 mt-5 rounded-lg p-4 "

>

{message?.[message.length - 1]?.answer}

</div>

</div>

<footer className="rounded-lg relative bottom-2 w-[calc(100%-200px)] h-[64px] border-red-300 border-solid border-[1px]">

<input

ref={ref}

type="text"

className="rounded-lg w-full px-4 text-lg h-full caret-red-300 outline-none focus:border-[1px] focus:border-solid focus:border-red-500"

/>

<button

onClick={() => send()}

className="z-10 focus:text-red-700 absolute right-0 top-0 w-[64px] h-[62px] bg-red-300"

>

发送

</button>

</footer>

</main>

</div>

</div>

);

}

看下实现效果

总结

ollama的中文支持度不是很好,看视频效果也能看得出来,不过功能还是很强大的。 功能实现的比较基础,不过核心功能都有,大家可以参考代码自行拓展,动动手,你我都有属于自己的gpt

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

打造你的私人RAG解决方案:利用Ollama、GPT4All和Chroma 通过本文的介绍,您了解了如何使用Ollama、GPT4All和Chroma构建一个私有的RAG解决方案。 阅读详情

相关推荐

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

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

weixin_30571465的博客 435

Langchain + Ollama

伊织 2024-03-20。

AI工程化、开源分享、文档翻译、代码笔记 9278

LangChain4j 入门实践

LangChain4j Java大语言模型集成框架入门指南 摘要:LangChain4j是一个简化大语言模型(LLM)集成到Java应用的框架。本文介绍了其发展背景(2023年由Quarkus发布)、核心功能(统一API访问主流LLM、支持智能代理和RAG等)及典型应用场景(智能客服、数据处理等)。详细演示了如何创建SpringBoot项目(含Maven配置),并逐步指导接入OpenAI模型,包括添加依赖、配置API密钥和创建测试用例。特别提供了使用演示密钥快速体验的解决方案,适合Java开发者快速入门AI

Knight 1389

Ollama 在 LangChain 中的使用

LangChain 是一个基于语言模型的框架,用于构建聊天机器人、生成式问答(GQA)、摘要等功能。它的核心思想是将不同的组件“链”在一起,以创建更高级的语言模型应用。LangChain就像一个超级连接器,可以轻松和各种外部工具(比如API、搜索引擎)对接。比如,想让聊天机器人能查询天气,只需要把天气API和LangChain连接起来,它就能帮你搞定。这样,你的应用功能会更强大,而且不需要自己去写复杂的代码。组件化:LangChain 框架提供了用于处理语言模型的抽象组件,以及每个抽象组件的一系列 实现。

AllYoung_362的博客 2383

Ollama教程——使用langchain:ollama与langchain的强强联合

在当今技术迅速发展的时代,利用最新的人工智能技术来处理复杂的数据和文档成为了开发者们追求的目标。ollama和langchain作为两个强大的工具,能够帮助我们更加高效地完成这项任务。本文将深入探讨如何将ollama与langchain结合使用,通过一个具体的示例——处理和理解《奥德赛》这一经典文献——来展示其强大的实战应用能力。本文适合具有一定编程经验的中高级开发者,旨在通过丰富的技术细节和实战代码,帮助读者掌握这两个工具的高效结合使用方法。

walkskyer的博客 9622

[AI 实战] 用 4070 Ti 本地跑 GPT-OSS-20B:打造你的内网 Codex

项目推荐值GPU模型运行方式Ollama显存消耗12–14GB系统内存≥ 32GB性能水平适用场景内网 Codex、自动代码生成、私有文档问答、Agent 推理核心💬一句话总结4070 Ti 是 GPT-OSS-20B 的“目标显卡”之一,Ollama 的量化模型能直接跑。结合 OpenHand、Dify、LangChain 等框架,你可以轻松打造一个内网可控、离线安全、可扩展的 AI Agent 平台。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 1678

基于RAG-GPT与本地大模型构建LangChain智能客服实践指南

检索增强生成(RAG)技术通过将外部知识库与大型语言模型(LLM)相结合,有效解决了通用大模型在专业领域知识上的幻觉与时效性问题。其核心原理是将文档向量化存储,在用户提问时先进行语义检索,再将相关上下文注入提示词中,引导模型生成基于事实的精准回答。这一技术价值在于显著提升了AI应用在垂直领域的可靠性与实用性,尤其适用于技术文档问答、企业知识库等场景。本文以构建LangChain官方文档智能客服为例,详细演示了如何利用RAG-GPT框架与Ollama本地大模型,实现从环境配置、知识库构建、提示词工程到效果优化

weixin_34414196的博客 552

【大模型工程局】Ollama:本地化运行大型语言模型的强大工具

在GitHub 2024年度报告中,一个名为Ollama的开源项目脱颖而出,吸引了广泛的关注。Ollama凭借其独特的功能和优势,在竞争激烈的AI领域中迅速崭露头角。本文将深入探讨Ollama,从其基本原理、与同类软件的比较、在各种应用场景中的实际案例等方面,全面剖析其功能和优势,并展望其未来发展趋势。Ollama以其简单易用、轻量级的特点在用户中获得较高评价,特别适合注重快速部署和易用性的开发者。LocalAI则提供更丰富的功能,适合需要更多定制化和多模型支持的用户。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 6192

Ollama+FastAPI+LangChain强强联合:本地大模型实战指南,打造未来AI应用!

本文详细介绍了Python+AI三件套(Ollama+FastAPI+LangChain)的实战应用,包括搭建本地大模型API避免云端费用、用FastAPI快速构建AI接口、实现结构化输出与本地RAG系统、流式响应、带记忆功能的ChatGPT服务以及并行运行多个模型。这些技术组合让开发者能够构建本地运行、零成本的AI应用,无需依赖云端服务。

2401_85725028的博客 1112

别再只设接触压力了!用ANSYS Workbench模拟O型圈密封泄漏的完整流程

本文详细介绍了在ANSYS Workbench中模拟O型圈密封泄漏的完整流程,重点解析了流体渗透压力载荷的设置与应用。通过双物理场耦合模型和精确的参数配置,帮助工程师准确评估密封性能,避免传统方法仅考虑接触压力的局限性。文章还提供了常见问题的解决方案和工程实践建议,提升密封设计的可靠性。

weixin_30372371的博客 401

Mac用户看过来!M1/M2芯片安装CiteSpace完整指南(从Homebrew到成功运行)

本文为Mac M1/M2芯片用户提供CiteSpace安装的完整指南,从Homebrew安装适配的Java环境到最终成功运行CiteSpace。详细步骤包括环境检查、Java配置、CiteSpace下载与优化,解决常见问题如内存分配、图形渲染和中文显示乱码,确保科研人员能顺利使用这一文献可视化工具。

weixin_42530458的博客 308

大模型RAG实战:使用RAG-GPT和Ollama搭建智能客服,大模型入门到精通,收藏这篇就足够了!

前面介绍了使用RAG-GPT和OpenAI快速搭建LangChain官网智能客服。有些场景,用户可能无法通过往外网访问OpenAI等云端LLM服务,或者由于数据隐私等安全问题,需要本地部署大模型。

2301_81888214的博客 857

SAP各模块表清单及逻辑关系介绍

分享韩国同行总结的各模块的表清单及逻辑关系,这对ABAP顾问和各模块业务顾问应该非常有用的 物料主数据 SD与MM PS模块 PP模块 QM模块 CO模块 FI模块

weixin_40672823的博客 9599

【LangChain】实战指南:聊天模型与工具调用全解析

大语言模型(LLM)虽然在文本生成、翻译、问答等任务中表现出色,但它本质上是一个封闭的知识系统: 知识存在截止日期,无法获取实时信息,无法执行外部操作(如计算、数据库查询、API 调用),复杂任务容易出现逻辑错误或幻觉。LangChain 的出现完美解决了这些问题。它通过聊天模型接口标准化了不同 LLM 的调用方式,通过工具调用机制让 LLM 具备了与外部世界交互的能力。本文将从最基础的聊天模型定义开始,一步步带你实现一个能实时搜索天气的 AI 助手。

会当凌绝顶,一览众山小 2504

TCP报文 Flood攻击原理与防御方式

TCP交互过程中包含SYN、SYN-ACK、ACK、FIN和RST报文,这几类报文也可能会被攻击者利用,海量的攻击报文会导致被攻击目标系统资源耗尽、网络拥塞,无法正常提供服务。接下来我们介绍几种常见的Flood攻击的原理和防御方式。

qq_32044265的博客 4219

博途WinCC多语言项目配置指南

在博途(TIA Portal)中为WinCC项目配置多语言功能,需通过系统化步骤实现界面文本的动态切换。

dhaimo的博客 2472

基于RAG-GPT与Ollama构建本地化智能客服系统:从原理到实战部署

检索增强生成(RAG)技术通过将外部知识库与大语言模型(LLM)相结合,解决了传统模型无法访问最新、私有信息的问题。其核心原理是将文档向量化存储,在用户提问时进行语义检索,并将相关上下文与问题一同输入模型生成精准答案。这项技术的核心价值在于提升AI回答的准确性、可追溯性和可控性,特别适用于企业知识库问答、智能客服等需要基于特定文档回答的场景。Ollama作为本地大模型运行框架,提供了便捷的模型管理和OpenAI兼容API,使得RAG系统能够完全在本地部署,保障数据安全。本文以构建智能客服系统为例,详细介绍了

weixin_34302561的博客 430

带标签的PHM2009齿轮箱数据集

PHM2009附加数据集—带标签的齿轮箱数据集,可用于测试算法

qq_39379705的博客 4874

基于开源大模型与LangChain构建本地AI助手:从环境部署到RAG实战

大语言模型(LLM)作为当前人工智能的核心技术,通过海量数据预训练获得强大的语言理解和生成能力。其工作原理基于Transformer架构,通过自注意力机制捕捉文本长距离依赖关系。这一技术价值在于能够将通用语言能力赋能各类应用,显著提升人机交互的智能化水平。在应用场景上,LLM不仅可用于聊天对话、内容创作,更能通过检索增强生成(RAG)技术接入私有知识库,构建领域专属的智能问答系统。本文聚焦于如何利用Llama等开源大模型,结合Ollama部署工具和LangChain应用框架,在本地环境低成本实现一个具备私有

weixin_30599769的博客 400

从URDF到Gazebo:一个完整的ROS2机械臂仿真与运动控制实战指南

本文提供了一个完整的ROS2机械臂仿真与运动控制实战指南。详细讲解了从URDF建模、ROS2 Control配置到Gazebo物理仿真的全流程,重点介绍了如何利用MoveIt2快速搭建高级运动规划系统,并解决实际部署中的常见问题,帮助开发者高效、安全地进行机器人算法验证与开发。

red88的博客 574

从0到1打造工业级上位机:通信协议到架构设计的实战全流程

作为一名在工控领域摸爬滚打十余年的开发者,前阵子刚帮一家新能源工厂完成了一套工业上位机系统的从0到1搭建。从最初和PLC通信联调时的“连不上、传错数”,到最终系统7×24小时稳定运行,踩过的坑、攒下的实战经验,今天就毫无保留地拆解给各位同行。这篇文章会从通信层、数据层、UI层到架构层逐层深入,全是工业现场验证过的干货,新手也能跟着落地。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 663

Docker+Ollama+LangChain:从零搭建企业级“隐私优先”本地 RAG 知识库 (附源码)

第三阶段结束了!Ollama:把大模型请回了家。🏠Docker:把应用装进了集装箱。📦RAG 实战:结合两者,打造了隐私安全的企业级助手。🛡️💡飞哥毕业设计请将这 5 周的所有代码整合,构建一个完整的 “企业级数据分析助手”:用户登录 -> 上传 Excel -> 后端存向量库 -> 用户提问 -> Agent 写 Pandas/SQL 代码分析数据 -> 前端流式展示结果。完成这个,你就是一名合格的AI 全栈工程师了!🎓。

👨‍💻 12年全栈老兵 | 擅长把复杂的代码逻辑翻译成“人话” | 只讲听得懂的技术故事 🚀 909

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Ollama+Cherry Studio本地大模型部署指南!

本文详细介绍了使用Ollama和Cherry Studio搭建本地大模型环境的完整流程,包括软件安装、模型下载、知识库构建等步骤。教程从零开始指导读者配置deepseek-r1模型和词嵌入模型,并提供了在线大模型作为替代方案,让初学者也能轻松实现本地大模型部署与使用。

libaiup的博客 1426

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

零成本本地部署大模型:Ollama实战指南与私有化应用

大型语言模型(LLM)通过模拟人类语言模式,基于海量数据进行预训练,实现了强大的理解和生成能力。其核心原理在于Transformer架构中的自注意力机制,能够捕捉文本中的长距离依赖关系。这一技术价值在于为开发者提供了可私有化、低成本、高可控的AI能力,尤其适用于对数据隐私和成本敏感的场景。通过本地部署,开发者可以将模型完全运行在自己的硬件环境中,实现数据不出域,彻底消除云端API调用的持续费用和隐私风险。Ollama作为一款专为本地运行和管理大模型设计的工具,极大地简化了部署流程,支持包括Llama 2、M

weixin_33782386的博客 331

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

GPT-oss:20b本地化实战:免费开源,打造你的私有知识库

本文介绍了如何在星图GPU平台上自动化部署GPT-oss:20b开源大模型镜像,快速构建本地私有知识库。该方案利用检索增强生成技术,能将企业内部的文档、报告等数据转化为可智能问答的知识系统,有效保障数据安全并降低使用成本。

weixin_34163588的博客 129
上一篇: 中国电信研究院出版,一本人人都能读懂的AI大模型综合指南!大模型从入门到精通只看这一本
下一篇: LLM大模型入门必读免费白皮书《从头训练大模型最佳实践》免费pdf分享
我爱学大模型
博客等级 码龄3年 7883粉丝 687原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值