NIM 平台生成式 AI-demo

需要python环境

官网注册:(后续调用模型需要秘钥key)Try NVIDIA NIM APIs

可以看到有多种模型:

官方案例

1.安装相关依赖:

pip install langchain_nvidia_ai_endpoints langchain-community langchain-text-splitters faiss-cpu gradio==3.50.0 setuptools beautifulsoup4

 

2.官方案例:

# -*- coding: utf-8 -*-# 导入必要的库
from langchain_nvidia_ai_endpoints import NVIDIAEmbeddings, ChatNVIDIA
from langchain_community.document_loaders import WebBaseLoader
from langchain_community.vectorstores import FAISS
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import chain
import os
import gradio as gr
from datetime import datetime
# Even if you do not know the full answer, generate a one-paragraph hypothetical answer to the below question in Chinese
# 定义假设性回答模板
hyde_template = """Even if you do not know the full answer, generate a one-paragraph hypothetical answer to the below question:{question}"""# 定义最终回答模板
template = """Answer the question based only on the following context:
{context}Question: {question}
"""# 定义函数来处理问题
def process_question(url, api_key, model_name, question):# 初始化加载器并加载数据loader = WebBaseLoader(url)docs = loader.load()# 设置环境变量os.environ['NVIDIA_API_KEY'] = api_key# 初始化嵌入层embeddings = NVIDIAEmbeddings()text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)documents = text_splitter.split_documents(docs)vector = FAISS.from_documents(documents, embeddings)retriever = vector.as_retriever()# 初始化模型model = ChatNVIDIA(model=model_name)# 创建提示模板hyde_prompt = ChatPromptTemplate.from_template(hyde_template)hyde_query_transformer = hyde_prompt | model | StrOutputParser()# 定义检索函数@chaindef hyde_retriever(question):hypothetical_document = hyde_query_transformer.invoke({"question": question})return retriever.invoke(hypothetical_document)# 定义最终回答链prompt = ChatPromptTemplate.from_template(template)answer_chain = prompt | model | StrOutputParser()@chaindef final_chain(question):documents = hyde_retriever.invoke(question)response = ""for s in answer_chain.stream({"question": question, "context": documents}):response += sreturn response# 调用最终链获取答案return str(datetime.now())+final_chain.invoke(question)# 定义可用的模型列表
models = ["mistralai/mistral-7b-instruct-v0.2","meta/llama-3.1-405b-instruct"]# 启动Gradio应用
iface = gr.Interface(fn=process_question,inputs=[gr.Textbox(label="输入需要学习的网址"),gr.Textbox(label="NVIDIA API Key"),gr.Dropdown(models, label="选择语言模型"),gr.Textbox(label="输入问题")],outputs="text",title="网页知识问答系统"
)# 启动Gradio界面
iface.launch()

 3.获取Key:

4.运行效果: 

更多尝试

图像生成模型

使用的模型:

总结:

感受不错,模型效果非常不错,体验了AI模型在知识问答领域的实际应用,这有助于理解AI技术如何影响信息检索和内容生成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/3677.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

欢迎使用Markdown编辑器

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

智慧医疗:AI如何改变传统医疗服务模式?

内容概要 在如今的医疗界,智慧医疗正如一阵旋风,呼啸而来,打破了传统的模式。这一变革的核心,毫无疑问是人工智能。想象一下,一个不需要排队候诊、甚至不需要出门的医生——这就是智能助手的非凡魅力!通过…

1.kubernetes作用及组件

容器管理集群名称叫做k8s 容器的编排工具:swarm,kubesphere,open shift,kubernetes【市场占比大】 一.kubernetes介绍 1.kubernetes是什么? 由谷歌公司开源的应用,基于go语言编写 简称k8s 2.kubernet…

【AcWing】算法基础课-动态规划

目录 1、闫式DP分析法 2、背包问题 2.1 01背包问题 朴素版本 优化版本 2.2 完全背包问题 朴素版本 优化版本 2.3 多重背包问题 朴素版本 二进制优化 2.4 分组背包问题 3、线性DP 3.1 数字三角形 3.2 最长上升子序列 3.3 最长公共子序列 4、区间DP 5、数位统计…

白天用的投影仪哪款好?掌握这个亮度参数谁敢忽悠你

人们追求松弛人生的同时,也着眼于高品质的家庭娱乐体验,高端家用投影仪以其大屏幕的视觉冲击力和便捷的移动性,应运成为众多家庭客厅、卧室的新宠。而在挑选家用投影仪时,亮度作为衡量其性能的重要指标之一,直接影响着…

七牛云OSS的使用

图片上传 一、七牛云oss介绍 1.1 图片存储介绍 在实际开发中,我们会有很多处理不同功能的服务器。例如: 应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 文件服务器:负责存储用户上传文件的服务器…

重新构想定性数据分析:使用 NVivo 15 实现 AI、反思和备忘录

NVivo 是研究出版物中引用最多的定性数据分析软件 (QDA 软件),使用 NVivo v15 最新主要版本从定性和混合方法数据中发现更多信息,融合 Lumivero AI Assistant 更快地识别主题、运行高级查询和发现基于证据的见解,让您在更短的时间内获得严谨的研究结果。…

C++【string的模拟实现】

在前文我们讲解了string类接口使用(C【string类的使用】(上),C【string类的使用】(下)),本片文章就来模拟实现string类。 注:本文实现的是string的部分重点内容,目的是为了更好的了解string&…

zabbix安装配置与使用

zabbix Zabbix的工作原理如下: 监控部分: Zabbix Agent安装在各个需要监控的主机上,它以主配置的时间间隔(默认60s)收集主机各项指标数据,如CPU占用率、内存使用情况等。 通讯部分: Agent会把收集的数据通过安全通道(默认10051端口)发送到Zabbix Server。Server会存储这些数…

7.3、实验三:RIPv2的基本配置

源文件: 7.3、实验三:RIPv2的基本配置: https://url02.ctfile.com/d/61945102-63684790-45f44b?p2707 (访问密码: 2707) 一、目的 能够使用RIPv2路由协议 二、实验要求 1.要求 使用RIPv2协议,使得PC0 和 Service0能够通信,…

石岩田心村的地面停车点(月卡350)

​我之前一直以为城中村里的地面停车场会比上屋地铁口的联天停车场便宜一些。没想到这个田心村月卡也是350元哈。比对面的园岭村还贵,元岭村月卡我记得才260元。 田心村停车场标识牌 序号 收费项目 收费标准 1 小车临时停放 10元/小时,超过1小时加收…

大模型学习笔记------CLIP模型的再思考

大模型学习笔记------CLIP模型的再思考 1、CLIP模型与Prompt(提示)的思考2、CLIP模型与ResNet等分类模型的根本区别3、结束语 上文已经讲 CLIP(Contrastive Language-Image Pretraining)这个模型,也讲了我的一些思考。但是,随着深…

Spring之依赖注入(DI)和控制反转(IoC)——配置文件、纯注解

依赖注入 依赖注入(Dependency Injection,简称 DI)与控制反转(loC)的含义相同,只不过这两 个称呼是从两个角度描述的同一个概念。对于一个 Spring 初学者来说,这两种称呼很难理解, 下面我们将通过简单的语言来描述这两个概念。 当Java对象&…

外网访问 Immich 照片管理软件

Immich 是一个自托管的照片和视频备份的平台,它允许用户在私有服务器上存储、管理和分享他们的照片,视频等媒体文件。 第一步,本地部署安装 Immich 1,检查 Docker 服务状态,确保 Docker 正常运行。 systemctl statu…

Linux网络命令:它用于实时监控网络接口的状态变化的命令 ip monitor详解

目录 一、概述 二、使用 1、语法 2、对象类型 3、常用选项 4、获取帮助 三、 示例 1. 监视链路层变化 2. 监视所有的网络变化 3. 仅监视路由表的变化 4. 监视特定网络接口的状态变化: 5. 监视网络接口地址的变化 四、实际应用 五、其他事项 一、概述 …

QT仿QQ聊天项目,第三节,实现主界面(好友列表)

目录 一,主界面示例 二,主界面控件组成 三,好友列表实现 1,好友列表的实现原理 2,实现示例代码 一,主界面示例 二,主界面控件组成 三,好友列表实现 1,好友列表的实现…

查找连表的倒数第k个节点

居安思危 何解? 1、假如有1、2、3三个节点,找倒数第二个,实际是整数第几个? 3-21 2 : 及 length - k 1 ,所以先遍历找节点长度,在遍历找所需节点 // 今天这不是力扣的var findNode function(head , k){…

练习LabVIEW第三十九题

学习目标: 刚学了LabVIEW,在网上找了些题,练习一下LabVIEW,有不对不好不足的地方欢迎指正! 第三十九题: 程序开始运行后要求用户输入密码,密码正确时字符串显示控件显示 “欢迎进入”&#x…

AI浪潮将席卷一切:本·霍洛维茨的AI战略与发展观点

近年来,人工智能(AI)的快速发展已经成为全球科技与经济变革的核心驱动力。从自驾汽车到生成式对话系统,AI正以前所未有的速度改变我们的生活、工作方式以及社会结构。然而,作为硅谷著名风险投资公司a16z的联合创始人&a…

windows下位机远程调试

一、前言 发布到下位机的程序在某种操作下出现异常,一种有效的远程调试手段能更快的帮助我们定位问题和解决问题。 VS结合Remote Debugger可以让下位机程序像运行在上位机上一样打断点调试,非常方便。 二、调试环境部署 1、设置下位机程序运行所在目录共…