vitalgg 发表于 2022-12-9 11:08:35

蹭蹭chatGPT的热度,CAD内置聊天。附 json 解析函数。

本帖最后由 vitalgg 于 2022-12-9 14:57 编辑

命令行输入 @C 或 chat 开始聊天。
可以查命令,查变量,查函数,查组码










该解析函数只支持 stringify 格式的 json 字符串,即属性必须有引号。
(defun json:parse (str)
"Json 字符串转化为 lisp 列表。"
"list"
(setq lst-str (vl-string->list str))
(setq flag-escape nil)
(setq flag-quote nil)
(setq flag-keylevel 0)
(setq flag-arraylevel 0)
(setq atom-str-lst '())
;;(setq res nil)

(while lst-str
    (setq curr-char (car lst-str))
    (cond
   ((= (ascii "\\") curr-char)
      (setq flag-escape (not flag-escape))
      (setq atom-str-lst (cons curr-char atom-str-lst))
      )
   ((and (= (ascii "\"") curr-char)
   (null flag-escape))
      (setq flag-escape nil)
      (setq flag-quote (not flag-quote))
      (setq atom-str-lst (cons curr-char atom-str-lst))
      )
   (t
      (setq flag-escape nil)
      (if flag-quote
    (setq atom-str-lst (cons curr-char atom-str-lst))
    (cond
   ((= (ascii "{") curr-char)
      ;;对象 key/value mode
      (setq flag-keylevel (1+ flag-keylevel))
      (setq atom-str-lst (cons (ascii "(") atom-str-lst))
      )
   ((= (ascii "[") curr-char)
      ;;array mode
      (setq flag-arraylevel (1+ flag-arraylevel))
      (if(= pre-char (ascii ":"))
    (setq atom-str-lst (cons (ascii "(") (cdddr atom-str-lst)))
      (setq atom-str-lst (cons (ascii "(") atom-str-lst)))
      )
   ((= (ascii "}") curr-char)
      ;;对象 key/value mode
      (setq flag-keylevel (1- flag-keylevel))
      (setq atom-str-lst (cons (ascii ")") atom-str-lst))
      )
   ((= (ascii "]") curr-char)
      ;;array mode
      (setq flag-arraylevel (1- flag-arraylevel))
      (setq atom-str-lst (cons (ascii ")") atom-str-lst)))
   
   ((= (ascii ":") curr-char)
      ;; 处理 key
      (setq atom-str-lst
      (cons (ascii " ")
      (cons (ascii ".")
            (cons (ascii " ") atom-str-lst))))
      )
   ((= (ascii ",")curr-char)
      ;; value
      (setq atom-str-lst
      (cons (ascii "(")
      (cons (ascii ")")
            atom-str-lst)))
      )
   (t (setq atom-str-lst (cons curr-char atom-str-lst)))
   ))))
    (setq pre-char curr-char)
    (setq lst-str(cdr lst-str))
    )

(read(strcat "(" (vl-list->string (reverse atom-str-lst)) ")"))
)







VBALISPER 发表于 2022-12-9 14:11:26

是自己编的一个类似于chatGPT的,在CAD中使用,用于CAD方面智能聊天程序吗?

vitalgg 发表于 2022-12-9 14:42:08

VBALISPER 发表于 2022-12-9 14:11
是自己编的一个类似于chatGPT的,在CAD中使用,用于CAD方面智能聊天程序吗?

没有chatGPT的大数据量。
目前只是收集了,命令,变量,lisp函数 和 @lisp函数库的说明用法等。
模糊匹配聊天用户发送的内容,并返回相关内容。

支持智能搜索和一些简单的日常聊天。

guosheyang 发表于 2022-12-9 15:12:56

chatGPT是不是一个升级版的搜索引擎?

vitalgg 发表于 2022-12-9 15:23:54

guosheyang 发表于 2022-12-9 15:12
chatGPT是不是一个升级版的搜索引擎?

我的理解是chatGPT 将互联网上的内容收集,归类。

根据用户请求内容,按一定规则和逻辑整理后发送给用户。
广义上也算是一种搜索引擎,但是内容是多少加工过的,不是原汁原味的东西。


那个生成插件的代码,基本上是一个模式,像是八股文。

guosheyang 发表于 2022-12-9 15:39:17

vitalgg 发表于 2022-12-9 15:23
我的理解是chatGPT 将互联网上的内容收集,归类。

根据用户请求内容,按一定规则和逻辑整理后发送给用 ...

嗯 也就是加上人工智能内容如果引入超级计算机计算达到像阿尔法狗的那种效果   这世界很多人就会没事儿干了:lol
页: [1]
查看完整版本: 蹭蹭chatGPT的热度,CAD内置聊天。附 json 解析函数。