Giter Site home page Giter Site logo

newfyu / tianshu Goto Github PK

View Code? Open in Web Editor NEW
50.0 3.0 2.0 70 MB

ChatGPT的跨平台桌面客户端,简洁的用户界面和随时唤起的体验。有构建本地知识库、网络检索、长文本阅读、执行本地代码等功能。

chatgpt-app

tianshu's Introduction

v0.6.3更新: 创建和更新大量本地知识库的时候会即时保存,即使中断下次也可在断点继续更新。

概述

Tianshu(天书)是一个可以常驻桌面随时使用ChatGPT的跨平台应用。无需打开网页或切换窗口,随时随地在你的工作流中和AI聊天。还有本地知识库,联网搜索,操控本地系统等功能。需要OpenAI的官方key或其他第三方gpt转发服务的key。

帮助文档

它可以帮助你

  • 在工作流中随时随地的和ChatGPT等大语言模型对话
  • 和任意可选中的文字内容对话
  • 轻松创建个人知识库构建独有的问答机器人
  • 超长文本全文阅读
  • 自定义prompt
  • 选择各种不同的大语言模型
  • 使用google和wikipedia来增强问答的真实性
  • 本地存储对话历史和快速查询
  • 对话生成并执行python脚本
  • 对话控制本地系统(通过applescript/vbscript)

安装

打包好的版本,开箱即用。支持MacOS、Windows 10、Windows 11。

MacOS下载dmg后缀的安装包, Windows下载exe后缀的安装包。

Mac上如果提示什么文件损坏,安全权限问题,在“通用”-“隐私与安全”中打开。

本仓库不提供源码,Tianshu由BrainshellBraindoor两个项目打包而成。源码可以去各自的仓库查看。

配置

点击设置图标,填入OpenAI的key。如果你的网络无法访问openai,还需要填入代理地址。(如果你不知道填什么,就反向代理中无脑填 https://api.openai-proxy.com ) 。更多设置详见安装和配置

使用

启动后是窗口模式,和日常的窗口应用没有区别,可以任意调整大小和位置。

调整到合适大小和位置后,点击“锁”图标后变成无框模式,将置顶并且不能调整大小,但仍可以对话框下方空白区域拖动。建议放置到屏幕左下角或右下角,就像网络游戏的聊天窗口一样,无框透明设计方便融入日常大部分工作环境。当然也有喜欢只用窗口模式的,看个人习惯吧。

  • Enter 键是提交输入。
  • Shift-Enter 换行。
  • 斜杠“/” 会开启一个功能标签的选择列表,提供扩展功能。标签可以通过缩写查询。
  • 下方四个按钮分别是“新建对话”,“删除对话”,“无框模式”,“设置”。
  • 点击右下角的页码或Cmd/Ctrl + F,打开历史记录查询。方向键上下选择,Enter键提交,Esc键关闭。
  • Alt/Option + C是全局Chat唤起的默认快捷键。在使用任意其他程序的过程中,选中文字后按下快捷键,将会对选中的文字发起问答。

全局Chat

全局Chat功能允许你在系统任何地方调出输入窗口,并对选中的文字内容发起对话。默认快捷键Option/Alt + C. 如果和其他系统快捷键有冲突,可以在设置->全局Chat中修改。 MacOS 还需要添加辅助功能权限!,详见全局chat

全文阅读

用于把长文档加入上下文,可以超过ChatGPT的token长度限制。详见全文阅读

有两种方式启用

  • 如果粘贴一大段文字到输入框中提交,超过预设的限制(默认12000 token,可在config.yaml中修改),会自动转成全文阅读模式
  • 拖拽一个文件(txt, md, pdf, html, docx)到输入框后,也会开启全文阅读模式。然后可以对该文本中内容进行问答。

WebChat

当ChatGPT的能力不能满足我们的需要时,我们常会使用GPT-4或Claude。但GPT-4和Claude的API非常难以获得,后续费用也伤不起。所以将网页版的GPT-4、Claude、Bing集成到了这个称为WebChat的功能中。网页版的另一个好处是,虽然有一定时间周期内的使用次数限制,但不消耗token。

使用方法一

鼠标悬浮到新建对话按钮上后会看到WebChat的按钮,打开后和在日常浏览器中使用网页版完全一样,需要登录。

这些网站都是禁止国内访问的,软件自动使用设置中的正向代理地址进行代理。如果无法访问,尝试在设置->正向代理中更换你可用的代理地址。

使用方法二

使用"/"打开功能标签,选择ChatGPT-WebClaude-Web,会自动打开网页版的聊天窗口,并且会自动把输入框中的文字复制进去。包括在使用Alt+C和文字对话时候也能生效。

功能标签

使用斜杠"/"打开标签列表,插入特定标签后会提供额外的功能,标签有五种类型。

1.提示词标签

[prompt]

就是提示词模板了,插入[prompt]标签后,会对你输入的内容进行包装(添加提示词)。自定义[prompt]标签详见提示词标签

[snippet]

更简单的提示词标签,直接把提示词内容插入到输入框中,比如 /苏格拉底导师。插入后直接提交,聊天机器人就会扮演一个苏格拉底式的导师。

这类标签的编写方法更简单,比如在网络上找到一段有意思的提示词。打开设置->配置目录,在prompts文件夹中用户文件夹中新建一个 txt 文件,文件名将作为标签名,然后把提示词复制进去即可,

2.本地知识库标签 [base]

可以将本机上的一个或多个文件夹变成 GPT 的知识库。插入知识库标签后,对话时将主要根据本地知识库中的内容来回答问题,用于构建特定领域的问答机器人。本地知识库的创建、更新详见本地知识库

3.模型标签 [model]

用于选择语言模型和调整语言模型的参数。内置了比如gpt3.5-turbo,gpt3.5-turbo-16k, gpt4等。(gpt4需要你本身key有权限才行)。自定义模型详见模型标签

4.内置标签 [engine]

这类标签是写入braindoor内部的功能,不能通过配置文件来增加。自带了哪些就是哪些,每次版本更新的时候会添加一些。目前有:

  • /HyDE:在使用本地知识库的时候,默认是根据你的问题去查询相似的文档片段。插入HyDE后,会先根据你的问题生成一个预先答案,再通过该答案去查询本地相关片段。可以增加片段查询的准确率,会增加一点token消耗
  • /ReadTop3:和本地知识库配合使用,增加本地知识库阅读深度。使用本地仓库时,默认只根据相似度最高的片段作为上下文,插入该标签后,会使用相似度最高的前3个片段作为依据,然后用分块阅读来解答问题,会增加token消耗,但提高查询准确率。
  • /ReadTop5:同上,会使用相似度最高的5个片段
  • /Memo:备忘录,插入这个标签后,输入后不会经过LLM,直接就输出你输入的内容。有人说,这不扯淡吗。其实就是用来记录一下笔记,当个桌面便签。支持markdown。
  • /File: 文件插件,插入此标签后,拖拽任意文件到对话框,可以获得文件的路径。并加入上下文,一般用于通过对话生成代码来处理文件。

5.工具、插件和智能体 [agent]

这类标签实通过将本地python和LLM结合,完成一些相对高级的功能和自动化操作。可以实现诸如插件、工具甚至智能体。详见插件和智能体

内置了几个个基本插件作为范例

/google:主要是用于网络搜索改善问答的真实性。插入该标签后,会生成搜索词然联网查询google的结果。

/wiki:插入该标签后,会查询wikipedia的结果后回答,会读取wikipedia提供的summary来回答问题。

/python: 可以生成python代码并执行。你可以通过对话完成各种本地文件操作,数据分析,处理 图片、绘图或作为一个简单的notebook调试代码等。依赖本地的python环境,默认会自动查找一个本地的解释器,如果需要指定特定的python环境。在配置文件中用户文件夹\braindoor\agents\python\config.yaml声明。下图是一个根据数据绘制图表的完整聊天过程。

/applescirpt/vbscript: 可以生成applescript或vbscript并执行,可以通过对话完成各种对mac os或windows的操控。比如“创建文件”,“添加一个待办事项”,给“[email protected]发送一个邮件,标题是xx,内容是xx”,或是一系列自动化操作。chatgpt写此类script偶有出错,等有gpt4接口后会好很多。操作office也是可以的,可以自己研究下vbscript

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.