【终端增强工具】这次,我把Terminal(终端)也接入ChatGPT了...

大家好,我是萌新程序员豆小匠。
为terminal(终端)增加自定义命令这个想法从开始学编程的时候就有了,但是一直没有付诸行动。
这次,终于抽时间完成了,且代码开源!

实现的功能

先说下实现的功能,目前只实现了几个简单的基础命令:
查看帮助信息:bot -h
查看版本:bot -v
关机:bot -shutdown
接入ChatGPT:bot -c "your question"
在这里插入图片描述
bot -shutdown这个命令就不尝试啦~

重点介绍下接入ChatGPT的操作:
这里其实就是用了ChatGPT的接口,通过SSE(Server-Sent Events,服务器推送事件),不断往terminal上打印返回的文字,视频效果如下:

【终端增强工具】这次,我把Terminal也接入了ChatGPT…

简单使用

  1. 准备好golang环境
  2. 下载&运行项目
git clone https://github.com/anjude/terminalx.git
cd terminalx
go mod tidy
go build -o bot.exe main.go
  1. 把生成bot.exe(mac、linux没有.exe扩展名)文件的目录放到环境变量下
  2. 修改config.yaml文件,需要设置自己的api-key,按需设置代理端口,然后放到~/.terminal/config.yaml~是用户目录,如C:\Users\aboy0
  3. 在终端运行bot -h查看帮助

在这里插入图片描述

开发拓展

  1. 在handler目录新增一个自定义目录,可以参考version目录和version_handler.go文件
  2. 新增的handler实现base.IHandler接口
  3. 在handler/option_map.go文件定义命令和handler的关联
  4. 重新编译文件(go build -o bot.exe main.go)即可
type IHandler interface {// GetCommand 获取handler的命令GetCommand() (command string)// GetDesc 获取该命令的详情GetDesc() (desc string)// GetArgs 获取该命令需要的参数GetArgs(args []string) (curArgs []string, nextArgs []string)// Handle 该命令的具体执行逻辑Handle(args []string)
}

传送门:GitHub地址
觉得有意思别忘了点个赞哦~

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

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

相关文章

抖音矩阵系统源码开源部署分享(三)

目录 一、 概述: 二、 账号矩阵搭建目的: 三、 抖音矩阵系统源码开发步骤 四、 功能规划 五、 代码开发展示 一、 概述: 抖音矩阵系统是指通过多个账号运营,对账号之间的内容和特征进行细分,账号之间相互引流推广&a…

Spring底层核心架构

Spring底层核心架构 相关的配置类 1. user类 package com.zhouyu.service;import org.springframework.stereotype.Component;public class User { }2. AppConfig类 package com.zhouyu;import org.springframework.context.annotation.*; import org.springframework.sched…

软负载Nginx详细配置及使用案例

Nginx使用与配置 什么是nginx Nginx 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。 处理响应请求很快高并发连接低的内存消耗具有很高的可靠性高扩展性热部署 master 管理进程与 worker 工作进程的分离设计,使得 Nginx 具有热部署的…

Linux进程

目录 查看进程 进程状态 运行状态 睡眠状态 磁盘休眠状态 停止状态 死亡状态 僵死状态 孤儿进程 进程优先级 环境变量 PATH ​编辑 进程地址空间 进程创建 进程终止​​​​​​​ 进程等待 进程程序替换 简易shell实现 获取命令行 解析命令行 建立子进程…

应用层:客户-服务器方式(C/S)、对等方式(P2P)

1.应用层:客户-服务器方式和对等方式 笔记来源: 湖科大教书匠:客户-服务器方式和对等方式 声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考 开发一种新的网络应用首先要考虑的问题就是网络应用程序在各种端系统上的…

权限管理系统后端实现1-SpringSecurity执行原理概述

spring security的简单原理: SpringSecurity有很多很多的拦截器,在执行流程里面主要有两个核心的拦截器 1,登陆验证拦截器AuthenticationProcessingFilter 2,资源管理拦截器AbstractSecurityInterceptor 但拦截器里面的实现需要…

基于YOLO的3D人脸关键点检测方案

目录 前言一、任务列表二、3D人脸关键点数据H3WB2.下载方法3.任务4.评估5.使用许可 3DFAWAFLW2000-3D 三、3D关键点的Z维度信息1.基于3DMM模型的方法2.H3WB 四、当前SOTA的方法1.方法1 五、我们的解决方法1.数据转为YOLO格式2.修改YOLO8Pose的入口出口3.开始训练,并…

网络的构成要素【图解TCP/IP(笔记七)】

文章目录 网络的构成要素通信媒介与数据链路网卡中继器网桥/2层交换机路由器/3层交换机4~7层交换机网关各种设备及其对应网络分层概览 网络的构成要素 通信媒介与数据链路 计算机之间通过电缆相互连接。电缆可以分为很多种,包括双绞线电缆、光纤电缆、同…

Openlayers实战:drawstart,drawend 绘制交互应用示例

Openlayers地图中,绘制一个多边形是非常见的一个应用,涉及到交互会在绘制开始 drawstart 和绘制结束drawend时,通常会在绘制完成后取消继续绘制,然后提出feature的一些信息。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN) * @此源代…

机器学习基础之《特征工程(1)—数据集》

一、数据集 1、目标 知道数据集分为训练集和测试集 会使用sklearn的数据集 2、可用数据集 公司内部,比如百度、微博 数据接口,花钱 政府拥有的数据集 3、在学习阶段用到的数据集 scikit-learn特点: (1)数据量较小 &…

创建数据库Market、Team,按要求完成指定操作

创建数据库Market,在Market中创建数据表customers,customers表结构如表4.6所示,按要求进行操作。 代码如下: #(1)创建数据库Market mysql> create database Market; Query OK, 1 row affected (0.00 sec)mysql>…

瓴羊QuickBI数据门户帮助企业高效管理和展示数据,使其更加明确易懂

随着信息技术时代的到来,越来越多的企业意识到商业信息是其最宝贵的资产之一。对于获取商业信息,需要专业的数据分析。因此,商业智能BI工具,如瓴羊QuickBI已经成为企业信息化中必不可少的工具。它拥有卓越的数据管理和展示功能&am…