当前位置: 首页 > news >正文

【AI大模型】使用谷歌 Gemini API 构建自己的 ChatGPT(二)

image.png

上一篇文章 【AI大模型】使用谷歌 Gemini API 构建自己的 ChatGPT(一)🚀我们介绍了 Gemini 是什么,以及如何使用Gemini 构建一个多模态的聊天场景示例。这一篇我们使用 langchainGemini 集成构建应用:

LangchainGemini 集成

Langchain已成功将Gemini模型整合到其生态系统中,使用ChatGoogleGenerativeAI类。

启动该过程需要向ChatGoogleGenerativeAI类提供所需的Gemini模型来创建一个llm类。我们调用函数并传递用户输入的内容为参数。

可以通过调用response.content获取生成的响应。

  • 在下面的代码中,我们构建了一个最简单的查询。
from langchain_google_genai import ChatGoogleGenerativeAIllm = ChatGoogleGenerativeAI(model="gemini-pro")
response = llm.invoke("Explain Quantum Computing in 50 words?")
print(response.content)

img

在下面的代码中,我们将多个输入传入模型,并获取模型的响应。

batch_responses = llm.batch(["Who is the Prime Minister of India?","What is the capital of India?",]
)
for response in batch_responses:print(response.content)

img

在下面的代码中,我们提供了文本和图像输入,并期望模型基于给定的输入生成文本响应。

from langchain_core.messages import HumanMessagellm = ChatGoogleGenerativeAI(model="gemini-pro-vision")message = HumanMessage(content=[{"type": "text","text": "Describe the image",},{"type": "image_url","image_url": "https://picsum.photos/id/237/200/300"},]
)response = llm.invoke([message])
print(response.content)

输入的图片

输出的内容

HumanMessage 类是 langchain_core Message库,用于将内容结构化为包含属性 typetextimage_url 的字典列表。该列表传递给 llm.invoke() 函数,并可以使用 ``response.content` 访问响应内容。

  • 在下面的代码中,我们要求模型找出给定图像之间的差异。
from langchain_core.messages import HumanMessagellm = ChatGoogleGenerativeAI(model="gemini-pro-vision")message = HumanMessage(content=[{"type": "text","text": "Find the differences between the given images",},{"type": "image_url","image_url": "https://picsum.photos/id/237/200/300"},{"type": "image_url","image_url": "https://picsum.photos/id/219/5000/3333"}]
)response = llm.invoke([message])
print(response.content)

img

img img

脑洞大开,我们可以做一个这样找不同的程序了。🤪

使用 Gemini API 创建一个 ChatGPT

我们玩够了 Gemini 后,使用 StreamlitGemini 构建类似 ChatGPT 的简单应用程序。

  • 创建一个名为gemini-bot.py的文件,并将以下代码添加到其中。
import streamlit as st
import os
import google.generativeai as genaist.title("Gemini Bot")os.environ['GOOGLE_API_KEY'] = "AIzaSyAjsDpD-XXXXXXXXXXXXX"
genai.configure(api_key = os.environ['GOOGLE_API_KEY'])# 配置 model
model = genai.GenerativeModel('gemini-pro')# 初始化 message
if "messages" not in st.session_state:st.session_state.messages = [{"role":"assistant","content":"Ask me Anything"}]# 重新运行应用程序时显示来自历史记录的聊天消息
for message in st.session_state.messages:with st.chat_message(message["role"]):st.markdown(message["content"])# 处理并储存和回复。
def llm_function(query):response = model.generate_content(query)# 显示助手消息with st.chat_message("assistant"):st.markdown(response.text)# 保存用户信息st.session_state.messages.append({"role":"user","content": query})# 保存用户信息st.session_state.messages.append({"role":"assistant","content": response.text})# 输入我们的问题
query = st.chat_input("What's up?")# 当输入时调用该函数。
if query:# 显示用户的回答with st.chat_message("user"):st.markdown(query)llm_function(query)
  • 通过执行以下命令来运行该应用程序。
streamlit run gemini-bot.py
  • 点击终端显示的链接以访问该应用程序。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

总结:

  1. Gemini AI是谷歌创建的一组大型语言模型,具备处理多模态数据(文本、图像、音频等)的能力,能够进行复杂推理并生成多种类型的输出。
  2. Gemini 的多模态能力:Gemini AI 由谷歌开发,具有处理文本、图像、音频和代码等多种数据类型的能力,能够理解和响应复杂的多模态提示。
  3. 生成文本和安全性:通过示例代码展示了如何使用 Gemini 模型生成文本响应,并且模型内置的安全功能可以防止不当查询,如入侵电子邮件或制造武器的请求。
  4. 超参数配置:可以配置诸如温度、top_k、top_p 等超参数,以控制生成文本的随机性、长度和多样性,从而满足不同的应用需求。
  5. 视觉和多模态任务:使用 Gemini 的 gemini-pro-vision 模型,可以实现图像解释、基于图像生成故事以及对图像中的对象进行识别和计数等功能,展示了其在多模态处理上的强大能力。
  6. 文章演示了如何使用Gemini API进行文本生成和基于视觉的任务,包括解释图像内容、根据图片写故事以及计算图像中的对象数量。
  7. 使用Langchain库可以简化与Gemini模型的集成,使得处理文本和图像输入更加方便,并能够批量处理多个查询。
  8. 最后,展示了如何使用Streamlit框架与Gemini模型结合,构建一个类似ChatGPT的聊天应用程序,并通过示例代码展示了具体的实现步骤。

如何系统的去学习大模型LLM ?

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

事实上,抢你饭碗的不是AI,而是会利用AI的人。

科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

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

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

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

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

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈


http://www.mrgr.cn/news/60388.html

相关文章:

  • 模型训练识别手写数字(二)
  • 合约门合同全生命周期管理系统:企业合同管理的数字化转型之道
  • SpringCloud学习(补漏)
  • 文本编辑器的解压和使用
  • 颠覆级AI:10秒生成超清视频
  • Linux TCP CC状态机
  • Hugging Face | 个人使用笔记
  • Node-RED的面板的认识及操作
  • Linux第二讲:Linux权限理解
  • 海南华志亿星电子商务有限公司助力品牌销量飙升
  • 基于 ThinkPHP+Mysql 灵活用工_灵活用工系统_灵活用工平台
  • 通信原理概论复习笔记(2):模拟调制与数字调制
  • Spring Boot实用小技巧8 - 第530篇
  • 北京本盛数字科技有限公司-持续深耕AI智能化健康管理领域
  • nginx------HTTP模块配置详解
  • [论文笔记] 大模型评测:lm-evaluation-harnessPublic(eval-big-refactor)
  • 在 Gitee 或 GitCode 上克隆 Dify 项目源码并启动 Docker 环境
  • C++二级 求每个单词的长度的3种解决办法(包括find、substr)
  • 盛元广通食检中心实验室信息化LIMS系统
  • 大语言模型推理源码解读(基于llama3模型:来源github)
  • 做梦都想拥有的陪伴对象,AI居然免费帮我实现了...文中附送体验地址!
  • autMan奥特曼机器人-内置容器安装依赖报错:externally-managed-environment
  • 深度学习中的损失函数
  • # centos6.5 使用 yum list 报错Error Cannot find a valid baseurl for repo bas 解决方法
  • 3500多万家专利数据存入Mysql数据库
  • 本地服务器上搭建PPTist轻松实现跨地域的在线PPT制作与演示