Emacs&x27;s Theraphis(伊丽莎)API

Emacs&x27;s Theraphis(伊丽莎)API,emacs,Emacs,有人知道有没有什么方法可以把“问题”发送给Emacs的治疗师,并将回答回复回来?(我正在编写一些应用程序,并希望重用其自然语言处理功能)非官方API将在“医生模式”下查看绑定到RET的函数,并查看它的功能。然后,您可以编写一些代码,并使用应用程序中的EmacClient来评估代码并来回传递数据 例如,我看到doctor read print设置发送给用户编写的句子的doctor的值,然后增加doctor--lincount,并调用doctor doc(需要从缓冲区解析医生的响应) 但是,由于El

有人知道有没有什么方法可以把“问题”发送给Emacs的治疗师,并将回答回复回来?(我正在编写一些应用程序,并希望重用其自然语言处理功能)

非官方API将在“医生模式”下查看绑定到RET的函数,并查看它的功能。然后,您可以编写一些代码,并使用应用程序中的EmacClient来评估代码并来回传递数据

例如,我看到
doctor read print
设置发送给用户编写的句子的doctor的值,然后增加doctor--lincount,并调用
doctor doc
(需要从缓冲区解析医生的响应)


但是,由于Eliza是一个典型的IA示例,我相信您可以找到几种语言的免费版本。

您能告诉我如何让emacs在不打开emacs的情况下计算表达式,键入
M:
?换句话说,我可以将要求值的表达式通过管道传递到emacs或类似的东西吗?您需要一个打开的emacs(如果不需要窗口或终端,可以使用守护进程),然后在其上求值
(服务器启动)
。然后可以使用
emacsclient-e表达式
来计算表达式。请注意,医生是有状态的,所以打开一个新实例是不可行的。太棒了!(我从未真正了解EmacClient)ThanksHow我是否从客户端访问缓冲区?因此,我启动了服务器,让窗口保持打开状态,在另一个窗口上,我运行了
emacslient-e“(医生)”
,它在第一个窗口上启动了“治疗师”窗口,这很好。但是我从客户端得到的响应是
nil
(实际上我希望在emacs窗口中打印欢迎消息),您得到的响应是eval表达式返回的:
EmacClient-e'(+23))'
将在stdout a 5上打印,例如<代码>(医生)不返回任何内容(事实上,它返回nil),它只是在缓冲区中写入一些内容。您需要编写一些代码来从缓冲区读取内容并返回它。