CurisZhou / ChatGLM-6B-Engineering

ChatGLM-6B Prompt Engineering Project

Home Page:https://chat.lemonquapi.tk

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ChatGLM-6B-Engineering

(Back End) 后端

前端的源码在:https://github.com/LemonQu-GIT/ChatGLM-6B-Engineering/tree/WebUI

介绍

本项目参考于

并进行多许修改以适配 ChatGLM-6B

UI 仿 ChatGPT 并使用流式输出以实现逐字回答的动画效果

api.py 参考 此 PR 以实现流式传输

正在设想加入 langchain 以适配在网络搜索后存入本地知识库以供下次使用

示例

功能

  • 上下文对话(默认)
  • 网络搜索(可以参考 官方 GitHub Repo
  • Stable Diffusion (Deprecated)
  • Markmap 生成思维导图

部署

本项目的推荐运行环境为 Python v3.9.16 node.js v14.21.3

  1. 安装依赖

    pip install -r requirements.txt
    
  2. 运行 ChatGLM-6B API (chat) (Port 8000)

    python api.py
  3. 运行 Stable Diffusion API (Port 7861) (Optional)

    python webui.py --nowebui
  4. 运行 ChatGLM-6B API (back end) (Port 8003)

    python front_end.py
  5. 运行 npm (front end) (Port 8080) v14.21.3

    npm install -g yarn
    #yarn config set registry https://registry.npm.taobao.org -g
    #yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g
    yarn install
    yarn dev

开发

加入了插件的功能,用户可以根据自己的需要自行开发插件

插件的原理如下:

模板

>> ./plugins/demo.py (new)

#coding:utf-8
from plugins.utils import *

# 以下的例子是 当用户的 prompt 中有问候性的语句就会告诉 LLM “我”叫小明的插件

def trigger_words(prompt: str):
	triggers = ['我是','你好']
	for trigger in triggers:
		if trigger in prompt:
			return True
	else:
		return False

def run(prompt: str): # 用户输入的 prompt
	if trigger_words(prompt):
		log("<你想要的日志>", "EVENT")
		# 在此写入处理用户 prompt 的代码
		return {"add": f"已知我叫小明,", "prefix": "", "suffix": ""}

>> ./plugins/__init__.py (add)

from plugins.demo import *
import plugins.demo as demo

>> ./front_end.py (add)

if enable_demo:
        log('Calling demo plugin', 'EVENT')
        demo_resp = demo.run(latest_filename)
        if demo_resp != None:
				add_prompt += demo_resp['add']
                prefix += demo_resp['prefix']
                suffix += demo_resp['suffix']
                log(f"demo plugin finished", "EVENT")

联系方式

QQ: 173887664

Email: LemonQu@outlook.com

将在之后创建 QQ 交流群并逐渐开放 https://chat.lemonquapi.tk 的对话示例

About

ChatGLM-6B Prompt Engineering Project

https://chat.lemonquapi.tk

License:Apache License 2.0


Languages

Language:Python 100.0%