标签: chatgpt-api

OpenAI API:openai.api_key = os.getenv() 不起作用

我只是使用 OpenAI API 在 Python 中尝试一些简单的函数,但遇到了错误:

我有一个正在使用的有效 API 密钥。

代码:

>>> import os
>>> import openai
>>> openai.api_key = os.getenv("I have placed the key here")
>>> response = openai.Completion.create(model="text-davinci-003", prompt="Say this is a test", temperature=0, max_tokens=7)
Run Code Online (Sandbox Code Playgroud)

简单测试

python openai-api gpt-3 chatgpt-api gpt-4

3
推荐指数
1
解决办法
2万
查看次数

使用PHP访问ChatGPT API

我正在编写一个简单的 PHP 脚本,没有依赖项来访问 ChatGPT API,但它抛出了一个我不明白的错误:

这是到目前为止的脚本:

    $apiKey = "Your-API-Key";
    $url = 'https://api.openai.com/v1/chat/completions';  
    
    $headers = array(
        "Authorization: Bearer {$apiKey}",
        "OpenAI-Organization: YOUR-ORG-STRING", 
        "Content-Type: application/json"
    );
    
    // Define messages
    $messages = array();
    $messages["role"] = "user";
    $messages["content"] = "Hello future overlord!";
    
    // Define data
    $data = array();
    $data["model"] = "gpt-3.5-turbo";
    $data["messages"] = $messages;
    $data["max_tokens"] = 50;

    // init curl
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    
    $result = curl_exec($curl);
    if (curl_errno($curl)) {
        echo 'Error:' . curl_error($curl); …
Run Code Online (Sandbox Code Playgroud)

openai-api chatgpt-api

3
推荐指数
1
解决办法
2万
查看次数

OpenAI ChatGPT (GPT-3.5) API:我可以微调 gpt-3.5-turbo 模型吗?

我有一个包含大量数据的 SQL 表,需要使用 Chat Completion API 将 SQL 表数据训练到 ChatGPT。

我尝试使用 ChatGPT 生成 SQL 查询,但这无法按预期工作。有时它会生成不适当的查询。

openai-api chatgpt-api

2
推荐指数
1
解决办法
1万
查看次数

OpenAI ChatGPT (GPT-3.5) API 错误 404:“请求失败,状态代码 404”

我正在开发一个 ChatGPT-App,使用 React 和 Axios 向 OpenAI 的 GPT-3.5 API 发出 API 请求。但是,我在尝试发出请求时遇到 404 错误。我希望有人可以帮助我确定问题并指导我如何解决它。以下是 App.js 和 index.js 代码和错误消息:

前端

应用程序.js

function App() {
  const [messages, setMessages] = useState([]);
  const [input, setInput] = useState("");

  const sendMessage = async () => {
    if (input.trim() === "") return;
  
    const userInput = input; // Store user input in a temporary variable
    setMessages([...messages, { type: "user", text: userInput }]);
    setInput("");
  
    try {
      const response = await axios.post("http://localhost:5000/api/chat", { text: userInput });
      const gptResponse = …
Run Code Online (Sandbox Code Playgroud)

javascript node.js reactjs openai-api chatgpt-api

2
推荐指数
1
解决办法
6630
查看次数

OpenAI API:如何处理 Python 中的错误?

AuthenticationError我尝试使用下面的代码,但 OpenAI API库中没有该方法。我怎样才能有效地处理这样的错误。

import openai

# Set up your OpenAI credentials
openai.api_key = 'YOUR_API_KEY'

try:
    # Perform OpenAI API request
    response = openai.some_function()  # Replace with the appropriate OpenAI API function

    # Process the response
    # ...
except openai.AuthenticationError:
    # Handle the AuthenticationError
    print("Authentication error: Invalid API key or insufficient permissions.")
    # Perform any necessary actions, such as displaying an error message or exiting the program

Run Code Online (Sandbox Code Playgroud)

python openai-api gpt-3 chatgpt-api gpt-4

2
推荐指数
1
解决办法
5160
查看次数

OpenAI API、ChatCompletion 和 Completion 使用相同的参数给出完全不同的答案。为什么?

我正在探索 gpt3.5-turbo 上不同提示的用法。

调查“ChatCompletion”和“Completion”之间的差异,一些参考文献说它们应该或多或少相同,例如:https ://platform.openai.com/docs/guides/gpt/chat-c​​ompletions-vs - 完工量

其他消息来源称,正如预期的那样,ChatCompletion 对于聊天机器人来说更有用,因为你有“角色”(系统、用户和助理),这样你就可以编排一些事情,比如一些例子和/或之前聊天消息的记忆。而完成对于摘要或文本生成更有用。

但差别似乎要大得多。我找不到解释幕后发生的事情的参考资料。

即使使用具有相同参数的相同模型,以下实验也给出了完全不同的结果。

通过聊天完成

import os
import openai
openai.api_type = "azure"
openai.api_version = "2023-03-15-preview"
openai.api_base = ...
openai.api_key = ...

chat_response = openai.ChatCompletion.create(
  engine="my_model", # gpt-35-turbo
  messages = [{"role":"user","content":"Give me something intresting:\n"}],
  temperature=0,
  max_tokens=800,
  top_p=0.95,
  frequency_penalty=0,
  presence_penalty=0,
  stop=None)

print(chat_response.choices[0]['message']['content'])
Run Code Online (Sandbox Code Playgroud)

结果是关于战争的事实:

Did you know that the shortest war in history was between Britain and Zanzibar in 1896? It lasted only 38 minutes!
Run Code Online (Sandbox Code Playgroud)

完成后

Did you know that the shortest war in history …
Run Code Online (Sandbox Code Playgroud)

python openai-api azure-openai chatgpt-api

2
推荐指数
1
解决办法
4330
查看次数

OpenAI ChatGPT (GPT-3.5) API:如何从响应中提取消息内容?

当收到来自 OpenAI 模型的响应时text-davinci-003,我能够使用以下 PHP 代码从响应中提取文本:

$response = $response->choices[0]->text;
Run Code Online (Sandbox Code Playgroud)

这是text-davinci-003响应代码:

{
  "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
  "object": "text_completion",
  "created": 1589478378,
  "model": "text-davinci-003",
  "choices": [
    {
      "text": "\n\nThis is indeed a test",
      "index": 0,
      "logprobs": null,
      "finish_reason": "length"
    }
  ],
  "usage": {
    "prompt_tokens": 5,
    "completion_tokens": 7,
    "total_tokens": 12
  }
}
Run Code Online (Sandbox Code Playgroud)

我现在尝试更改我的代码以使用最近发布的gpt-3.5-turbo模型,该模型返回的响应略有不同:

{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "\n\nHello there, how may I assist you today?",
    },
    "finish_reason": "stop"
  }], …
Run Code Online (Sandbox Code Playgroud)

php openai-api chatgpt-api

1
推荐指数
1
解决办法
8967
查看次数

OpenAI ChatGPT (GPT-3.5) API:为什么我得到 NULL 响应?

我正在尝试对新发布的模型执行 API 调用gpt-3.5-turbo,并具有以下代码,该代码$query应向 API 发送查询(通过变量),然后从 API 中提取响应消息的内容。

但我每次通话都收到空响应。有什么想法我做错了什么吗?

$ch = curl_init();

$query = "What is the capital city of England?";

$url = 'https://api.openai.com/v1/chat/completions';

$api_key = 'sk-**************************************';

$post_fields = [
    "model" => "gpt-3.5-turbo",
    "messages" => ["role" => "user","content" => $query],
    "max_tokens" => 500,
    "temperature" => 0.8
];

$header  = [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $api_key
];

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_fields));
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

$result = curl_exec($ch);
if …
Run Code Online (Sandbox Code Playgroud)

php curl openai-api chatgpt-api

1
推荐指数
1
解决办法
6496
查看次数

如何从聊天 gpt 响应中仅提取代码内容?

我使用api( )chatGpt生成 SQL 查询并将其作为模型。openai/v1/chat/completionsgpt-3.5-turbo

但我在从响应中提取 SQL 查询时遇到困难。因为有时 chatGpt 会为查询提供一些解释,有时则不会。我尝试过使用正则表达式,但它不可靠。

regex = r"SELECT .*?;"
match = re.search(regex, result)
if match:
   sql_query = match.group()
   print(sql_query)
Run Code Online (Sandbox Code Playgroud)

是否有其他方法可以从响应中仅提取代码部分?

sql code-generation openai-api gpt-3 chatgpt-api

1
推荐指数
1
解决办法
6032
查看次数

OpenAI ChatGPT (GPT-3.5) API 错误:“无效 URL (POST /v1/engines/gpt-3.5-turbo/chat/completions)”

我正在使用 OpenAI 来了解有关 API 集成的更多信息,但在运行 Python 程序时我不断运行此代码。我向 ChatGPT 询问了该Invalid URL (POST /v1/engines/gpt-3.5-turbo/chat/completions)错误,但它似乎没有给我正确的解决方案。

注意:我确实安装了最新的 OpenAI 软件包(即0.27.4)。

代码:

import os
import openai
openai.api_key = "sk-xxxxxxxxxxxxxxxxxxxx"

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Tell me a joke."}
]

response = openai.ChatCompletion.create(
    engine="gpt-3.5-turbo",
    messages=messages,
    max_tokens=50,
    n=1,
    stop=None,
    temperature=0.7,
)

joke = response.choices[0].text.strip()
print(joke)
Run Code Online (Sandbox Code Playgroud)

python python-3.x openai-api chatgpt-api

1
推荐指数
1
解决办法
1479
查看次数

使用 python、AutoGPT 和 ChatGPT 从下载的 HTML 页面中提取数据

注意:如果您投反对票,至少请分享原因。我花了很多精力来写这个问题,首先分享了我的代码并做了我自己的研究,所以不确定我还可以添加什么。

我已经使用Scrapy成功抓取网站。我使用 CSS 选择器从网页中提取特定数据。然而,设置起来非常耗时并且容易出错。我希望能够将原始 HTML 传递给 chatGPT 并提出如下问题

“以 JSON 对象格式提供该对象的价格、照片数组、描述、主要功能、街道地址和邮政编码”

下面是所需的输出。为了便于阅读,我截断了描述、主要功能和照片。

{
"price":"$945,000",
"photos":"https://media-cloud.corcoranlabs.com/filters:format(webp)/fit-in/1500x1500/ListingFullAPI/NewTaxi/7625191/mediarouting.vestahub.com/Media/134542874?w=3840&q=75;https://media-cloud.corcoranlabs.com/filters:format(webp)/fit-in/1500x1500/ListingFullAPI/NewTaxi/7625191/mediarouting.vestahub.com/Media/134542875?w=3840&q=75;https://media-cloud.corcoranlabs.com/filters:format(webp)/fit-in/1500x1500/ListingFullAPI/NewTaxi/7625191/mediarouting.vestahub.com/Media/134542876?w=3840&q=75",
"description":"<div>This spacious 2 bedroom 1 bath home easily converts to 3 bedrooms. Featuring a BRIGHT and quiet southern exposure, the expansive great room (with 9ft ceilings) is what sets (...)",
"key features":"Center island;Central air;Dining in living room;Dishwasher",
"street address":"170 West 89th Street, 2D",
"zipcode":"NY 10024",
}
Run Code Online (Sandbox Code Playgroud)

现在我遇到的最大聊天长度为 4096 个字符。所以我决定分块发送页面。然而,即使有一个简单的问题,例如“这个物品的价格是多少?” 我预计答案是“945,000 美元”,但我只收到一大堆文字。我想知道我做错了什么。我听说 AutoGPT 提供了新的灵活性,所以我也想知道这是否可以作为一个解决方案。

我的代码:

import requests
from bs4 import BeautifulSoup, Comment
import openai
import json …
Run Code Online (Sandbox Code Playgroud)

python openai-api chatgpt-api autogpt

1
推荐指数
1
解决办法
2343
查看次数

在进行 api 调用之前如何计算令牌?

import { Configuration, OpenAIApi } from "openai"
import { readFile } from './readFile.js'

// Config OpenAI API
const configuration = new Configuration({
    organization: "xyx......",
    apiKey: "abc.......",
});

// OpenAI API instance
export const openai = new OpenAIApi(configuration);


const generateAnswer = async (conversation, userMessage) => {
    try {
        const dataset = await readFile();
        const dataFeed = { role: 'system', content: dataset };
        const prompt = conversation ? [...conversation?.messages, dataFeed, userMessage] : [dataFeed, userMessage];
        const completion = await openai.createChatCompletion({
            model: "gpt-3.5-turbo",
            messages: …
Run Code Online (Sandbox Code Playgroud)

node.js chatgpt-api

1
推荐指数
2
解决办法
4819
查看次数

OpenAI 微调 API:为什么我要使用 LlamaIndex 或 LangChain 而不是微调模型?

我刚刚开始使用法学硕士,特别是 OpenAI 和其他 OSS 模型。有很多关于使用 LlamaIndex 创建所有文档的存储然后查询它们的指南。我用一些示例文档进行了尝试,但发现每个查询很快就会变得非常昂贵。我想我使用了 50 页的 PDF 文档,摘要查询每次查询花费了大约 1.5 美元。我看到有很多令牌被发送,所以我假设它为每个查询发送整个文档。考虑到有人可能想要使用数以千万计的记录,我看不出像 LlamaIndex 这样的东西如何能够以经济高效的方式真正发挥作用。

另一方面,我看到 OpenAI 允许你训练 ChatGPT 模型。或者使用其他经过定制培训的法学硕士来查询您自己的数据不是更便宜、更有效吗?我为什么要设置 LlamaIndex?

language-model openai-api chatgpt-api llama-index langchain

1
推荐指数
1
解决办法
3140
查看次数