使用谷歌 Gemini API 与 langchain 结合构建自己的 ChatBot(二)
上一篇文章 使用谷歌 Gemini API 构建自己的 Chat(教程一) 我们介绍了 Gemini
是什么,以及如何使用Gemini
构建一个多模态的聊天场景示例。这一篇我们使用 langchain
与 Gemini
集成构建应用:
将 Langchain
与 Gemini
集成
Langchain
已成功将Gemini
模型整合到其生态系统中,使用ChatGoogleGenerativeAI
类。
启动该过程需要向ChatGoogleGenerativeAI
类提供所需的Gemini
模型来创建一个llm类。我们调用函数并传递用户输入的内容为参数。
可以通过调用response.content
获取生成的响应。
- 在下面的代码中,我们构建了一个最简单的查询。
from langchain_google_genai import ChatGoogleGenerativeAI
llm = ChatGoogleGenerativeAI(model="gemini-pro")
response = llm.invoke("Explain Quantum Computing in 50 words?")
print(response.content)
在下面的代码中,我们将多个输入传入模型,并获取模型的响应。
代码语言: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)
在下面的代码中,我们提供了文本和图像输入,并期望模型基于给定的输入生成文本响应。
代码语言: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)
HumanMessage
类是 langchain_core
Message
库,用于将内容结构化为包含属性 type
、text
和 image_url
的字典列表。该列表传递给 llm.invoke()
函数,并可以使用 `response.content
访问响应内容。
- 在下面的代码中,我们要求模型找出给定图像之间的差异。
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)
脑洞大开,我们可以做一个这样找不同的程序了。