标签: openai-api

NotImplementedError:不支持加载本地文件系统中缓存的数据集

我尝试使用datasets本地 Python 笔记本中的 python 模块加载数据集。我正在运行 Python 3.10.13 内核,就像我为虚拟环境所做的那样。

我无法加载我从教程中遵循的数据集。这是错误:

---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
/Users/ari/Downloads/00-fine-tuning.ipynb Celda 2 line 3
      1 from datasets import load_dataset
----> 3 data = load_dataset(
      4     "jamescalam/agent-conversations-retrieval-tool",
      5     split="train"
      6 )
      7 data

File ~/Documents/fastapi_language_tutor/env/lib/python3.10/site-packages/datasets/load.py:2149, in load_dataset(path, name, data_dir, data_files, split, cache_dir, features, download_config, download_mode, verification_mode, ignore_verifications, keep_in_memory, save_infos, revision, token, use_auth_token, task, streaming, num_proc, storage_options, **config_kwargs)
   2145 # Build dataset for splits
   2146 keep_in_memory = (
   2147     keep_in_memory if keep_in_memory is …
Run Code Online (Sandbox Code Playgroud)

python python-3.x openai-api huggingface-datasets

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

FastAPI StreamingResponse 不使用生成器函数进行流式传输

我有一个相对简单的 FastAPI 应用程序,它接受查询并从 ChatGPT 的 API 流回响应。ChatGPT 正在流回结果,我可以看到它在输入时被打印到控制台。

不工作的是StreamingResponse通过 FastAPI 返回。相反,响应会一起发送。我真的不知道为什么这不起作用。

这是 FastAPI 应用程序代码:

import os
import time

import openai

import fastapi
from fastapi import Depends, HTTPException, status, Request
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
from fastapi.responses import StreamingResponse

auth_scheme = HTTPBearer()
app = fastapi.FastAPI()

openai.api_key = os.environ["OPENAI_API_KEY"]


def ask_statesman(query: str):
    #prompt = router(query)
    
    completion_reason = None
    response = ""
    while not completion_reason or completion_reason == "length":
        openai_stream = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=[{"role": "user", "content": query}],
            temperature=0.0,
            stream=True,
        )
        for …
Run Code Online (Sandbox Code Playgroud)

python streaming python-requests fastapi openai-api

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

LangChain中的OpenAI和ChatOpenAI有什么区别?

我阅读了 LangChain快速入门

里面有一个demo:

from langchain.llms import OpenAI
from langchain.chat_models import ChatOpenAI

llm = OpenAI()
chat_model = ChatOpenAI()

llm.predict("hi!")
>>> "Hi"

chat_model.predict("hi!")
>>> "Hi"
Run Code Online (Sandbox Code Playgroud)

我搜索了文档的其余部分以及在线搜索,但没有找到任何有关 OpenAI 和 ChatOpenAI 之间差异的信息。

基于from langchain.llms import OpenAI,OpenAI 是一个大型语言模型(LLM),也与聊天相关。

那么 OpenAI 是否更通用,而 ChatOpenAI 更专注于聊天呢?

OpenAI浪链中的class和class有什么区别ChatOpenAI?有人可以澄清一下吗?

openai-api langchain

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

OpenAI GPT-4 API:gpt-4 和 gpt-4-0314 或 gpt-4-0613 之间有什么区别?

gpt-4注意:这个问题最初是问和之间的区别gpt-4-0314。截至 2023 年 6 月 15 日,有新的快照模型可用(例如gpt-4-0613),因此问题及其答案也与接下来几个月内出现的任何未来快照模型相关。

谁能帮我解释一下gpt-4gpt-4-0314(出现在下面的 OpenAI Playground 下拉菜单中)之间的区别吗?我检查了各种搜索引擎,从 OpenAI 论坛结果来看并不清楚。

在此输入图像描述

GPT-4-0314 可能指 GPT-4 的特定版本或发行版,具有一组特定的更新或改进,可能于 3 月 14 日发布。任何有任何差异经验的人都欢迎提供反馈。

openai-api gpt-4

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

OpenAI API 拒绝设置不安全标头“User-Agent”

我不明白为什么我会收到此错误。

拒绝设置不安全标头“User-Agent”

我正在尝试将 OpenAI 的 API 用于个人项目。我不明白为什么它拒绝设置这个“不安全的标头”以及如何或是否可以使其安全。我尝试用谷歌搜索这个问题,顶部的链接是一个 GitHub 论坛,它解释了 Chrome 可能会做的事情,但是我尝试在 Safari 中使用该应用程序,但它也不起作用。

const onFormSubmit = (e) => {
    e.preventDefault();

    const formData = new FormData(e.target),
      formDataObj = Object.fromEntries(formData.entries())
    console.log(formDataObj.foodDescription);

    //////OPENAI
    const configuration = new Configuration({
      apiKey: process.env.REACT_APP_OPENAI_API_KEY,
    });
    const openai = new OpenAIApi(configuration);

    openai.createCompletion("text-curie-001", {
      prompt: `generate food suggestions from the following flavor cravings: ${formDataObj.foodDescription}`,
      temperature: 0.8,
      max_tokens: 256,
      top_p: 1,
      frequency_penalty: 0,
      presence_penalty: 0,
    })
    .then((response) => {
      setState({
        heading: `AI Food Suggestions for: ${formDataObj.foodDescription}`,
        response: `${response.data.choices[0].text}`
      });
    }) …
Run Code Online (Sandbox Code Playgroud)

forms submit reactjs openai-api

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

如何流式传输 OpenAI 的完成 API?

我想通过 OpenAI 的 API传输完成结果。

该文档提到使用服务器发送的事件- 似乎这对于 Flask 来说并不是开箱即用的,所以我试图在客户端进行处理(我知道这会暴露 API 密钥)。但是,由于 OpenAI API 要求将其发布,因此它似乎与 eventSource API 不兼容。我尝试通过 fetch (使用可读流)来完成此操作,但是当我尝试通过示例转换为 JSON 时,出现以下错误:(Uncaught (in promise) SyntaxError: Unexpected token 'd', "data: {"id"... is not valid JSON我知道这不是有效的 JSON)。看起来它正在解析整个结果而不是每个单独的流。

data: {"id": "cmpl-5l11I1kS2n99uzNiNVpTjHi3kyied", "object": "text_completion", "created": 1661887020, "choices": [{"text": " to", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-002"}

data: {"id": "cmpl-5l11I1kS2n99uzNiNVpTjHi3kyied", "object": "text_completion", "created": 1661887020, "choices": [{"text": " AL", "index": 0, "logprobs": null, "finish_reason": null}], …
Run Code Online (Sandbox Code Playgroud)

javascript openai-api

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

如何继续openai API响应不完整

在 OpenAI API 中,如何以编程方式检查响应是否不完整?如果是这样,您可以添加另一个命令,例如“继续”或“扩展”,或者以编程方式完美地继续它。

\n

根据我的经验,\n我知道如果响应不完整,API 将返回:

\n
"finish_reason": "length"\n
Run Code Online (Sandbox Code Playgroud)\n

但如果响应超过 4000 个令牌,它就不起作用,因为您还需要将先前的响应(对话)传递给新的响应(对话)。如果响应是 4500,它将返回 4000 个令牌,但您无法获取剩余的 500 个令牌,因为每个对话的最大令牌是 4000 个令牌。如果我错了请纠正我。

\n

这是我的代码,请注意,提示只是一个示例提示。实际上,我的提示也很长,因为我还无法微调 gpt 3.5,我需要根据我的提示来训练它。

\n
def chat_openai(prompt) -> dict:\n\n    conversation = [{'role': 'user', 'content': prompt}]\n    response, answer = None, ''\n    for idx, api_key in enumerate(openai_api_keys):\n        try:\n            openai.api_key = api_key\n            response = openai.ChatCompletion.create(model='gpt-3.5-turbo', messages=conversation, temperature=1)\n            answer += response.choices[0].message.content\n            conversation.append({'role': response.choices[0].message.role, 'content': answer})\n            # Move successful API at the start of array\n            if idx: openai_api_keys[0], openai_api_keys[idx] = openai_api_keys[idx], openai_api_keys[0]\n            break\n        except …
Run Code Online (Sandbox Code Playgroud)

python artificial-intelligence machine-learning openai-api chatgpt-api

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

OpenAI:流中断(客户端断开连接)

我正在尝试 OpenAI。

\n

我已经准备好了训练数据,并使用了fine_tunes.create. 几分钟后,显示Stream interrupted (client disconnected)

\n
$ openai api fine_tunes.create -t data_prepared.jsonl\nUpload progress: 100%|\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88| 47.2k/47.2k [00:00<00:00, 44.3Mit/s]\nUploaded file from data_prepared.jsonl: file-r6dbTH7rVsp6jJMgbX0L0bZx\nCreated fine-tune: ft-JRGzkYfXm7wnScUxRSBA2M2h\nStreaming events until fine-tuning is complete...\n\n(Ctrl-C will interrupt the stream, but not cancel the fine-tune)\n[2022-12-02 11:10:08] Created fine-tune: ft-JRGzkYfXm7wnScUxRSBA2M2h\n[2022-12-02 11:10:23] Fine-tune costs $0.06\n[2022-12-02 11:10:24] Fine-tune enqueued. Queue number: 11\n\nStream interrupted (client disconnected).\nTo resume the stream, run:\n\n  openai api fine_tunes.follow -i ft-JRGzkYfXm7wnScUxRSBA2M2h\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试了fine_tunes.follow,几分钟后,仍然失败:

\n
$ openai api fine_tunes.follow -i …
Run Code Online (Sandbox Code Playgroud)

openai-api gpt-3

11
推荐指数
2
解决办法
7026
查看次数

如何使用 OpenAI 的 API 进行批量嵌入?

我正在使用 OpenAI API 来获取一堆句子的嵌入。我所说的一堆句子,是指一堆句子,比如数千个。有没有办法让它更快或者让它同时进行嵌入或者其他什么?

我尝试循环遍历并发送每个句子的请求,但这非常慢,但发送句子列表也是如此。对于这两种情况,我都使用了以下代码:'''

response = requests.post(
    "https://api.openai.com/v1/embeddings",
    json={
        "model": "text-embedding-ada-002",
        "input": ["text:This is a test", "text:This is another test", "text:This is a third test", "text:This is a fourth test", "text:This is a fifth test", "text:This is a sixth test", "text:This is a seventh test", "text:This is a eighth test", "text:This is a ninth test", "text:This is a tenth test", "text:This is a eleventh test", "text:This is a twelfth test", "text:This is a thirteenth test", "text:This is a fourteenth …
Run Code Online (Sandbox Code Playgroud)

python embedding openai-api

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

在 langchain 中一起使用 Chain 和 Parser

langchain 文档包含此示例,用于配置和调用PydanticOutputParser

# Define your desired data structure.
class Joke(BaseModel):
    setup: str = Field(description="question to set up a joke")
    punchline: str = Field(description="answer to resolve the joke")
    
    # You can add custom validation logic easily with Pydantic.
    @validator('setup')
    def question_ends_with_question_mark(cls, field):
        if field[-1] != '?':
            raise ValueError("Badly formed question!")
        return field

# And a query intented to prompt a language model to populate the data structure.
joke_query = "Tell me a joke."

# Set up a parser + …
Run Code Online (Sandbox Code Playgroud)

openai-api langchain

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