标签: chatgpt-api

如何从 python 检查 OpenAI 密钥的有效性?

当我要求 Chat GPT 完成消息时

import openai
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "What are the trade-offs around deadwood in forests?"}]
)
print(response)
Run Code Online (Sandbox Code Playgroud)

我得到一个RateLimitError: You exceeded your current quota, please check your plan and billing details.

有没有一个Python方法来检查密钥是否有效?

In [35]: openai.api_key
Out[35]: 'sk-...'
Run Code Online (Sandbox Code Playgroud)

python openai-api chatgpt-api

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

OpenAI API 错误:“您尝试访问 openai.ChatCompletion,但 openai>=1.0.0 不再支持此功能”

我目前正在开发一个聊天机器人,由于我使用的是 Windows 11,它不允许我迁移到较新的 OpenAI 库或降级它。ChatCompletion我可以用其他功能替换该功能以在我的版本上使用吗?

这是代码:

import openai

openai.api_key = "private"

def chat_gpt(prompt):
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": prompt}]
    )
    return response.choices[0].message['content'].strip()

if __name__ == "__main__":
    while True:
        user_input = input("You: ")
        if user_input.lower() in ["quit", "exit", "bye"]:
            break
        response = chat_gpt(user_input)
        print("Bot:", response)
Run Code Online (Sandbox Code Playgroud)

这是完整的错误:

...您尝试访问 openai.ChatCompletion,但 openai>=1.0.0 不再支持此功能 - 请参阅https://github.com/openai/openai-python上的API 了解自述文件。

您可以运行openai migrate自动升级您的代码库以使用 1.0.0 界面。

或者,您可以将安装固定到旧版本,例如 <pip install openai==0.28>

此处提供了详细的迁移指南:https ://github.com/openai/openai-python/discussions/742

我尝试通过 pip 进行升级和降级。

python artificial-intelligence pip openai-api chatgpt-api

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

聊天 GPT 响应的格式

我在我的 React 应用程序上使用聊天 gpt api。我面临的问题是如何格式化来自聊天 gpt 的响应。如果要求它以表格格式给我一个响应,它会提供奇怪的响应,我使用预标记来显示文本,响应以这种方式显示附加图像,但我想要正确的表格,就像聊天 gpt 一样,如果我要求的话,以同样的方式它显示为段落形式而不是在不同行上的任何项目列表,因此如何正确格式化聊天 GPT 响应。

我想要正确的表格和列表,如聊天 GPT 显示,但这就是我接收数据的方式 这是使用预标记时数据的显示方式,但我想要正确的表格

javascript formatting reactjs openai-api chatgpt-api

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

如何上传图像作为上下文并提示 GPT4 的 api?

我看到这里有多种图像生成方法: https://platform.openai.com/docs/api-reference/images

但我只是想向聊天 gpt 发送一个 png 文件,问“这是什么?” 或类似的事情,然后得到回复。

openai-api chatgpt-api gpt-4 chat-gpt-4

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

使用 GPT API 创建多消息对话

我正在试验 OpenAI 的 GPT API,并学习如何使用 GPT-3.5-Turbo 模型。我在网上找到了一个快速入门示例:

def generate_chat_completion(messages, model="gpt-3.5-turbo", temperature=1, max_tokens=None):
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {API_KEY}",
    }

    data = {
        "model": model,
        "messages": messages,
        "temperature": temperature,
    }

    max_tokens = 100

    if max_tokens is not None:
        data["max_tokens"] = max_tokens

    response = requests.post(API_ENDPOINT, headers=headers, data=json.dumps(data))

    if response.status_code == 200:
        return response.json()["choices"][0]["message"]["content"]
    else:
        raise Exception(f"Error {response.status_code}: {response.text}")

while 1:
    inputText = input("Enter your message: ")

    messages = [
        {"role": "system", "content": inputText},
    ]

    response_text = generate_chat_completion(messages)
    print(response_text)
Run Code Online (Sandbox Code Playgroud)

具有必要的导入以及代码块上方定义的 API …

python python-requests openai-api gpt-3 chatgpt-api

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

使用Vicuna + langchain + llama_index 创建自托管LLM模型

我想创建一个自托管的 LLM 模型,该模型将能够拥有我自己的自定义数据的上下文(就此而言,Slack 对话)。

我听说 Vicuna 是 ChatGPT 的一个很好的替代品,所以我编写了以下代码:

from llama_index import SimpleDirectoryReader, LangchainEmbedding, GPTListIndex, \
    GPTSimpleVectorIndex, PromptHelper, LLMPredictor, Document, ServiceContext
from langchain.embeddings.huggingface import HuggingFaceEmbeddings
import torch
from langchain.llms.base import LLM
from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM

!export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512
    
class CustomLLM(LLM):
    model_name = "eachadea/vicuna-13b-1.1"
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    model = AutoModelForCausalLM.from_pretrained(model_name)

    pipeline = pipeline("text2text-generation", model=model, tokenizer=tokenizer, device=0,
                        model_kwargs={"torch_dtype":torch.bfloat16})

    def _call(self, prompt, stop=None):
        return self.pipeline(prompt, max_length=9999)[0]["generated_text"]
 
    def _identifying_params(self):
        return {"name_of_model": self.model_name}

    def _llm_type(self):
        return "custom"


llm_predictor = LLMPredictor(llm=CustomLLM())
Run Code Online (Sandbox Code Playgroud)

但遗憾的是我遇到了以下错误:

OutOfMemoryError: CUDA out …
Run Code Online (Sandbox Code Playgroud)

python machine-learning pytorch chatgpt-api langchain

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

系统角色的用例是什么

这是来自 ChatGPT 聊天补全的官方文档:

openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}
    ]
)
Run Code Online (Sandbox Code Playgroud)

我对系统角色的第一个理解是一条只是向用户打招呼的消息。但用“你是一个有用的助手”来问候用户是没有意义的。它还解释了:

系统消息有助于设置助手的行为。在上面的示例中,助理收到的指示是“你是一位乐于助人的助理”。

那么,我是否在系统角色中编写人工智能的行为,例如:You're professional assistant如果我希望人工智能成为专业人士,或者我可以在角色中编写:You're a funny assistant如果我希望它成为一个有趣的人工智能。

或者只是一条问候语?

openai-api chatgpt-api

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

如何使用 OpenAI API 上传文件

为了制作微调的 ChatGPT 模型,我们需要上传训练数据的 JSON 文件。用于文件上传的 OpenAI 文档在这里:

https://platform.openai.com/docs/api-reference/files/upload

但是...我不知道如何附加实际的文件信息。参数file是文件名,而不是文件。一定有一些明显的东西我失踪了!

openai-api chatgpt-api

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

如何在 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
查看次数

如何使用 Langchain 获得更详细的结果来源

我正在尝试使用 Langchain 和特定 URL 作为源数据来整理一个简单的“来源问答”。URL 由一个页面组成,其中包含大量信息。

问题是RetrievalQAWithSourcesChain只给我返回整个 URL 作为结果的来源,这在这种情况下不是很有用。

有没有办法获得更详细的源信息?也许页面上特定部分的标题?指向页面正确部分的可点击 URL 会更有帮助!

我有点不确定 的生成是result source语言模型、URL 加载器的函数还是仅仅是RetrievalQAWithSourcesChain单独的。

我尝试过使用UnstructuredURLLoader和 ,SeleniumURLLoader希望更详细的数据读取和输入会有所帮助 - 遗憾的是没有。

相关代码摘录:

llm = ChatOpenAI(temperature=0, model_name='gpt-3.5-turbo')
chain = RetrievalQAWithSourcesChain.from_llm(llm=llm, retriever=VectorStore.as_retriever())

result = chain({"question": question})

print(result['answer'])
print("\n Sources : ",result['sources'] )
Run Code Online (Sandbox Code Playgroud)

python openai-api gpt-3 chatgpt-api langchain

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