实战案例:结合大模型与爬虫技术实现12306智能查票系统

大语言模型,例如 GPT-4,拥有强大的知识储备和语言理解能力,能够进行流畅的对话、创作精彩的故事,甚至编写代码。然而,它们也面临着一些难以克服的困境,就像一个空有知识却无法行动的巨人

  • 信息滞后: 知识库的更新速度有限,无法获取最新的实时信息,例如天气、股价等。这意味着它可能告诉你昨天的天气,或者一个小时前的股价,而这些信息可能已经过时了。就像一本印刷好的百科全书,内容固定,无法实时更新。
  • 缺乏行动力: 就像被困在虚拟世界中的大脑,只能提供信息,无法直接与现实世界互动。例如,它可以告诉你如何煮咖啡,但无法帮你磨咖啡豆、煮咖啡、甚至递给你一杯咖啡。 这就好比一位博学的教授,可以讲解复杂的理论知识,但却无法在实验室进行实际操作

大模型为什么需要连接外部世界

其实大模型也不是万能的,它有三大缺陷:

  • 训练数据不可能涵盖所有信息。垂直、非公开数据必有欠缺。
  • 不知道最新信息。大模型的训练周期很长,且更新一次耗资巨大。所以它不可能实时训练。GPT-3.5 的知识截至 2022 年 1 月,GPT-4 是 2023 年 4 月。
  • 没有「真逻辑」。它表现出的逻辑、推理,是训练文本的统计规律,而不是真正的逻辑。也就是说,它的结果都是有一定不确定性的,这对于需要精确和确定结果的领域,如数学等,是灾难性的,基本是不可用的。

Function Calling 的特点

Function Calling 是一种让 Chat Completion 模型调用外部函数的能力,可以让模型不仅仅根据自身的数据库知识进行回答,而是可以额外挂载一个函数库,然后根据用户提问去函数库检索,按照实际需求调用外部函数并获取函数运行结果,再基于函数运行结果进行回答。

Function Calling 可以被应用于各种场景,例如:

  • 调用天气 API 获取实时天气信息: 不再局限于提供过时的天气预报,而是可以告诉你此时此刻的天气状况,就像你打开手机上的天气应用一样。
  • 调用订票网站 API 预订机票: 不再只是告诉你如何订票,而是可以直接帮你完成订票操作,就像一个专业的旅行代理一样。
  • 调用日历 API 安排会议: 不再只是提醒你会议时间,而是可以直接帮你安排会议,并发送邀请给参会者,就像一个高效的私人助理一样。
  • 调用数据库查询信息: 可以访问和查询数据库中的信息,例如产品信息、用户信息等,就像一个专业的数据库管理员一样。
  • 调用代码执行程序: 可以执行代码来完成各种任务,例如数据分析、图像处理等,就像一个经验丰富的程序员一样。

但是我们完成一些需求的时候,没有官方的API,那怎么办?这时候就是爬虫登场的时候,我们可不可以用爬虫来找到接口,然后让大模型去调用呢?

这样一来,大模型的能力就提升了很多!!!我们以查票来举例,官方是没有这方面的API的,那么就只能靠爬虫来了

def check_tick(date, start, end):url = 'https://kyfw.12306.cn/otn/leftTicket/queryG?leftTicketDTO.train_date={}&leftTicketDTO.from_station={}&leftTicketDTO.to_station={}&purpose_codes=ADULT'.format(date, start, end)headers = {"Accept": "*/*","Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8","Cache-Control": "no-cache","Connection": "keep-alive","If-Modified-Since": "0","Pragma": "no-cache","Referer": "https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc","Sec-Fetch-Dest": "empty","Sec-Fetch-Mode": "cors","Sec-Fetch-Site": "same-origin","User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36","X-Requested-With": "XMLHttpRequest","sec-ch-ua": ""Chromium";v="128", "Not;A=Brand";v="24", "Google Chrome";v="128"","sec-ch-ua-mobile": "?0","sec-ch-ua-platform": ""macOS""}# 需要换成自己的cookies = {"_uab_collina": "","JSESSIONID": "","BIGipServerotn": ".50210.0000","BIGipServerpassport": ".50215.0000","guidesStatus": "","highContrastMode": "","cursorStatus": "","route": "","_jc_save_fromStation": "%u5317%u4EAC%2CBJP","_jc_save_toStation": "%u6210%u90FD%2CCDW","_jc_save_fromDate": "2024-09-21","_jc_save_toDate": "2024-09-21","_jc_save_wfdc_flag": "dc"}session = requests.session()res = session.get(url, headers=headers, cookies=cookies)data = res.json()# 这是一个列表result = data["data"]["result"]lis = []for index in result:index_list = index.replace('有', 'Yes').replace('无', 'No').split('|')# print(index_list)train_number = index_list[3]  # 车次if 'G' in train_number:time_1 = index_list[8]  # 出发时间time_2 = index_list[9]  # 到达时间prince_seat = index_list[25]  # 特等座first_class_seat = index_list[31]  # 一等座second_class = index_list[30]  # 二等座dit = {'车次': train_number,'出发时间': time_1,'到站时间': time_2,"是否可以预定": index_list[11],}lis.append(dit)else:dit = {'车次': train_number,'出发时间': time_1,'到站时间': time_2,"是否可以预定": index_list[11],}lis.append(dit)# print(lis)content = pd.DataFrame(lis)# print(content)return content

定义一个模型回复的方法

def get_completion(messages, model="gpt-3.5-turbo"):response = client.chat.completions.create(model=model,messages=messages,temperature=0,max_tokens=1024,tools=[{"type": "function","function": {"name": "check_tick","description": "给定日期查询有没有票","parameters": {"type": "object","properties": {"date": {"type": "string","description": "日期",},"start": {"type": "string",#"description": "出发站 北京是BJP",},"end": {"type": "string",#"description": "终点站 天津是TJP",}},}}},{"type": "function","function": {"name": "check_date","description": "返回当前的日期","parameters": {"type": "object","properties": {# "str": {#     "type": "string",#     "description": "返回今天的日期",# }}}}}])return response.choices[0].message

这样就可以让大模型去查票了,代码不是完整的代码,需要完整代码可以留言

大模型+爬虫 可以想象的空间还是比较大的

在这里插入图片描述

大模型&AI产品经理如何学习

求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方图片前往获取

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/54413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 之 安装软件、GCC编译器、Linux 操作系统基础

安装软件、GCC编译器、Linux 操作系统基础 学习任务: 安装 Vmware虚拟机、掌握Ubuntu 系统的使用认识 Ubuntu 操作系统的终端和 Shell掌握软件安装、文件系统、掌握磁盘管理与解压缩掌握 VIM 编辑器、Makefile 基本语法熟悉 Linux 常见指令操作 安装好开发软件&…

[Go语言快速上手]初识Go语言

目录 一、什么是Go语言 二、第一段Go程序 1、Go语言结构 注意 2、Go基础语法 关键字 运算符优先级 三、Go语言数据类型 示例 小结 一、什么是Go语言 Go语言,通常被称为Golang,是一种静态类型、编译型的计算机编程语言。它由Google的Robert Gr…

用HTML5+CSS+JavaScript庆祝国庆

用HTML5CSSJavaScript庆祝国庆 中华人民共和国的国庆日是每年的10月1日。 1949年10月1日,中华人民共和国中央人民政府成立,在首都北京天安门广场举行了开国大典,中央人民政府主席毛泽东庄严宣告中华人民共和国成立,并亲手升起了…

Vue3 中Ref的最佳实践

在vue3中如果我们需要获取一个响应式的变量,可以使用ref来定义一个变量。 const name ref( "" );name.value "test" 定义好后,就可以实现修改状态,更新UI的效果了。 在这个基础上,本文主要讨论跨组件时如何…

Discord:报错:A fatal Javascript error occured(解决办法)

按 Windows 键 R 并输入 %appdata% 选择 discord 文件夹并将其删除。 再次按 Windows 键 R 并输入 %LocalAppData% 选择 discord 文件夹并再次将其删除。 附加: 如果还不行,就通过官网下载吧,这个问题通过epic下载可能会有

Python并发编程挑战与解决方案

Python并发编程挑战与解决方案 并发编程是现代软件开发中的一项核心能力,它允许多个任务同时运行,提高程序的性能和响应速度。Python因其易用性和灵活性而广受欢迎,但其全局解释器锁(GIL)以及其他特性给并发编程带来了…

Docker面试-24年

1、Docker 是什么? Docker一个开源的应用容器引擎,是实现容器技术的一种工具,让开发者可以打包他们的应用以及环境到一个镜像中,可以快速的发布到任何流行的操作系统上。 2、Docker的三大核心是什么? 镜像:Docker的…

网络威胁情报技术的进步

网络威胁形势不断演变,必然导致防御者和攻击者之间持续展开军备竞赛。幸运的是,网络威胁情报 (CTI) 技术的进步为安全专业人员提供了强大的工具,使他们能够保持领先地位。 本指南深入探讨了 CTI 的最新进展,让您了解这些技术如何…

【学习笔记】手写一个简单的 Spring MVC

目录 一、什么是Spring MVC ? Spring 和 Spring MVC 的区别? Spring MVC 的运行流程? 二、实现步骤 1. DispatcherServlet 1. 创建一个中央分发器 拦截所有请求 测试 2. 接管 IOC 容器 1. 创建配置文件 2. 修改 web.xml 配置文件 …

1分钟搞懂K8S中的NodeSelector

文章目录 NodeSelector是什么?为什么使用NodeSelector?怎么用NodeSelector?POD配置示例yaml配置示例 如何知道K8S上面有哪些节点,每个节点都有什么信息呢?1. 使用kubectl命令行工具查看所有节点及其标签2. 使用kubectl…

算法【Java】—— 二叉树的深搜

深搜 深搜简单来说就是一直递归到底,然后返回,以二叉树为例,就是从根节点出发一直搜索到叶子节点,然后想上返回。 这里简单说明一下:深搜的英文缩写是 dfs,下面定义深搜函数名我直接命名为 dfs 实战演练 …

内存占用估算方法

优质博文:IT-BLOG-CN 通过掌握每种数据类型的大小,就可以更准确地预测对象和数据的内存消耗。 一、基础数据类型 Java基础数据类型结构,在64位系统开启指针压缩情况下的内存占用字节数: booleanbytecharshortintlongfloatdoub…

PYTHON实现HTTP request的一些有用的函数

前言 我们知道,当需要设计一个程序和服务器进行交互时,往往会用到HTTP的request,即服务器有一个对外接口REST API,因此当向服务器发送符合格式要求的HTTP request时,服务器会给出响应,甚至执行一些任务。如…

码随想录算法训练营第62天|卡码网:97. 小明逛公园、127. 骑士的攻击

1. 卡码网 97. 小明逛公园 题目链接:https://kamacoder.com/problempage.php?pid1155 文章链接:https://www.programmercarl.com/kamacoder/0097.小明逛公园.html 思路: 使用Floyd 算法,目的是解决多源最短路问题,即 …

如何编写一个优雅的commit message

在Git中,git commit 命令扮演着至关重要的角色。它的主要作用是将暂存区(staging area)里的改动内容提交到本地仓库(repository)中,形成一个新的版本或提交(commit)。这个过程是 Git…

基于Node2Vec的图嵌入实现过程

目录 一、引言二、Node2Vec(原理)2.1 随机游走(Random Walk)2.2 嵌入学习2.3 Node2Vec 的优势 三、使用 Node2Vec 进行图嵌入(实践)3.1 读取和转换 JSON 文件为 Graph 对象3.2 训练 Node2Vec 模型3.3 二维嵌…

10款好用的开源 HarmonyOS 工具库

大家好,我是 V 哥,今天给大家分享10款好用的 HarmonyOS的工具库,在开发鸿蒙应用时可以用下,好用的工具可以简化代码,让你写出优雅的应用来。废话不多说,马上开整。 1. efTool efTool是一个功能丰富且易用…

Kotlin:2.0.20 的新特性

一、概述 Kotlin 2.0.20英文版官方文档 Kotlin 2.0.20发布了!这个版本包括对Kotlin 2.0.0的性能改进和bug修复,我们在其中宣布Kotlin K2编译器为Stable。以下是本次发布的一些亮点: 数据类复制函数将具有与构造函数相同的可见性来自默认目标层次结构的源集的静态访…

Python批量下载PPT模块并实现自动解压

日常工作中,我们总是找不到合适的PPT模板而烦恼。即使有免费的网站可以下载,但是一个一个地去下载,然后再批量解压进行查看也非常的麻烦,有没有更好方法呢? 今天,我们利用Python来爬取一个网站上的PPT&…

HTML+CSS基础用法介绍五

目录: 结构伪类选择器盒子模型-边框线盒子模型-内边距盒子模型-解决盒子被撑大盒子模型-外边距与版心居中小知识:清除浏览器中所有标签的默认样式内容溢出控制显示方式盒子模型-圆角 🐎正片开始 结构伪类选择器 什么是结构伪类选择器&…