LLM的不成熟见解

通过模拟人类的多感官输入和多样化的输出机制,让大型语言模型(LLM)能够更接近人类的思维模式,从而实现更有效的思考、自训练和自我更新。

人之所以成为人,在于不断思考,不断的接受和处理外部信息。

但是目前我接触到的LLM是基于对话交互,所以只有当人给予对话作为输入时才会有相应的反馈。对于这样的反应,压根就不是人类的情况,哪有人会这样只有一个接受渠道,再一个反馈渠道,就是一个输入输出的机器。

因此,我的理解是要对其加入不断输入输出的情况。可以把现场的情况(电压,功率,剩余电量,开机时间,温湿度,当天的天气情况,现场周围的声音,图片等等输入,达到模拟感官:视觉 听觉 嗅觉 触觉 等等),然后有个输出机制,可以输出到文档,或者数据库等等,或者让LLM自己决定。不断的输入输出,相当于不断的思考,但是思考是会有成果的,可以再结合上面的输入输出以及对话的输入输出,进行自训练,以达到成为人的思维。

不断思考,不断进步(训练或者微调),更新自我。

LCD2004 LCD1602 设计模式

https://bgithub.xyz/liyuanhe211/Micropython_LCD1602_LCD2004_I2C_Lib

其中可以创建自己想要的图形,这个图形是7×5 像素的图标。

# -*- coding: utf-8 -*-
__author__ = 'LiYuanhe'

from machine import Pin, Signal, SoftI2C
import time
import socket
import machine
import network
import micropython
import os
from lib_lcd1602_2004_with_i2c import LCD

micropython.alloc_emergency_exception_buf(100)

scl_pin = 26
sda_pin = 27
lcd = LCD(SoftI2C(scl=Pin(scl_pin), sda=Pin(sda_pin), freq=100000))

custom_char_0 = [
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00001,
  0b00011]

custom_char_1 = [
  0b00111,
  0b00111,
  0b01110,
  0b01110,
  0b01110,
  0b11110,
  0b11111,
  0b11111]

custom_char_2 = [
  0b00000,
  0b00001,
  0b00111,
  0b01111,
  0b11111,
  0b11110,
  0b11000,
  0b10000]

custom_char_3 = [
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b11111,
  0b11111]

custom_char_4 = [
  0b01111,
  0b11111,
  0b11111,
  0b11000,
  0b00000,
  0b00000,
  0b00000,
  0b00000]

custom_char_5 = [
  0b11100,
  0b11110,
  0b11111,
  0b00011,
  0b00001,
  0b00000,
  0b00000,
  0b00000]

custom_char_6 = [
  0b00000,
  0b00000,
  0b10000,
  0b11100,
  0b11110,
  0b01111,
  0b00111,
  0b00011]

custom_char_7 = [
  0b11000,
  0b11000,
  0b11100,
  0b11100,
  0b11100,
  0b11110,
  0b11110,
  0b11110]


lcd.create_charactor(0,custom_char_0)
lcd.create_charactor(1,custom_char_1)
lcd.create_charactor(2,custom_char_2)
lcd.create_charactor(3,custom_char_3)
lcd.create_charactor(4,custom_char_4)
lcd.create_charactor(5,custom_char_5)
lcd.create_charactor(6,custom_char_6)
lcd.create_charactor(7,custom_char_7)

top = chr(0)+chr(2)+chr(4)+chr(5)+chr(6)+' '
down = chr(1)+chr(3)+chr(3)+chr(3)+chr(3)+chr(7)
count=0
while True:
    line1 = " "*count + top + (16-count-6)*' '
    line2 = " "*count + down + (16-count-6)*' '
    count+=1
    lcd.puts(line1,0)
    lcd.puts(line2,1)
    time.sleep(0.3)
    if count==11:
        break

line1 = " LCD1602  " + top
line2 = "Custom chr" + down
lcd.puts(line1,0)
lcd.puts(line2,1)

windows 硬盘备份【windows 运维】

windows server 2008 需要先添加 windows server backup 的功能。

添加 windows server backup 功能

1.服务器管理器》功能》添加功能(在右侧)》windows server backup 的选项打上勾。》完成

就会出现在 存储 栏目下出现 windows server backup

之后点击windows server backup ,按照其步骤上面创建备份。

但是需要注意:
需要在两台服务器上创建两个账户,且账户名称必须一样,若账户名称为backup,则需要备份机器 必须为 管理员 backup,存储备份机器 backup 账户 普通用户即可,且密码必须一致,

其中选项 网络备份全部传输 (即更新全部,相当于刷新存储)。

备份文件格式为VHD,可以到处到其他服务器上进行挂载(磁盘管理中挂载VHD文件),在内网1Gbps下每分钟0.8GB数据,比直接SMB复制快点。

mpy_edit 编辑文件

python文件编辑

import os


class mpy_edit(object):
    def __init__(self,file_name):
        self.file_name=file_name
        self.read_file(self.file_name)
    def read_file(self,file_name):
        if os.path.exists(file_name):
            self.size=os.path.getsize(file_name)
            self.f=open(file_name,"r")
            self.file_lines=self.f.readlines()
            self.all=len(self.file_lines)
            self.now=0
            self.f.close()
        else:
            return "NO FILE"
    def line_num(self,line_num):
        if self.all>line_num+1:
            self.now=line_num+1
            return self.file_lines[line_num]
        else:
            line_num=self.all-1
            self.now=self.all-1
            return self.file_lines[self.now]
        
    def read(self):
        return self.line_num(self.now)
    def edit_line(self,line_num,str_info):
        self.file_lines[line_num]=str_info
    def save(self,file_name=False):
        if not file_name:
            file_name=self.file_name
        nf=open(file_name,"w")
        for i in self.file_lines:
            nf.write(i)
        nf.close()

    
f=mpy_edit("ttt.txt")



print(f.line_num(14))

PHP处理word

替换块

$tmp->setValue(‘title’,$title);

大段复制

$tmp->cloneBlock(“block_1”,0,true,false,$info);
其中$info中的键是模板中需要替换的名称,值是替换后的值

举例子 $info

举例子 $info
$info=array(
            array("title"=>"一、的萨芬莫斯科电脑麦克风莫斯科的","study_body"=>"的萨芬莫斯科电脑麦克风莫斯科的的萨芬莫斯科电脑麦克风莫斯科的","main_time"=>"9:10-9:40"),
            array("title"=>"二、是多少dasdasda斯科的","study_body"=>"是多少dasdasda斯科的是多少dasdasda斯科的克风莫斯科的","main_time"=>"9:40-10:10"),
        );

#模板中block_1 

${block_1}
${title}
参加对象:${study_body}
时间:${main_time}

${/block_1}

删除块

$templateProcessor->deleteBlock(‘block_name’);

require_once 'vendor/autoload.php';
 //如果是Thinkphp 在目录下已经使用composer安装了phpoffice 的phpword 可以不适应这个

use PhpOffice\PhpWord\TemplateProcessor;

// 加载模板文件
$templateProcessor = new TemplateProcessor('path/to/your/template.docx');

// 删除块 谨慎使用,可以用空值去替换
$templateProcessor->deleteBlock('block_name');

// 保存修改后的文档
$templateProcessor->saveAs('path/to/your/new/document.docx');

保持文件信息

$tmp->saveAs($save_name);

删除大坑:

1.在大段block中 若传入空值则不进行替换,且该块不显示。

2.若删除块可能会导致下面的块连同删除。

#模板

${block_1}
${title}
参加对象:${study_body}
时间:${main_time}

${/block_1}
${block_2}
${title}
出席:${cx_name}

${/block_2}

#PHP block_1 无内容,block_2有内容 可以替换:
(其中传入$block_1为array空,$block_1=array();即可)

$tmp->cloneBlock("block_1",0,true,false,$block_1);
$tmp->cloneBlock("block_2",0,true,false,$block_2);

#错误调用
$tmp->deleteBlock("block_1");
$tmp->cloneBlock("block_2",0,true,false,$block_2);

#可能会导致block_2连同删除,巨坑!!!!!