使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)

2024-09-06 10:45:20 浏览数 (2)

使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)

使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_模态使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_模态

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

LangchainGemini 集成

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

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

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

  • 在下面的代码中,我们构建了一个最简单的查询。
代码语言:javascript复制
from langchain_google_genai import ChatGoogleGenerativeAI
 
 llm = ChatGoogleGenerativeAI(model="gemini-pro")
 response = llm.invoke("Explain Quantum Computing in 50 words?")
 print(response.content)
使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_模态_02使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_模态_02

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

代码语言:javascript复制
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)
使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_模态_03使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_模态_03

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

代码语言:javascript复制
from langchain_core.messages import HumanMessage
 
 llm = 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)
使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_API_04使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_API_04
使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_API_05使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_API_05

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

  • 在下面的代码中,我们要求模型找出给定图像之间的差异。
代码语言:javascript复制
from langchain_core.messages import HumanMessage
 
 llm = 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)
使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_应用程序_06使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_应用程序_06
使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_API_07使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_API_07
使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_应用程序_08使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)_应用程序_08

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

0 人点赞