自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

谢白羽

C/C++后端开发,目前从事游戏后端开发,数据转移存储等方面

  • 博客(401)
  • 收藏
  • 关注

原创 协程的学习二:C风格写的协程(以云凤协程为例),顺便记录ucontex使用

文章目录一、测试代码讲解1)main函数主流程2)main测试代码示例二、协程头文件coroutine.h1)代码作用讲解①协程执行函数②创建协程调度器③关闭协程调度器④创建协程⑤协程堆栈恢复⑥判断协程yield出去后是否准备resume回来⑦coroutine_running(struct schedule *)不知道什么作用⑧协程让出CPU占用(yield)2)代码实体三、协程函数实现文件coroutine.c0)备注背景知识1)错误码及结构体①struct args②struct coroutine③

2021-11-20 20:50:56 1383

原创 C/C++遇到的坑(持续更新,每日更新两篇,11/24)

文章目录1.基础问题1.1 运算符优先级2.编译问题3.库函数问题4.文件处理问题5.类和对象问题6.内存使用问题7.多线程问题8.性能问题9.其他问题9.1 中文截断成乱码问题摘录自《从缺陷中学习C/C++》1.基础问题1.1 运算符优先级//to get 2*n+1int func(int n){ return n<<1 + 1;}后果上述代码中的函数func本意是期望计算2n+1,但程序实际运行结果是4n。分析这段代码使用左移1位来代替乘以2的运

2021-09-09 01:07:42 407

原创 lua的坑(持续更新,每日更新两篇,9/15),更新到17个

1.把数值转成16进制的格式2.去掉商里的小数3.string.format()保留三位小数4.向上/下取整,四舍五入5.string字符串拆成表6.敏感词过滤7.同名传参/同名字段相关bug1)2个同名传参, 第1个传参无效2)2个同名字段, 第2个字段无效8.表作为传参: 浅拷贝的相关bug1)表作为参数传递时, 是浅拷贝,原表也会改变2)但是, 改变arg表自身, tab不变9.windwos安装lua10.通配符,正则表达式11.用正则实现trim()12.字符串截取s

2021-08-27 00:54:53 536

原创 大模型学习笔记八:手撕AutoGPT

③开始主循环推理,若输出结果为FINISH就break,否则就执行选择出来的action,并更新短识记忆。①初始化常识和短识的记忆(短识记忆初始化为空,常识是连接向量数据库)④若大于最大思考步数,则输出未能完成任务。

2024-04-03 19:00:56 564

原创 大模型学习笔记七:LLM应用

1)管理一个 LLM 应用的全生命周期,需要用到以下工具:1、调试 Prompt 的 Playground2、测试/验证系统的相关指标3、数据集管理4、各种指标监控与统计:访问量、响应时长、Token费等等2)根据自己的技术栈,选择:1、LangFuse:开源平台,支持 LangChain 和原生 OpenAI API2、LangSmith: LangChain 的原始管理平台3、Prompt Flow:开源平台,支持 Semantic Kernel。

2024-03-20 18:53:19 979

原创 AI大模型额外学习一:斯坦福AI西部世界小镇笔记(包括部署和源码分析)

①背景介绍②总体逻辑让小镇的NPC自由交流、开party、生活有条不紊③总结:Ai会感知周边环境,并将视野里发生的事件记录下来,加入自己的记忆流。之后,不论是Ai计划要做的事,还是对外界的反应,都会受到这个记忆的影响,并依靠ChatGPT进行决策,最后决策的事件也会加入记忆流,形成新的记忆。让NPC具备记忆系统,并依靠大语言模型来帮助NPC做出行动决策①项目有后端服务器backend_server和前端服务器frontend_server②storage会保存程序运行的记录信息。

2024-03-15 19:15:57 1047

原创 大模型学习笔记六:Semantic Kernel

定义介绍1、Semantic Kernel 是微软研发的一个开源的,面向大模型的开发框架(SDK);2、它支持你用不同开发语言(C#/Python/Java)基于 OpenAI API/Azure OpenAI API/Huggingface 开发大模型应用;3、它封装了一系列开箱即用的工具,包括:提示词模板、链式调用、规划能力等。SDK(补充说明)SDK:Software Development Kit,它是一组软件工具和资源的集合,旨在帮助开发者创建、测试、部署和维护应用程序或软件。

2024-03-12 19:59:26 873

原创 大模型学习笔记五:RAG

1、LLM 的知识不是实时的2、LLM 可能不知道你私有的领域/业务知识搭建过程:1、文档加载,并按一定条件切割成片段2、将切割的文本片段灌入检索引擎3、封装检索接口4、构建调用流程:Query -> 检索 -> Prompt -> LLM -> 回复1、文档加载2、文档切分3、向量化4、灌入向量数据库。

2024-03-04 18:27:17 840

原创 大模型学习笔记四:LangChain开发框架解析

1、模型I/O封装LLMs:大语言模型Chat Models:一般基于LLMs,但按对话结构重新封装PromptTemple:提示词模板OutputParser:解析输出2、数据连接封装Document Loaders:各种格式文件的加载器Document transformers:对文档的常用操作,如:split,filter,translate,extract metadata,etcTextr Embedding Models:文本向量化表示,用于检索等操作。

2024-02-23 03:15:31 714

原创 大模型学习笔记三:Function Calling

官方文档:https://www.xfyun.cn/doc/spark/Web.html#_2-function-call%E8%AF%B4%E6%98%8E。1、只有 gpt-3.5-turbo-1106 和 gpt-4-1106-preview 可用本次课介绍的方法。2、gpt-3.5-turbo 是 gpt-3.5-turbo-1106 的别名。3、gpt-4 和 gpt-4-1106-preview 是两个不同的模型。3、延迟非常高(至少两次GPT-4生成,和一次Web API调用)

2024-02-22 14:25:02 1819

原创 大模型学习笔记二:prompt工程

OpenAI GPT 对 Markdown 格式友好。③纯OpenAI让系统简单好维护。Claude 对 XML 友好。②减少prompt能更加省钱。①自制代码能让问答更加可控。OpenAI 官方出了。教程,并提供了一些示例。

2024-02-09 20:48:44 1085

原创 大模型学习笔记一:大模型应开发基础(模型归类选型、安全因素选型、)

1)产品和大模型的区别(产品通过调用大模型来具备的能力)2)AGI定义概念:一切问题可以用AI解决3)大模型通俗原理根据上文,猜测下一个词4)大模型测试代码prompt = "今天我很"# prompt = "下班了,今天我很"# prompt = "放学了,今天我很"# prompt = "AGI 实现了,今天我很"

2024-01-25 20:10:29 418

原创 大模型面试题总结

一、大模型(LLMs)基础面二、大模型(LLMs)进阶面三、大模型(LLMs)微调面四、大模型(LLMs)langchain面1. 基于LLM+向量库的文档对话 基础面2. 基于LLM+向量库的文档对话 优化面3. LangChain的概念面试问题4.LangChain的一些模块提问5.LangChain的业务提问6.LangChain的问题解决五、LoRA、QLoRA、AdaLoRA篇六、Fine tune1)基础概念2)为什么需要 P-tuning v2?3)为什么需要 P-

2024-01-24 15:51:27 1200

原创 AI大模型预先学习笔记三:使用Assistants API快速搭建领域专属AI助手

介绍OpenAI的第一手发布者API文档,也就是相当于GPT的API①基本对话能力②手机电脑双端适配③随意选择风格④Retrieval 获取外部数据的能力,从文档获得的信息⑤Function call 可以调用外部函数的能力(注册给这个demo)

2024-01-16 12:51:33 745

原创 AI大模型预先学习笔记二:prompt提问大模型、langchain使用大模型框架、fine tune微调大模型

一、Prompt Engineering1)环境准备2)交互代码的参数备注3)交互代码二、LangChain(一个框架名字)1)LangChain核心介绍:I/O模块、数据链接模块、2)I/O模块(Prompts、Language models、Output parsers)3)数据链接模块(Data connection)三、Fine-tuning(微调)

2024-01-14 21:16:48 763

原创 AI大模型预先学习笔记一:transformer和fine tune技术介绍

2)positionnal Encoding:不仅要把每个字换成512个描述,而是还要关注每个字的位置(也就是关注词的主谓宾)①下面每个步骤都是自回归的过程(aotu-regressive):已输出内容的每个字作为输入,一起生成下一个字。(z序列是:z1、z2、z3、z4等,不一定必须是512维),每个z是512维坐标的向量,由512个坐标构成。②合起来就是:y1输出之后,y1和x序列一起作为输出,来生成y2;②再把这串x序列的输入字符串映射成z序列。①把一串输入的字符串拆分成x序列的结构。

2024-01-14 03:53:16 607

原创 大模型在游戏行业的应用分析

基于此,Deepmind 的 MARL 团队期望在大规模的智能体中,可以涌现出合作、对抗、交易等人类社会的行为。国内在策略生成领域,已知的有脱胎于王者荣耀绝悟团队,致力于打造有生命的 AI 的超参数科技,和探索如何在多智能体和多目标的场景下,使不同的智能体之间的行为模式能够互相协调和连接,产生出合理且有意义的故事情节和体验的 Rct AI 等。产品上,网易“逆水寒游戏 GPT”加持的高智能 AINPC 已发布内测,超参数科技“AI 社会”《活的长安城》发布了自己 Demo。例如 5 月米哈游新作。

2024-01-12 21:13:29 1316 3

原创 魔兽3.3.5仇恨列表模块解析

这段代码用于检查生物身上是否存在特定的光环效果。如果 aura 变量为正值,则要求目标生物必须拥有具有相同 ID 的光环效果;如果为负值,则要求目标生物必须没有具有相同 ID 的光环效果。这样的设计可用于执行与特定光环效果相关的条件检查。③SelectTargetMethod : 选择目标的类型-例如最大仇恨往下递减找目标。④offset:点名往后偏移几位-例如点最大仇恨,往下偏移。①targetList:传出参数-获取的目标列表。⑦withTank:是否包含第一仇恨。MaxDistance 最大距离。

2024-01-08 12:03:20 598

原创 魔兽3.3.5版本AI模块代码拆分解析(魔兽3.3.5模块是状态机)

文章目录

2024-01-03 14:10:34 521

原创 魔兽3.3.5版本背包模块代码拆分解析(从之前的文章中拆分出来)

一、涉及到的文件二、先看成员变量(单个背包的存储数据)三、再看玩家背包和DB的交互1)逐行解析db表2)sql语句变更记录(记录一些sql语句对数据存储的影响)3)额外提一嘴物品在mysql的存储4)预编译背包的物品和db交互的sql语句四、解析成员函数1)构造函数2)析构函数3)实体添加到世界4)背包添加物品5)获得对应id的物品数量6)根据物品标签获得对应物品数量7)根据物品id获取对应背包内物品的槽位五、代码

2024-01-02 14:48:40 490

原创 UE-近战战斗系统学习笔记一

本项目用UE的5.1版本制作选择第三人称视角游戏,并输入项目名字创建本次项目不打算用UE自带的角色character,而是下载paragon但是由于这个仅仅支持在4.19到5.0版本的UE,所以需要从旧版本的UE迁移。

2023-12-21 01:33:44 425

原创 PHP学习笔记

但是如果php --ri swoole或php -m看不到swoole,可能是php.ini没配置上(可能安装了多个PHP)①echo默认输出到stdout,打印到页面上就是得response->end。使用FastCGI启动php-fpm这种形式,绑定9000端口。②编译安装到系统后,需要在php配置文件php.ini添加。①需要提前下载phpiz 5.0.3版本,安装phpiz。③不同进程不会共享全局变量,就是被global修饰的变量。用php --ri swoole查看扩展情况。

2023-12-14 10:07:18 115

转载 ubuntu 22.04 iptables 运行失败解决方法

ubuntu 22.04默认使用nftables作为防火墙,而非iptables。

2023-12-13 16:01:51 729

原创 skynet学习笔记(12/05未完待续)

(数量可配置),它们不断的从主消息列队中取出一个次级消息队列来,再从次级队列中取去一条消息,调用对应的服务的 callback 函数进行出来。为了调用公平,一次仅处理一条消息,而不是耗净所有消息(虽然那样的局部效率更高,因为减少了查询服务实体的次数,以及主消息队列进出的次数),这样可以保证没有服务会被饿死。③一个服务是用skynet_context作为服务的实例,一个唯一的handle的id作为唯一id识别服务(id即使在集群里面也是唯一)大到小:集群->skynet节点->服务。不为空的次级消息队列。

2023-12-05 15:40:26 141

原创 魔兽服务器学习-笔记(服务器部署、地图管理、DB、日志模块、任务模块、战斗模块)

2》由mmaps_generator生成可移动地图信息 .mmap,游戏中的地图移动数据(用来给navmesh寻路),也就是用recast和detour生成寻路信息。《4》vmap4assembler合并vmapsextractor和mmaps_generator生成的地图信息,vmtile信息。《3》vmapsextractor生成地图元素信息(可视场景信息:山脉、水体、建筑物等静态场景信息),用于未来做。2)功能:视野、数据同步、碰撞检测、寻路算法。1)AOI:管理地图地理信息、地图对象信息。

2023-11-09 15:21:32 1059 5

原创 用rust写web服务器笔记(11/1)

①创建一个简单的main.html。1)404Erorr界面的html。2)返回一个真正的网页。

2023-11-01 13:29:04 472

原创 rust代码学习笔记(未完待续11/1)

二、案例二:(引入新包)猜数字游戏①引入随机数包②引入随机库③源码三、案例三:循环猜测数字四、案例四:猜字游戏(彩色版本)五、rust一些注意事项1)声明变量默认是不可修改的解决方法:(加mut关键词)3)标量(scalar)和复合类型(compound)数据类型①整数类型debug超出正常范围就会panicked,release模式下会超过最大值得数转回最小值②字符类型③浮点数④复合类型tuple取元素方式:(tuple元素从0开始,如下所示)①解构②点

2023-10-31 03:01:36 138

原创 C++思考和一些代码规范(10/11)

④用仿函数进一步优化(改变:传入的函数参数为不同值,之前无论是模板还是函数指针都是写死的)③函数模板进一步优化(改变:传入的函数参数为不同类型)⑤仿函数代码难以阅读,可以用lambda表达式改造下。②加入函数指针的优化(改变:传入不同的函数)

2023-09-28 02:16:47 426

原创 设计模式的一些笔记(个人见解参杂各个模式的用途,未完待续10/16)

比如游戏里面任何一个obj都是一个实体Entity,这个Entity就是父类,子类就是怪物Monster、玩家Player、NPC、静态物品Doodad。

2023-09-07 18:42:25 540

原创 游戏思考30(补充版):关于逆水寒铁牢关副本、白石副本和技能的一些注释(2023/0902)

作用:启动定时器,有一个虚拟的风根据定时器触发前进,路径上如果有玩家则会携带玩家一起位移,定时器触发时候玩家一起移动,客户端做移动补偿。③周冷龙会给玩家上禁疗buff,奶妈给有buff的玩家回不上血(如下图所示,奶妈开场不用奶)原理:服务器先向客户端发送消息包体,坐标和三个反向,客户端根据消息展示红框。原理:服务器先向客户端发送消息包体,坐标和直径,客户端根据消息展示圆形红框。①boss向一仇定时器定时冲撞,主T获得伤害和击倒效果,其他只有击倒效果。应对:玩家开解控,获得霸体效果,不会跟着风移动。

2023-09-02 03:57:08 798

原创 UE蓝图基础学习笔记(未完待续2023/05/22)

整体界面区别①视图面板:用于设计关卡,可以在视图面板摆放、移动、旋转游戏对象,为了便于设计,占了引擎的大部区域②大纲面板:以名字显示视图区的游戏对象③细节面板:用于显示当前选中的对象的详细信息④内容侧滑菜单:为UE4的内容浏览器,用于显示当前项目中的内容(资源、蓝图、材质等),默认为隐藏状态,可通过快捷键:CTRL+空格建显示。

2023-05-03 23:46:24 1406 2

原创 Mysql 45讲和45问笔记(未完待续0203/05/08)

可以看到右边的数据结构里面,是按照k-v来存数据结构的,key是col2的字段,这个value对应的是这个节点对应数据在磁盘中的地址。所以是帮助Mysql高效获取数据的。

2023-04-23 13:31:57 211

原创 记录一次curl的使用报错:使用PUT的设置错误

因此,如果您要使用libcurl库发送PUT请求,请使用curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, “PUT”)。①curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, “PUT”)设置libcurl库发送HTTP请求的自定义方法为PUT。②而curl_easy_setopt(curl, CURLOPT_PUT, true)是错误的,因为CURLOPT_PUT选项不是用于设置HTTP请求方法的选项。

2023-04-17 16:56:22 472

原创 《Effective Modern C++》阅读笔记 (03/29)

另外一个注意的点:容器元素在push_back的时候,优先利用移动构造函数,但是这个函数需要加上noexcept,否则发生异常数据会丢失。noexcept会做出很大优化(编译器在抛出异常时候要保证栈上元素顺序析构,不保证析构顺序会有很大优化)但是如果用效率低的拷贝构造函数,那么数据不会全丢失。C++98和C++11不会抛出异常的写法。③常数值传递,不是指针或引用。

2023-03-29 02:10:00 97

原创 游戏思考25:behaviorTree源码剖析行为树(3.8版本,2023-11-22)

行为树节点分类1)序列Sequence节点:顺序执行所有子节点,若都成功则返回成功,若有一个失败则返回失败2)循环Loop节点循环执行子节点到指定次数后返回成功,如果循环次数为"-1",则无限循环3)条件Condition节点根据条件的比较结果,返回成功或失败4)动作Action节点根据动作结果返回”成功“、”失败“或”运行“5)等待Wait节点返回"运行",一直到指定的时间过去后返回”成功"

2023-03-25 02:58:59 656

转载 转载:buffer和cache的区别

一,计算机硬件组成二,buffer和cache三.关于buffer和cache测试

2023-03-03 09:42:09 194

原创 服务器开发29:Kubernetes (K8S)上手简单实践(2/13)

一、Kubernetes (K8S) 简介二、安装k8s集群三、部署应用到集群中四、Service五、StatefulSet六、数据持久化七、ConfigMap&Secret八、Helm&命名空间九、Ingress十、其他补充

2023-02-13 00:33:41 263

原创 编译项目记录几个常用的指令

一、作用1)查看某个库是否有该符号表2)看哪个库需要哪些库,是否满足3)查看库信息,是否是32位还是64位二、补充解释1)nm出现的原因

2023-02-10 10:01:13 274

原创 游戏思考30:技能碰撞检测分类枚举及逆水寒魔兽老兵服副本攻略(英雄武林风云录,后续更新舞阳城、扬州、清明等副本攻略)

一、武林风云录1)老一:陈斩槐(只有四个机制,dps压力不大,留爆发打影子就行)(1)点名红色扇形区域(2)点名红色长条,注意最后还有一段大劈(3)BOSS在百分之80 、50、20血量时会击退玩家,会刷新三个输出位置(4)BOSS在百分之35血时会吸玩家到其周围,释放旋风斩,得交解控技能。但是不要着急回去,还有一个圆圈的下坠伤害2)老二:醉仙(1)红圈和点名略过(2)输出记得喝酒(龙吟内功,铁衣外功等)(3)每一个奉茶小厮都有名字,得按照诗词来按照顺序击杀小二3)老三:楚相玉(1)b

2023-01-26 17:01:34 3581 2

原创 游戏思考29:使用EASTL配合共享内存做自定义STL(未完待续12/28)

一、前置学习1)萃取(1)迭代器所指对象的类型-value_type第一个限制-返回参数需要指明迭代器的value_type第二个限制坑点-不是所有迭代器都是class type,原生指针就不是第三个限制坑点-如果针对"指向常数对象的指针(point-to-const)"获得的值带const不是我们期望的(2)最常用到的迭代器类型有五种:value_typedifference_typepointerreferenceiterator_c

2022-12-26 20:42:26 688

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除