使用streamlit和chatgpt制作数据交互地图

点击Streamlit立即体验在线地图,如果碰到 app “休眠”的情况可以多点击“唤醒”。

最近 ChatGPT 大受欢迎。通过将网页地址内容发给 ChatGPT,它能生成建筑、景观或室内项目的项目特点,可以帮我们快速了解项目的情况。

例如,我们向 ChatGPT-4 咨询了谷德网站上的一个建筑项目——M 园区,上海 / AIM 恺慕建筑设计的相关内容:

询问ChatGPT

ChatGPT 尝试调用网页浏览插件,但不久后返回了一个错误信息:

这是因为谷德网站做了反爬措施,不能直接浏览到信息。

所以,我们使用 ChatGPT-4 中的插件WebPilot来获取信息:

使用WebPilot

不过这样也存在一些不便,我们一次只能获取一个网站上项目的内容,太慢了。

所以我通过调用 Openai 的 API 接口实现了批量总结,使用的是 ChatGPT3.5-Turbo 版本(新版本的 API 太贵了所以才使用的 3.5),我们看看同样的项目返回的项目特点有什么差别:

这两个模型都指出了 M 园区的特点,那就是南北的“反差”和“融合”,完全符合我们的需求。

不仅如此,我还通过 ChatGPT 将项目的名称、设计公司、关键词、景观设计团队、设计师/设计团队、设计时间/开始时间、完成年份、占地面积(平方米)、建筑面积(平方米)、城市、项目地址、封面总结成 json 格式的文件。

M 园区的详细情况(下图):

对比原网页页尾内容(下图),可以看到除了业主单位出错之外,其他内容都是正确的。

原网页页尾内容 --- 来源于 https://www.gooood.cn/m-campus-china-by-aim.htm?lang=cn

仔细看可以发现设计时间/开始年份:2015 年并不在上图中,而是在正文里(下图),ChatGPT 从“2015 年我们受邀设计一个公司总部:M 园区。”提炼出了设计时间。

正文中的设计时间 --- 来源于 https://www.gooood.cn/m-campus-china-by-aim.htm?lang=cn

如果你有过在网页上采集数据的经验就应该能发现,ChatGPT 帮我们解决了一个非常重要的难题:从非结构数据中获取结构化内容。

意思是,在采集网页数据时,我们不需要像往常一样,发现网页中的规律、或者用正则匹配来获取数据,比如标题一般在<h1>标签中,而是将内容发送给 ChatGPT 去提取数据。

amazing

获取项目的定位点

因为要制作地图,我们得将获取到的地址转为坐标点,这部分使用百度或者高德的地理编码服务。

我用的是百度的地理编码服务,文档地址为:https://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding

我们回头看上文提到的项目:M 园区。文中给的地址是:项目地点:中国上海,没有在文字中提到场地,只有一张场地位置示意图:

场地位置示意 --- 来源于 https://www.gooood.cn/m-campus-china-by-aim.htm?lang=cn

我们的 ChatGPT3.5 模型不能提取足够详细的地址,所以在地理编码服务的时候,位置被标记到了错误的地点。

这是非常头疼的事情,可能需要大量的人工校正,所以如果获取的项目地址不够详细,那么坐标点则不准确。

制作地图

为了能找到一个免费制作地图的方法,我花了很多时间去查资料。

Google Maps APIMapbox使用人最多,但是收费,并且前者国内不支持访问。ArcGIS也提供地图发布服务,当然也是收费的。

在国内,百度地图 API高德(AMap)地图 API通常采用“免费+收费”的模式,这意味着他们提供了基础的免费服务,但对于超出免费额度的使用或高级功能可能会收取费用。

因为我熟悉 Python,Python 中有 leafmap 和 folium 两个流行的开源库,可以制作地图,但是光有地图还不能,我还得做成网页分析出来。

于是,我找到了streamlit包,利用 Python 脚本,就可以创建一个交互式网页,并且网页可以免费托管在 streamlit cloud 中,不需要自己花服务器的钱。

Streamlit 是一个强大的工具,它允许 Python 开发者快速构建网页应用,特别适合那些熟悉 Python 但不太了解网页编程语言的用户。

我将这个地图的储存库发布在了 Github:

Github status

以下是项目的截图,点击小标题可以跳转到网页

(1) 🏠 导航页

这是项目的主页,提供了项目说明。

Homepage

(2)💻 地图页面

地图定位页面

地图详情页面

更多说明可以访问仓库查看。

如果你觉得本文有用,麻烦点一个免费的赞。

写在最后

数据更新时间为 2023 年 8 月。

本项目数据收集于网络,方便自用,仅供交流学习!如有侵权,请联系删除!


使用streamlit和chatgpt制作数据交互地图
https://blog.renhai.online/archives/map-of-chinese-landscape-architecture
作者
Renhai
发布于
2023年12月08日
更新于
2024年06月16日
许可协议