编程语言 到底什么是ChatGPT的函数调用function calling function calling 这个词一听还以为是 GPT 帮我去调用函数,实际上并不是这样。 使用场景 我们在和 GPT 聊天的过程中,可能会涉及一些特定的问题,比如在聊天时,我突然问 GPT :北京今天天气怎么样? 很显然 GPT 是不知道实时的天气的,那怎么办呢,用 function calling 可以实现,我们可以提前定义好一个函数,这个函数有一个城市参数,函数内部会去调用 API 查询这个城市当前的天气情况。 请注意:这个调用天气的接口是我们自己提前写好的, yuziyue 19 Jun 2024 · 3 min read
大数据开发 OpenAI ChatGPT总结上下 一. 总结聊天标题 * 在用户发起一次聊天后总结对话标题 { "messages": [ { "role": "user", "content": "Python中,两个字典如何合并到一个字典里面" }, { "role": "assistant", "content": "在Python中,你可以使用`update()`。。。这两种方法都可以将两个字典合并到一个字典中。" }, { "role": "user", "content": "使用6到7个字直接返回这句话的简要主题,不要解释、不要标点、不要语气词、不要多余文本,不要加粗,如果没有主题,请直接返回“闲聊”" } ], "stream": true, yuziyue 11 Jun 2024 · 6 min read
大数据开发 Gradio如何获取客户端信息 原始app.py应用 我编写了一个简单Gradio应用,代码如下(server_app.py): import gradio as gr def gradio_submit_fn(arg1, arg2): return f"arg1: {arg1}, arg2:{arg2}" with gr.Blocks() as gradio_app: samples yuziyue 31 May 2024 · 4 min read
大数据开发 Airflow删除taskinstance实例 Airflow删除taskinstance实例,当Airflow运行很久后(或者你有分钟级别的dag),你会发现无法打开 task instances页面,那是因为 task instances 数量太多了,需要手动删除过去无用的task instances,Airflow提供了api来实现,将其加入定时任务每天删除就行,最后不要手动操作数据库。 yuziyue 2 Apr 2024 · 1 min read
大数据开发 openai API 接口 ChatGPT 提示词优化 openai API 接口 ChatGPT 提示词优化,给出更清晰更具体的提示词,使用分隔符delimiters,避免用户输入的变量中包含了不可预测的提示词,所以最好将用户的输入用分隔符包裹着,返回结构化数据:html、 Markdown、 json 等。 yuziyue 22 Nov 2023 · 5 min read
大数据开发 NVIDIA显卡驱动、cuda、cudnn概念梳理 一. 显卡驱动 很简单,显卡驱动是告诉系统如何调用显卡这个硬件。通常指NVIDIA Driver,一个驱动软件。下载地址:https://www.nvidia.com/Download/index.aspx CUDA(见后文) 有两个主要的 API,分别是runtime API 和 driver API。 yuziyue 22 Oct 2023 · 7 min read
大数据开发 Windows上CUDA与CUDNN的安装教程 关于什么是 nvidia驱动、cuda、cudnn ,它们直接的关系请查看另外一篇文章:https://yuchaoshui.com/449585a/ 。 一. 查看版本信息 在第一次安装CUDA之前,先看一下目前电脑里都存在哪几个NVIDIA软件,这样即便后续要卸载CUDA,也能区分哪些是本来就存在的,不可卸载,哪些是后来安装的,可以卸载。 在NVIDIA显卡控制面板查看显卡信息 * NVIDIA显卡型号RTX 4070 Ti * NVIDIA显卡驱动版本536.40 * cuda driver 版本 12.2.79 yuziyue 22 Oct 2023 · 4 min read
大数据开发 Airflow跨dag依赖的特殊情况 在使用跨dag依赖task的时候,通常情况下是依赖的dag的execution_date小于当前dag的execution_date的,如果依赖的task是在将来执行的(execution_date大于当前dag的execution_date),这时候该怎么办呢?假设 dag1 是每天 0:30 执行,比如 execution_date 为 2023-08-18 00:30:00 yuziyue 18 Aug 2023 · 2 min read
大数据开发 Flink 如何使用广播变量(批处理) Flink 如何使用广播变量(批处理) 一. 广播变量介绍 广播变量用于批计算。Flink支持广播变量,可以将数据广播到TaskManager上,数据存储在内存中,这样可以减缓大量的shuffle操作,使用广播变量同时也可以节省内存。 某个算子使用广播变量后,该算子内部的任何函数都可以使用这个广播变量。 yuziyue 8 Aug 2023 · 2 min read
大数据开发 Flink 如何实现双流 join 连接 Flink 如何实现双流 join 连接 一. join() join() 即inner join,算子提供的语义为"Window join",即按照指定字段和(滚动/滑动/会话)窗口进行 inner join,支持处理时间和事件时间两种时间类型。left join 可以使用 coGroup 实现。二. coGroup() 使用 coGroup,不管能不能匹配上,都会把原始数据传递,下面的示例使用 coGroup 实现了 left join 的功能。 yuziyue 8 Aug 2023 · 5 min read
大数据开发 Spark task多线程资源争抢问题 Spark task多线程资源争抢问题 在多个task同时读取 object 单例的内部非线程安全的对象时会报错,示例代码如下: 这个对象是线程不安全的,但是在task里面的多个线程会共用这个对象所有可能会有问题 val sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") 单个 partition 顺序执行的不会出现争抢问题 yuziyue 8 Aug 2023 · 1 min read
大数据开发 Flink 自定义 aggregate 总结 reduce和aggregate都是增量聚合,它们的区别如下 AggregateFunction 输入输出元素类型可以不相同。 ReduceFunction 输入输出元素类型相同 AggregateFunction它有三个参数:输入类型(IN),累加器类型(ACC)和输出类型(OUT),需要实现4个方法,所有的方法都是在同一个组里面:ACC merge(ACC a, ACC b); 合并两个累加器 yuziyue 6 Aug 2023 · 3 min read
大数据开发 Anaconda 的安装与使用指南 Anaconda 的安装与使用指南 anaconda miniconda conda 这三者有什么区别,他们之间是什么关系呢?conda 是一个包和环境管理工具,被打包在了 anaconda 和 miniconda 里面,所以安装完 anaconda 和 miniconda 后直接使用 conda 命令行就行了。conda 命令默认是没有补全功能的,安装 conda-bash-completion 让 conda 命令实现补全功能。 yuziyue 4 Aug 2023 · 6 min read
大数据开发 Hive Group By 的实现原理总结 Hive Group By 的实现原理总结 Group By是一种常用的操作,用于对数据进行分组并对每个分组进行聚合计算。hive 默认设置了hive.map.aggr=true,会在mapper端先group by一次,最后把结果merge起来,为了减少reducer处理的数据量。在 map 端,将group by的字段作为输出的key,存入环形缓冲区 yuziyue 4 Aug 2023 · 2 min read
大数据开发 Hive ORC 文件存储格式详解 ORC文件是自描述的,它的元数据使用Protocol Buffers序列化,并且文件中的数据尽可能的压缩以降低存储空间的消耗,目前也被Spark SQL、Presto等查询引擎支持,但是Impala对于ORC目前没有支持,仍然使用Parquet作为主要的列式存储格式。2015年ORC项目被Apache项目基金会提升为Apache顶级项目。 yuziyue 2 Aug 2023 · 13 min read
大数据开发 MySQL 流程控制函数总结 MySQL 流程控制函数总结 这两种方式都支持多个WHEN value THEN result 的形式,当有多个时: 按顺序从前往后判断,当有一个WHEN为真时,后面的WHEN都不执行了,直接结束该CASE语句,到END除结束。继续判断下一行的输入。else 不写时,不满足任何条件时返回 null yuziyue 31 Jul 2023 · 1 min read
大数据开发 flink 如何自定义 source 数据源 Flink 如何自定义 Source 数据源 Apache Flink 提供了自定义 Source 的能力,使用户可以根据自己的需求实现数据源的逻辑。自定义Source是通过实现 Flink 的 SourceFunction接口来实现的。一. 单并行度DataSource 单并行度source实现SourceFunction,并且单并行度source不允许使用setParallelism方式设置并行度。创建MySource 如果 run 方法不会退出,那么就是一个无限的数据流 yuziyue 31 Jul 2023 · 2 min read
大数据开发 flink window窗口概念与使用总结 Flink 之 window 窗口概念与使用 当调用window或windowAll方法时,所传入的参数就是Window Assigner(窗口分配器),其作用是决定划分什么样类型的窗口,即以何种条件划分窗口,输入的数据以何种方式分配到窗口内,窗口如何触发等等。针对计数窗口来说,主要使用CountWindowAll、CountWindow,直接传入一个window的数据条数据。 yuziyue 31 Jul 2023 · 10 min read