2024-06-20
生活
00

准则一:股市不可能天天挣钱的,尤其是A股,所以一定要多观察再买入

准则二:买股票不要临时起意从而买入,一定是按照自己的买入体系,提前分析看好的

准则三: 同一个票短期内一旦卖出后,及时出现反转,也一定不要再买入了

准则四: 下跌破位的票,一定不能留恋,破五日线后,如果几条线距离很近可以拿着,要是距离比较远,打死都要走,最多撑到十日线(找到一只票的支撑均线)

2024-07-08
linux相关
00

提示

以下内容的目的,只是为了学习合法的知识

准备
  • 域名
  • 国外服务器(目前使用的是搬瓦工的服务器)
申请域名证书
服务搭建
  1. 通过gost搭建http2服务
2024-06-05
linux相关
00

centos安装supervisor详细教程

解释说明

sh
supervisor:要安装的软件的名称。 supervisord:装好supervisor软件后,supervisord用于启动supervisor服务。 supervisorctl:用于管理supervisor配置文件中program。

安装

使用yum命令安装 切换为root用户

sh
yum install epel-release # 如果已安装EPEL源,请跳过 yum install -y supervisor systemctl enable supervisord # 开机自启动 systemctl start supervisord # 启动supervisord服务 systemctl status supervisord # 查看supervisord服务状态 ps -ef|grep supervisord # 查看是否存在supervisord进程
2026-04-16
golang
00

这里eino 框架学习的相关总结,方便后续学习和记忆

组件

  • ChatModel‌:与大模型交互的核心组件,支持生成式对话(Generate)和流式输出(Stream),部分实现还支持工具调用(ToolCallingChatModel)
  • Tool‌:扩展大模型能力的工具,可调用外部 API、数据库、文件系统等,支持同步(Invoke)和流式(Stream)两种范式
  • Retriever‌:从向量库或文档库中检索与查询相关的文档片段,常用于 RAG 场景。
  • Embedding‌:将文本转换为向量表示,用于语义搜索和向量索引。
  • Indexer‌:负责存储和索引文档向量,支持 Redis、Milvus 等向量数据库。 ‌- Document Loader‌:加载并解析多种格式的原始文档(如 PDF、Markdown、TXT 等),统一为schema.Document 结构。
  • Document Transformer‌:对文档进行切分、过滤或格式转换,如按标题、递归或语义切分。
  • ChatTemplate‌:管理提示词模板,支持 FString、GoTemplate、Jinja2 等语法,便于动态构建系统提示
2026-03-30
golang
00

从头开始,每K个一组,翻转链表

js
package main import "fmt" type ListNode struct { Val int Next *ListNode } // ================= 核心函数 ================= // 每 K 个一组翻转(从头开始) func reverseKGroup(head *ListNode, k int) *ListNode { if head == nil || k <= 1 { return head } dummy := &ListNode{Next: head} pre := dummy for { // 1. 找到这一组的 tail tail := pre for i := 0; i < k; i++ { tail = tail.Next if tail == nil { return dummy.Next // 不够K个 } } // 2. 记录下一组起点 next := tail.Next // 3. 翻转这一组 start := pre.Next newHead, newTail := reverse(start, tail) // 4. 接回链表 pre.Next = newHead newTail.Next = next // 5. pre 移动到下一组 pre = newTail } } // 翻转 [head, tail] 区间 func reverse(head, tail *ListNode) (*ListNode, *ListNode) { prev := tail.Next cur := head for prev != tail { next := cur.Next cur.Next = prev prev = cur cur = next } return tail, head } // ================= 辅助函数 ================= // 构建链表 func buildList(nums []int) *ListNode { dummy := &ListNode{} cur := dummy for _, v := range nums { cur.Next = &ListNode{Val: v} cur = cur.Next } return dummy.Next } // 打印链表 func printList(head *ListNode) { cur := head for cur != nil { fmt.Printf("%d -> ", cur.Val) cur = cur.Next } fmt.Println("null") } // ================= 测试 ================= func main() { head := buildList([]int{1, 2, 3, 4, 5, 6}) k := 3 fmt.Println("原链表:") printList(head) newHead := reverseKGroup(head, k) fmt.Println("每K个翻转后:") printList(newHead) }