网易首页 > 网易号 > 正文 申请入驻

我构建了一个AI景点推荐应用供探索新城市

0
分享至

我创建了一个城市探索者应用,使用Amazon Bedrock的知识库推荐旅游景点。在这篇文章中,我详细介绍了如何创建这个应用程序。

[Veliswa Boya]

发布于2024年4月17日

在我的工作中,我很幸运能够遍及世界各地。正如你可能已经知道的那样,出差旅行与休闲旅行有所不同。出差时通常没有太多时间可以探索和观光。 为了安排一些观光时间,我通常会在当天工作安排开始之前很早起床,或者在一天结束时留出一个小时左右的时间。

由于观光时间如此有限,充分利用这些宝贵时间就显得很重要了。我并不总是做得很好,我的观光计划往往依赖从各种渠道收集的信息,包括旅游Instagram账号、TripAdvisor、朋友和同事等。

好了,朋友们和同事们不用再烦恼了!我已经创建了一个城市探索者应用,它使用Amazon Bedrock的知识库推荐游览景点。在这篇文章中,我详细阐述了如何创建这个应用程序。

什么是知识库,为什么它们很重要?

[Retrieval-Augmented Generation (RAG)]可以通过在基于训练数据源之外引用权威知识库后再生成响应,优化你从大型语言模型 (LLM) 获得的输出。因此,知识库有助于为LLM提供更多上下文,从而生成更相关、更准确和更加定制化的输出。

我使用Amazon Bedrock的知识库构建城市探索者应用程序,原因如下:

  1. 我正在寻找一个单一准确的数据源,以满足城市探索者应用程序的所有需求。
  2. 我希望能够根据我的旅行行程快速且经济有效地修改我的数据源。

RAG使我能够更快地测试和改进我的应用程序,因为我可以根据不断变化的要求控制和更改LLM的数据源。

如何使用知识库构建我的应用程序

现在我将深入介绍构建应用程序所遵循的三个(是的,只有3个!)步骤:

  1. 数据源
  2. 创建知识库
  3. 调用知识库

该教程的所有代码和文档都可在GitHub上获得[GitHub]。

第1步:数据源

我选择了[[Amazon Simple Storage Service (Amazon S3)]]作为我的单一数据源,我将从各种来源(在本例中是世界各地城市的维基百科页面)汇总数据。我在与即将创建的知识库相同的区域(us-east-1)中创建了一个Amazon S3桶,然后以PDF格式上传了维基百科页面。

[允许的文档文件格式]包括.txt、.md、.html、.doc/.docx、.csv、.xls/.xlsx、.pdf。每个文件大小不能超过50MB的配额。


包含维基百科页面的S3桶

第2步:创建知识库

然后我[在Amazon Bedrock中创建了一个知识库],用于摄取上一步创建的数据。我在与数据源(us-east-1)相同的区域创建了知识库。


创建知识库

作为数据源,我链接了在第1步中创建的[Amazon S3桶]。


为知识库设置数据源

我很高兴在学习RAG的旅程开始时找到了[[Vector Embeddings and RAG Demystified: Leveraging Amazon Bedrock, Aurora, and LangChain - Part 1]]这篇文章。该文章以一种有助于加深我的理解的方式解释了向量嵌入的概念及其对RAG的重要性。向量嵌入是将内容(如单词、句子或图像)映射到机器可以处理和理解的多维向量空间中的数值表示形式。

在知识库中使用数据源(本例中是第1步创建的S3桶)中的城市探索者数据之前,需要将数据转换为嵌入向量。为此,我(和你:))需要一个[嵌入模型]。我不会在这里详细介绍嵌入技术,但一些流行的嵌入技术包括Word2Vec (用于单词)、Doc2Vec (用于文档)和图像嵌入(用于图像)。选择合适的嵌入模型取决于使用案例,而来自Hugging Face的[MTEB排行榜]是在寻找支持数据以帮助选择最佳模型时的绝佳指南。

因此,接下来我选择了嵌入模型,并配置了向量存储,选择了[Amazon OpenSearch Serverless]作为我的向量存储,用于保存文本嵌入向量,然后创建了我的知识库。

[在将模型指定为嵌入模型之前,请确保首先请求访问权限]。您需要访问将在知识库中引用的所有模型。


嵌入模型和向量存储

同步:),与知识库同步数据源是一个非常重要的后续步骤!值得一提的是,这是我特别喜欢知识库的一个功能。在实验知识库的早期阶段,我经常更改数据源中的数据,我喜欢这样一个事实,即无需重新训练任何模型就可以更改数据源,我只需要重新同步即可。这与我在本文开头概述的选择知识库的第二个原因相一致。

同步

同步完成后,我可以在控制台中测试知识库,[ Claude 3 Sonnet]是我用来生成响应的LLM。

[每次向数据源的S3桶中添加、修改或删除文件时,您都必须同步数据源,以便将其重新索引到知识库]。


测试知识库

第3步:调用知识库

很快就轮到我编写代码来完成城市探索者应用程序的构建了。这是我的[[Amazon Lambda]]函数作为API,用于调用知识库的 [[RetrieveandGenerate]]API。

import os
import boto3
import random
import string
boto3_session = boto3.session.Session()
region = boto3_session.region_name
# create a boto3 bedrock client
bedrock_agent_runtime_client = boto3.client('bedrock-agent-runtime')
# get knowledge base id from environment variable
kb_id = os.environ.get("KNOWLEDGE_BASE_ID")
print (kb_id)
# declare model id for calling RetrieveAndGenerate API
model_id = "anthropic.claude-instant-v1"
model_arn = f'arn:aws:bedrock:{region}::foundation-model/{model_id}'
def retrieveAndGenerate(input, kbId, model_arn, sessionId):
#print(input, kbId, model_arn, sessionId)
if sessionId != "":
return bedrock_agent_runtime_client.retrieve_and_generate(
input={
'text': input
},
retrieveAndGenerateConfiguration={
'type': 'KNOWLEDGE_BASE',
'knowledgeBaseConfiguration': {
'knowledgeBaseId': kbId,
'modelArn': model_arn
}
},
sessionId=sessionId
)
else:
return bedrock_agent_runtime_client.retrieve_and_generate(
input={
'text': input
},
retrieveAndGenerateConfiguration={
'type': 'KNOWLEDGE_BASE',
'knowledgeBaseConfiguration': {
'knowledgeBaseId': kbId,
'modelArn': model_arn
}
}
)

我使用[Streamlit]测试了我的城市探索者应用程序,使用以下命令调用它:

python -m streamlit run cityexplorer.py


城市探索者应用程序

这是由LLM返回的JSON响应:

{“question”: “which city has an eiffel tower”, “sessionId”: ““} {‘statusCode’: 200, ‘body’: {‘question’: ‘which city has an eiffel tower’, ‘answer’: ‘Paris, France has an Eiffel Tower.’, ‘sessionId’: ‘7954e8a2-9510-48b5-9d39-037d1d563eee’}}

{“question”: “what else is interesting in Paris”, “sessionId”: “7954e8a2-9510-48b5-9d39-037d1d563eee”} {‘statusCode’: 200, ‘body’: {‘question’: ‘what else is interesting in Paris’, ‘answer’: ‘Some other interesting things to do in Paris besides the Eiffel Tower include visiting the Louvre museum, Notre Dame Cathedral, Arc de Triomphe, Champs-Elysées, and Sainte-Chapelle.’, ‘sessionId’: ‘7954e8a2-9510-48b5-9d39-037d1d563eee’}}

想了解更多信息并开始构建自己的智能应用程序,请参考:

  1. [Amazon Bedrock代码示例] - 我们不断增加的跨模型和编程语言的示例列表。
  2. [Generative AI Space]这里的community.aws有一个精选的文章列表,全部围绕Amazon Bedrock和生成式AI。
  3. [知识库现在支持Amazon Aurora PostgreSQL和Cohere嵌入模型]
  4. [Vector Embeddings and RAG Demystified: Leveraging Amazon Bedrock, Aurora, and LangChain - Part 1]

我很高兴能构建这个应用程序,我学到了很多东西。请在[Bedrock示例GitHub仓库]中找到代码,了解更多信息并使用Amazon Bedrock的知识库构建自己的智能应用程序。我期待听到你构建的内容,欢迎在评论中告诉我!

本文中的任何观点都是作者个人观点,可能与亚马逊云科技的观点不一致。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
网友曝大S闪婚具俊晔真相:具说有9400万存款,大S误认为是人民币

网友曝大S闪婚具俊晔真相:具说有9400万存款,大S误认为是人民币

小咪侃娱圈
2024-06-16 11:13:35
“做爱,最忌讳这3个字。”

“做爱,最忌讳这3个字。”

程一
2024-06-12 21:35:24
"我做了8年小三,想告诉你什么样的原配惹不得"|真实故事

"我做了8年小三,想告诉你什么样的原配惹不得"|真实故事

以绝望挥剑
2024-04-21 20:42:38
中国产战机坠毁,英国巨头庆祝,印媒等着看笑话:刚签订出口大单

中国产战机坠毁,英国巨头庆祝,印媒等着看笑话:刚签订出口大单

东方点兵
2024-06-18 17:56:06
18岁黄多多性感私照曝光,评论区骂声一片:黄磊,你养的什么女儿!

18岁黄多多性感私照曝光,评论区骂声一片:黄磊,你养的什么女儿!

二胡的岁月如歌
2024-06-18 18:49:21
养老金上调3%,涨幅比去年下调20%,为什么?

养老金上调3%,涨幅比去年下调20%,为什么?

匀枫财技大兜底
2024-06-18 07:06:40
《墨雨云间》:看到薛昭成为驸马,才知婉宁为质时受了多大的屈辱

《墨雨云间》:看到薛昭成为驸马,才知婉宁为质时受了多大的屈辱

正义凛然的小西瓜
2024-06-17 23:57:39
有一种痛苦叫选了“一梯两户”,卖不出也不想住,彻底成为不动产

有一种痛苦叫选了“一梯两户”,卖不出也不想住,彻底成为不动产

平说财经
2024-06-18 16:19:37
涉嫌严重违纪违法,重庆两名干部接受审查调查

涉嫌严重违纪违法,重庆两名干部接受审查调查

鲁中晨报
2024-06-18 14:43:03
最后期限到了!中方海警新规已生效,菲总长喊话菲渔民:继续捕鱼

最后期限到了!中方海警新规已生效,菲总长喊话菲渔民:继续捕鱼

兵说
2024-06-18 23:15:29
天克!郭艾伦解说绿军:领先20分算个屁啊,但21分算!朱芳雨脸都绿了

天克!郭艾伦解说绿军:领先20分算个屁啊,但21分算!朱芳雨脸都绿了

818体育
2024-06-18 16:11:20
罗冠聪被悬赏及撤销护照后再遭暴击,港府决不容忍

罗冠聪被悬赏及撤销护照后再遭暴击,港府决不容忍

阿离家居
2024-06-17 23:14:12
《玫瑰的故事》播出一半后才发现,刘亦菲根本不是天选的“玫瑰”

《玫瑰的故事》播出一半后才发现,刘亦菲根本不是天选的“玫瑰”

兰子记
2024-06-15 20:36:41
上海交大教授殷承良:车企想要活下去,千万不能只打价格战!最多三年中国市场将彻底洗牌,可能只剩下几家

上海交大教授殷承良:车企想要活下去,千万不能只打价格战!最多三年中国市场将彻底洗牌,可能只剩下几家

和讯网
2024-06-17 17:25:01
海港卫冕半程冠军!队史第一次,7成概率最终夺冠,60天后决战

海港卫冕半程冠军!队史第一次,7成概率最终夺冠,60天后决战

奥拜尔
2024-06-18 21:40:43
养老金上调3%:给你公式算算你能涨多少,呼声:给企业老人多涨点

养老金上调3%:给你公式算算你能涨多少,呼声:给企业老人多涨点

大风文字
2024-06-17 18:46:14
4年2.24亿,续约太阳!钱我要冠军我也要,连杜兰特都被你征服了

4年2.24亿,续约太阳!钱我要冠军我也要,连杜兰特都被你征服了

林子说事
2024-06-18 22:31:49
哈佛大学研究发现:能活过90岁的人,有29大特征

哈佛大学研究发现:能活过90岁的人,有29大特征

我爱大河北
2024-05-29 10:03:24
赖清德在黄埔妄言“台独” 孙中山会怎么骂他?丨湾区望海峡

赖清德在黄埔妄言“台独” 孙中山会怎么骂他?丨湾区望海峡

直新闻
2024-06-17 23:18:10
另一个全红婵?原来我们都错了,复旦数院教授谈姜萍太不简单!

另一个全红婵?原来我们都错了,复旦数院教授谈姜萍太不简单!

辉哥说动漫
2024-06-18 22:43:45
2024-06-19 00:30:44
大A小i2024
大A小i2024
小小AI爱好者
101文章数 0关注度
往期回顾 全部

科技要闻

第一批小米车主,已经开始卖车了

头条要闻

媒体:回暖的中澳关系就是一面镜子 照出欧盟的愚蠢

头条要闻

媒体:回暖的中澳关系就是一面镜子 照出欧盟的愚蠢

体育要闻

对于凯尔特人来说 谁是MVP根本不重要

娱乐要闻

被曝新恋情,张碧晨王琳凯发声辟谣

财经要闻

官方:税务部门没有倒查30年的安排

汽车要闻

全球最低价 现代IONIQ 5N预售价39.88万

态度原创

亲子
房产
本地
旅游
公开课

亲子要闻

假如把感冒喝药变成颁奖典礼……

房产要闻

净吸纳量连续两年TOP3!这座海口顶级写字楼,用实力上大分!

本地新闻

我和我的家乡|在鞍山的每一步都有新发现

旅游要闻

直航加免签,利好中国—古巴旅游往来

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版