如何使用 Excel VBA 与命令行聊天机器人交互

问题描述 投票:0回答:0

我有一个名为 main.exe 的程序。它是一个 LLM(大型语言模型)。从命令行运行它时,经过一些统计后,我会看到“>”以插入我的问题。然后我可以写下我的问题“月亮是什么?”然后它回答“月球是绕地球运行的天然卫星”。 “>”和我的问题是绿色的 他的回答从新的一行开始,并且是白色的。

我需要从 excel vba 与这个程序进行交互。我需要问他我在单元格 A1 到 A 1000 中的问题,然后我需要收集答案。

如何做到这一点?

我试过这个:

Dim myshell As Object
Set myshell = CreateObject("WScript.Shell")

Dim inputStr1 As String
inputStr1 = "What is the moon?"

Dim exec As Object
Set exec = myshell.exec("D:\Win10User\Downloads\AI\Windows\llama-master-aaf3b23-bin-win-avx2-x64\excel.bat")
Application.Wait (Now + TimeValue("0:00:10"))
exec.StdIn.WriteLine inputStr1
Application.Wait (Now + TimeValue("0:00:10"))
Debug.Print exec.stdout.ReadAll

我看到一个黑屏,里面什么也没有。但实际上程序正在运行,只是没有显示。不知道为什么。

Bat文件是这样的:

title llama.cpp 
:start 
cd D:\Win10User\Downloads\AI\Windows\llama-master-aaf3b23-bin-win-avx2-x64
D: 
main -m ../../model/ggml-gpt4-x-13b-q4_1.bin --color -f ./alpaca.txt -ins -b 512 -c 2048 -n 2048 --top_k 10000 --temp 0.8 --repeat_penalty 1 -t 7 
pause 
goto start

当它到达 Debug.Print exec.stdout.ReadAll 时,它崩溃了。我认为这是因为这个命令是在程序关闭后得到一个输出。如果我然后关闭命令提示符窗口(仍然是空的)。我进入了 vba 的调试窗口:

D:\Documents>title llama.cpp 

D:\Documents>cd D:\Win10User\Downloads\AI\Windows\llama-master-aaf3b23-bin-win-avx2-x64 

D:\Win10User\Downloads\AI\Windows\llama-master-aaf3b23-bin-win-avx2-x64>D:

D:\Win10User\Downloads\AI\Windows\llama-master-aaf3b23-bin-win-avx2-x64>main -m ../../model/ggml-gpt4-x-13b-q4_1.bin --color -f ./alpaca.txt -ins -b 512 -c 2048 -n 2048 --top_k 10000 --temp 0.2 --repeat_penalty 1 -t 7 
[33m Below is an instruction that describes a task. Write a response that appropriately completes the request.[0m[1m[32m
> [0m42[1m[32m
> y completes the request.[0m[1m[32m
> [0m42Ф€   XÿÒ•K   €           vìœK  «8·ú  vìœK    ËÄK  ̤€

我对这样做的多种方式持开放态度。皮西翁脚本? 唯一的问题是:最好不要为每个输入重新运行 main.exe 文件。这些程序需要相当长的时间才能首次运行。

excel vba shell automation command-line-interface
© www.soinside.com 2019 - 2024. All rights reserved.