在R中使用ask_chatgpt函数时遇到“Expected an object and got a string instead”问题

我在R中尝试通过多行运行ask_chatgpt函数。这是一个基本的示例:

加载基本信息,不包括API:

### 加载当前的ChatGPT包:https://github.com/jcrodriguez1989/chatgptinstall.packages("chatgpt")library(chatgpt)### 加载GPT APISys.setenv(OPENAI_API_KEY = "XXX")

单独的问题:

### 第一个问题cat(ask_chatgpt("Is Arkansas in the United States?"))

是的,阿肯色州是美国的一个州。它位于该国的南部地区。

### 第二个问题cat(ask_chatgpt("Is Arkansas in India?"))

不,阿肯色州不在印度。阿肯色州是美国的一个州,而印度是位于南亚的一个国家。它们是两个独立且不同的地理位置。

但是,如果我尝试通过dplyr::mutate单独运行这些问题,我会得到以下错误消息:

### 写入数据框test <- data.frame(x = c("Is Arkansas in the United States?", "Is Arkansas in India?"))### ask_chatgpttest <- test %>%  mutate(y = cat(ask_chatgpt(x)))

在`mutate()`中出错:! 在计算`y = ask_chatgpt(x)`时出现问题。由`gpt_get_completions()`中的错误引起:! list(message = “Invalid type for ‘messages[13].content[0]’: expected an object, but got a string instead.”, type = “invalid_request_error”, param = “messages[13].content[0]”, code = “invalid_type”) 回溯:1. test %>% mutate(y = ask_chatgpt(x)) 7. chatgpt::ask_chatgpt(x) 19. chatgpt:::gpt_get_completions(question, messages = chat_session_messages) 20. base::stop(content(post_res))

我该如何解决这个问题?我在文档中没有看到明显的解决方案。谢谢!


回答:

cat()的输出不是R可以进一步处理的对象。如果你想问多个问题并保存答案,可以尝试使用sapply。

test <- data.frame(  x = c("Is Arkansas in the United States?", "Is Arkansas in India?"))test$y <- sapply(test$x, ask_chatgpt)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注