使用nextjs本地化部署AI大模型gemma

这篇具有很好参考价值的文章主要介绍了使用nextjs本地化部署AI大模型gemma。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

笔记本也能部署本地AI模型进行聊天啦!

博主是AI新手,如有不对还请评论区指教~

这里介绍mac的部署方式,win也可以实现。

本案例使用到:ollama + nextjs + langchain.js + milvus 来实现知识库问答和聊天。

ollama:本地运行模型服务

nextjs:前端框架项目

langchain.js:调用模型服务并对话

milvus:向量数据库

开源代码:GitHub - huangj17/gemma-nextjs: 使用nextjs本地化部署AI大模型gemma

1、下载 ollama 在本地运行

  1. 安装教程:22K star的超强工具:Ollama,一条命令在本地跑 Llama2 - 知乎
  2. 官方文档:gemma 安装后使用 ollama run gemma:2b 命令把gemma:2b模型拉取到本地运行

2、创建一个nextjs项目

  1. 安装教程:Getting Started: Installation | Next.js (前端小伙伴就很清楚啦~)
  2. 创建后安装langchainjs依赖包,yarn add langchain @langchain/community  Installation | 🦜️🔗 Langchain
  3. 安装完成yarn dev跑起来
  4. 创建一个ollama实例:
    import { ChatOllama } from "@langchain/community/chat_models/ollama";
    
    const chatModel = new ChatOllama({
      baseUrl: "http://localhost:11434", // Default value
      model: "gemma:2b",
    });
  5. 发起对话:
    await chatModel.invoke("what is LangSmith?");
  6. 你就会得到一个结果:使用nextjs本地化部署AI大模型gemma,人工智能,langchain,reactjs,llama,milvus,ai

3、安装Milvus向量数据库

  1. 安装教程:Install Milvus Standalone with Docker Milvus documentation 从官网下载安装。
  2. 安装完成后可以使用官方桌面化工具 Attu 来进行连接查看向量数据。
  3. 输入默认Milvus服务地址进行连接使用nextjs本地化部署AI大模型gemma,人工智能,langchain,reactjs,llama,milvus,ai
  4. 连接后可以查看集合也可以进行向量查询使用nextjs本地化部署AI大模型gemma,人工智能,langchain,reactjs,llama,milvus,ai

4、使用langchainjs连接向量库

  1. cd到next项目安装milvus依赖包(注意milvus包仅限node环境运行)
    yarn add @zilliz/milvus2-sdk-node
  2. 在next项目中 src/pages/api 新建milvus.ts文件
    import { OllamaEmbeddings } from "@langchain/community/embeddings/ollama";
    import { Milvus } from "@langchain/community/vectorstores/milvus";
    import type { NextApiRequest, NextApiResponse } from "next";
    
    type ResponseData = {
      result: any;
    };
    
    export default async function handler(
      req: NextApiRequest,
      res: NextApiResponse<ResponseData>
    ) {
      const embeddings = new OllamaEmbeddings({
        model: "gemma:2b",
        baseUrl: "http://localhost:11434",
      });
      const vectorStore = await Milvus.fromTexts(
        [
          "Tortoise: Labyrinth? Labyrinth? Could it Are we in the notorious Little\
                    Harmonic Labyrinth of the dreaded Majotaur?",
          "Achilles: Yiikes! What is that?",
          "Tortoise: They say-although I person never believed it myself-that an I\
                    Majotaur has created a tiny labyrinth sits in a pit in the middle of\
                    it, waiting innocent victims to get lost in its fears complexity.\
                    Then, when they wander and dazed into the center, he laughs and\
                    laughs at them-so hard, that he laughs them to death!",
          "Achilles: Oh, no!",
          "Tortoise: But it's only a myth. Courage, Achilles.",
        ],
        [{ id: 2 }, { id: 1 }, { id: 3 }, { id: 4 }, { id: 5 }],
        embeddings,
        {
          collectionName: "goldel_escher_bach",
          clientConfig: {
            address: "localhost:19530",
            token: "root:Milvus",
            ssl: false,
          },
        }
      );
    
      const response = await vectorStore.similaritySearch("scared", 2);
    
      res.status(200).json({ result: response });
    }
    

    注意:OllamaEmbeddings第一个参数填写本地运行的ollama环境配置。clientConfig为milvus配置文章来源地址https://www.toymoban.com/news/detail-850263.html

  3. 返回前端页面index.tsx中使用axios或者fetch调用上面的接口 /api/milvus GET 就能看到返回的查询向量结果了

5、用向量结果配合ollama运行的gemma模型进行提问

  1. 回到前端页面,创建ollama聊天模型,创建提示词结合上下文来进行对话
    const chatModel = new ChatOllama({
      baseUrl: "http://localhost:11434",
      model: "gemma:2b",
    });
    const prompt = ChatPromptTemplate.fromMessages([
      ["user", "{input}"],
      [
        "system",
        `您是一位经验丰富的文档编写专家。使用所提供的上下文:\n\n{context},尽最大努力回答用户的问题。生成给定问题的简明答案。不要发重复文字!`,
      ],
    ]);
    
    const documentChain = await createStuffDocumentsChain({
      llm: chatModel,
      prompt: prompt,
    });
    const invoke = await documentChain.invoke({
      input: 'Who is Tortoise talking to?',
      context: result.map((item: any) => new Document({ ...item })), // result接口返回的向量结果
    });
  2. 搞定!打印invoke就可以看到最终结果啦!

到了这里,关于使用nextjs本地化部署AI大模型gemma的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 实战whisper:本地化部署通用语音识别模型

            Whisper 是一种通用语音识别模型。它是在大量不同音频数据集上进行训练的,也是一个多任务模型,可以执行多语言语音识别、语音翻译和语言识别。         这里呢,我将给出我的一些代码,来帮助你尽快实现【语音转文字】的服务部署。         以下是该A

    2024年01月18日
    浏览(96)
  • 【AI工具】-Stable Diffusion本地化部署教程

    今天我们要介绍的是时下最流行的AI绘图软件Stable Diffusion,虽然Diffusion.ai已经开放api,但是长时间的商业化调用我们需要购买很多的金币。所以我们需要找一个平替的AI绘图平台,现在主流市场中AI绘图软件主要就是OpenAI的DALLE、midjourney以及今天要学习的Stable Diffusion,而前两

    2024年02月13日
    浏览(55)
  • Window本地化部署stable diffusion AI绘图

    从零开始,手把手教你Window本地化部署stable diffusion AI绘图 - 知乎 (zhihu.com) 解决MAC笔记本Stable Diffusion安装时报No matching distribution found for tb-nightly的问题 - 阿狸哥哥 - 博客园 (cnblogs.com)  修改启动脚本启动命令里加入了 --precision full --no-half precision full就是全精度,no half是不使用

    2024年02月11日
    浏览(55)
  • Window本地化部署stable diffusion AI绘图+问题汇总

    1. 为什么要本地部署 本地部署没有生成数量的限制,不用花钱,生成时间快,不用排队,自由度高很多,可以调试和个性化的地方也更多。 部署过程可以熟悉环境配置的流程,熟悉工程化部署步骤。对于PM来说也是一种技术成长。 部署过程遇到各种问题,在尝试解决的过程

    2024年02月09日
    浏览(57)
  • 不需要GPU就可以玩转模型,同时支持本地化部署

            简单一款不需要GPU就可以在Win 机器跑的模型:Ollama;用于本地运行和部署大型语言模型(LLMs)的开源工具 关于Ollama的简要介绍 平台兼容性 :Ollama支持多种操作系统,包括macOS、Linux和Windows,这使得它在不同用户之间具有较好的可访问性。 模型支持 :它能够支持

    2024年04月16日
    浏览(47)
  • GPT大语言模型Alpaca-lora本地化部署实践【大语言模型实践一】

    Alpaca模型是斯坦福大学研发的LLM(Large Language Model,大语言)开源模型,是一个在52K指令上从LLaMA 7B(Meta公司开源的7B)模型微调而来,具有 70亿 的模型参数(模型参数越大,模型的推理能力越强,当然随之训练模型的成本也就越高)。 LoRA,英文全称Low-Rank Adaptation of Large

    2024年02月05日
    浏览(54)
  • 本地化部署离线开源免费语音识别API,支持多模态AI能力引擎

    思通数科作为一家专注于多模态AI能力开源引擎平台,其技术产品涵盖了自然语言处理、情感分析、实体识别、图像识别与分类、OCR识别以及语音识别等多个领域。在语音识别这一细分市场,思通数科的技术产品中的音频文件转写服务有着相似的应用场景和功能特点。 思通数

    2024年04月12日
    浏览(64)
  • 基于GitHub代码库训练模型本地化AI代码自动补全 - Tabby Windows10

    参考: https://github.com/TabbyML/tabby 已经有好几款类似强劲的代码补全工具,如GitHub Copilot,Codeium等,为什么还要选择Tabby? Tabby除了和其他工具一样支持联网直接使用之外, 还支持本地化部署 。 即对内部代码安全性要求很高时,可以采取Tabby项目模型的本地化部署,不用担心本

    2024年02月02日
    浏览(124)
  • GPT大语言模型Alpaca-lora本地化部署实践【大语言模型实践一】 | 京东云技术团队

    Alpaca模型是斯坦福大学研发的LLM(Large Language Model,大语言)开源模型,是一个在52K指令上从LLaMA 7B(Meta公司开源的7B)模型微调而来,具有 70亿 的模型参数(模型参数越大,模型的推理能力越强,当然随之训练模型的成本也就越高)。 LoRA,英文全称Low-Rank Adaptation of Large

    2024年02月05日
    浏览(53)
  • 【个人笔记本】本地化部署详细流程 LLaMA中文模型:Chinese-LLaMA-Alpaca-2

    不推荐小白,环境配置比较复杂 下载原始模型:Chinese-LLaMA-Alpaca-2 linux部署llamacpp环境 使用llamacpp将Chinese-LLaMA-Alpaca-2模型转换为gguf模型 windows部署Text generation web UI 环境 使用Text generation web UI 加载模型并进行对话 笔记本环境: 操作系统:win11 CPU:AMD R7535HS GPU:笔记本4060显卡

    2024年02月08日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包