标签: chatgpt-api

如何在 Python 中使用 ChatGPT 和 langchain 将上下文/聊天历史合并到 OpenAI ChatBot 中?

请耐心等待,因为这确实是我编写的第一个主要代码,并且是针对 OpenAI 的 ChatGPT API 的。

我打算用这段代码做的是加载一个pdf文档或一组pdf文档。然后把它们分开,以免用完我的代币。然后,用户会提出与所述文档相关的问题,机器人会做出回应。我遇到的问题是,我希望机器人在我提出新问题时能够理解上下文。例如: Q1:什么是瓢虫?A1:瓢虫是甲虫的一种等等等等...... Q2:它们是什么颜色的?A2:它们可以有各种颜色等等等等... Q3:在哪里可以找到它们?A3:瓢虫遍布世界各地......

但我似乎无法启动并运行我的代码。相反,这是我得到的输出: 当我提出需要机器人了解上下文的后续问题时我得到什么

**这是代码:**

import os
import platform

import openai
import gradio as gr
import chromadb
import langchain

from langchain.chat_models import ChatOpenAI
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma
from langchain.text_splitter import TokenTextSplitter

from langchain.document_loaders import PyPDFLoader
from langchain.prompts.prompt import PromptTemplate
from langchain.chains import ConversationalRetrievalChain
from langchain.memory import ConversationBufferMemory

#OpenAI API Key goes here
os.environ["OPENAI_API_KEY"] = 'sk-xxxxxxx'

#load the data here. 
def get_document():
    loader = PyPDFLoader('docs/ladybug.pdf')
    data = loader.load()
    return …
Run Code Online (Sandbox Code Playgroud)

python openai-api chatgpt-api langchain py-langchain

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

OpenAI ChatGPT (GPT-3.5) API 错误:“openai.createChatCompletion 不是函数”

我的 MERN 堆栈代码文件中有这个,并且运行良好。

exports.chatbot = async (req, res) => {
  console.log("OpenAI Chatbot Post");

  const { textInput } = req.body;

  try {

    const response = await openai.createCompletion({
      model: "text-davinci-003",
      prompt: `
            What is your name?
            My name is Chatbot.
            How old are you?
            I am 900 years old.
            ${textInput}`,
      max_tokens: 100,
      temperature: 0,
    });
    if (response.data) {
      if (response.data.choices[0].text) {
        return res.status(200).json(response.data.choices[0].text);
      }
    }
  } catch (err) {
    return res.status(404).json({ message: err.message });
  }
};
Run Code Online (Sandbox Code Playgroud)

当我更改API请求时,使用新的API来完成聊天,这个不起作用(API代码来自openAI网站,并且适用于postman)


exports.chatbot = async (req, res) …
Run Code Online (Sandbox Code Playgroud)

axios openai-api chatgpt-api

5
推荐指数
2
解决办法
6938
查看次数

OpenAI ChatGPT (GPT-3.5) API 错误 400:“错误请求”(从 GPT-3 API 迁移到 GPT-3.5 API)

尝试调用刚刚为 ChatGPT 发布的 got-3.5-turbo API,但我收到了错误的请求错误?


    var body = new
                    {
                        model = "gpt-3.5-turbo",
                        messages = data
                    };

                    string jsonMessage = JsonConvert.SerializeObject(body);

  using (HttpClient client = new HttpClient())
                    {
                        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

                        HttpRequestMessage requestMessage = new
                        HttpRequestMessage(HttpMethod.Post, "https://api.openai.com/v1/completions")
                        {
                            Content = new StringContent(jsonMessage, Encoding.UTF8, "application/json")
                        };

                        string api_key = PageExtension_CurrentUser.Community.CAIChatGPTAPIKey.Length > 30 ? PageExtension_CurrentUser.Community.CAIChatGPTAPIKey : Genesis.Generic.ReadAppSettingsValue("chatGPTAPIKey");
                        requestMessage.Headers.Add("Authorization", $"Bearer {api_key}");

                        HttpResponseMessage response = client.SendAsync(requestMessage).Result;
                        if (response.StatusCode == HttpStatusCode.OK)
                        {
                            string responseData = response.Content.ReadAsStringAsync().Result;
                            dynamic responseObj = JsonConvert.DeserializeObject(responseData);
                            string choices = responseObj.choices[0].text;
                           
                    } …
Run Code Online (Sandbox Code Playgroud)

post openai-api chatgpt-api

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

OpenAI API 404 响应

我正在尝试将 ChatGPT 用于我的Telegram机器人。我曾经使用“text-davinci-003”模型,它运行良好(即使现在也运行良好),但我对其响应不满意。

现在我尝试将模型更改为“gpt-3.5-turbo”,它抛出一个 404 响应代码,其中包含文本“错误:请求失败,状态代码 404”,仅此而已。这是我的代码:

import { Configuration, OpenAIApi } from "openai";
import { env } from "../utils/env.js";

const model = "gpt-3.5-turbo"; // works fine when it's "text-davinci-003"
const configuration = new Configuration({
  apiKey: env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);

export async function getChatGptResponse(request) {
  try {
    const response = await openai.createCompletion({
      model,
      prompt: request, // request comes as a string
      max_tokens: 2000,
      temperature: 1,
      stream: false
    });

    console.log("Full response: ", response, `Choices: `, ...response.data.choices) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js telegram-bot openai-api chatgpt-api

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

openai.error.APIConnectionError:与 OpenAI 通信时出错

当我的项目运行此代码时它将返回 openai.error.APIConnectionError: Error communicating with OpenAI

async def embeddings_acreate(input: list[str]):
    
    return await openai.Embedding.acreate(
        api_key=await get_openai_api_key(),
        model='text-embedding-ada-002',
        input=input,
        timeout=60,
    )
Run Code Online (Sandbox Code Playgroud)

但如果我尝试:

import openai
import logging


openai.api_key = 'secret'

input_list = [
    "tell me your name"
]

response = openai.Embedding.create(
    model="text-embedding-ada-002",
    input=input_list
)

embeddings = response["data"]
print(embeddings)
Run Code Online (Sandbox Code Playgroud)

有效......

我希望使用异步并使其

python asynchronous embedding openai-api chatgpt-api

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

ChatGPT 响应中的 Markdown 或格式化文本

我刚刚确认,使用 API 进行聊天完成时,响应是纯文本形式的。

如何格式化响应中的文本,至少是新行、表格、项目符号点、标题......类似的东西?

openai-api chatgpt-api

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

使用 firebase 云函数作为后端时,有没有办法流式传输 OpenAI (chatGPT) 响应?

我目前正在使用 OpenAI 的 ChatGPT 和 Firebase Cloud Functions 作为后端构建一个聊天机器人。我想创建一种实时聊天体验,其中来自 ChatGPT 的响应在生成时会流回客户端。然而,我在实现这一目标方面面临一些挑战。

我已成功将 ChatGPT 与 Firebase Cloud Functions 集成,并且可以进行 API 调用来生成响应。但问题是,只有在生成整个响应时才会返回响应,从而导致用户收到任何输出之前出现延迟。

有没有办法在 ChatGPT 生成响应时实时传输响应,而不是等待完整响应?我希望用户尽快看到每个部分响应。

这是我当前代码的简化版本:

// Firebase Cloud Functions endpoint
exports.chat = functions.https.onRequest(async (req, res) => {
  const { message } = req.body;

  // Make API call to OpenAI ChatGPT
  const response = await openai.complete({
    model: 'gpt-3.5-turbo',
    stream: true,
    messages: [{ role: 'system', content: 'You are a helpful assistant.' }, { role: 'user', content: message }],
  });

  // Process the response …
Run Code Online (Sandbox Code Playgroud)

firebase google-cloud-functions openai-api chatgpt-api

5
推荐指数
0
解决办法
1564
查看次数

使用GPT-4 API时,我需要每次都发回整个对话吗?

我是 OpenAI API 的新手。我使用 GPT-3.5-Turbo,使用以下代码:

\n
messages = [\n        {"role": "system", "content": "You\xe2\x80\x99re a helpful assistant"}\n    ]\n\n    while True:\n        content = input("User: ")\n        if content == 'end':\n            save_log(messages)\n            break\n        messages.append({"role": "user", "content": content})\n\n        completion = openai.ChatCompletion.create(\n            model="gpt-3.5-turbo-16k",\n            messages=messages\n        )\n\n        chat_response = completion.choices[0].message.content\n        print(f'ChatGPT: {chat_response}')\n        messages.append({"role": "assistant", "content": chat_response})\n
Run Code Online (Sandbox Code Playgroud)\n

结果:\n用户:谁是第一个登上月球的人?\nGPT:第一个踏上月球的人是美国宇航员尼尔·阿姆斯特朗,于 1969 年 7 月 20 日执行 NASA 阿波罗 11 号任务。\ n用户:他有多高?\nGPT:尼尔阿姆斯特朗身高约为 5 英尺 11 英寸(180 厘米)。

\n

但它需要大量的代币。我听说 GPT-4 与 GPT-3 的不同之处在于它能够(自行)记住之前的消息。那是对的吗?

\n

但是,如果我删除在“消息”列表中附加最新消息的行并仅发送一条消息:\n completion = openai.ChatCompletion.create( model="gpt-4", messages=[{"role": …

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

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

为Langchain创建load_summarize_chain,指定chain_type=map_reduce。使用提示时出现错误

我正在尝试使用我自己创建的提示为 Langchain 创建 load_summarize_chain 。

\n
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.7)\nPROMPT = PromptTemplate(template=prompt_template, input_variables=["text"])\nchain = load_summarize_chain(llm, chain_type="refine", verbose=True, prompt=PROMPT)\n
Run Code Online (Sandbox Code Playgroud)\n

但是,只有当 chain_type 设置为“stuff”时,我才能成功创建链。当我尝试将其指定为“map_reduce”或“refine”时,我收到如下错误消息:

\n
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.7)\nPROMPT = PromptTemplate(template=prompt_template, input_variables=["text"])\nchain = load_summarize_chain(llm, chain_type="refine", verbose=True, prompt=PROMPT)\n
Run Code Online (Sandbox Code Playgroud)\n

这是怎么回事\xef\xbc\x9f

\n

我认为这可能是因为“map_reduce”或“refine”无法直接在load_summarize_chain,或者其他一些原因。

\n

python openai-api chatgpt-api langchain

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

如何使用 ChatGPT / Vision python API 分析 PDF?

我有一个 pdf 文件列表,我想分析每个文档的第一页以提取信息。我尝试过很多免费和付费的 OCR,但就我而言,结果还不够好。

所以我想尝试在Python中使用ChatGPT API。我该怎么办?

另外,我在openAI Vision文档中看到有一个detail参数,但没有提供示例,我该如何使用这个参数?

python pdf openai-api chatgpt-api

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