Tag: 网络

  • 如何避免ChatGPT 3.5在国内使用被封号?

    如何避免ChatGPT 3.5在国内使用被封号?

    在使用ChatGPT 3.5这款强大的生成式人工智能时,许多国内用户都担心封号的问题。虽然封号问题一直存在,但是你可以采取一些措施来降低被封号的风险。本文将介绍一些方法,帮助你更安全地使用ChatGPT 3.5,并避免账号被封的情况。


    1. 使用合法的注册信息:
    封号的一个主要原因是使用不合法的注册信息。在注册时,尽量使用合法的信息,如英国、欧洲或日本的手机号。避免使用+86开头的手机号,因为OpenAI并没有开放国内使用权限。

    2. 避免商用和二次开发:
    个人用户应遵守OpenAI的使用规定,不允许用于商业用途或二次开发。避免使用未经授权的、盗版的ChatGPT版本。大量频繁的API调用也容易引发封号。

    3. 模拟海外使用场景:
    要降低被封号的风险,可以尽可能模拟海外用户的使用场景:

    • 保持稳定的上网环境:如果你使用魔法环境,尽量使用固定的IP地址,或者至少保持相对稳定的区域设置,比如将魔法上网环境定位在海外地址。
    • 正常使用:避免频繁切换网络或频繁调用API。保持正常的使用模式。

    4. 使用谷歌账号授权登录:
    根据目前的情况,使用谷歌账号授权登录的方式可能降低被封号的概率。相对来说,outlook和hotmail等方式已经不太可行,国内的QQ邮箱或163邮箱更不建议使用。

    5. 使用稳定的中转服务器:
    如果需要在本地搭建API来使用ChatGPT,确保使用稳定的中转服务器,避免频繁切换访问网络来调用API。


    结论:
    封号问题在使用ChatGPT 3.5时确实存在,但你可以采取一些预防措施来降低被封号的风险。使用合法的注册信息,避免商用和二次开发,模拟海外使用场景,使用谷歌账号授权登录,以及使用稳定的中转服务器都是降低封号风险的有效方法。保持合规和谨慎使用将有助于你更长时间地享受ChatGPT 3.5的服务。

  • DeOldify:一次颠覆性的图像着色技术

    DeOldify:一次颠覆性的图像着色技术

    DeOldify是一项颠覆性的图像着色项目,它利用深度学习技术,特别是生成对抗网络(GANs),将黑白照片和视频变成彩色。该项目的目标是恢复和改善老照片和电影片段的质量,使它们看起来更加栩栩如生。在本文中,我们将探讨DeOldify的关键特点、技术细节以及如何开始使用它。

    DeOldify的关键特点

    DeOldify的最新版本具有以下关键特点:

    1. 消除几乎所有的错误和伪影:该项目的新版本几乎完全消除了颜色化过程中出现的错误和伪影,使最终结果更加干净和准确。

    2. 改进的皮肤着色:新版本的DeOldify在着色皮肤方面表现更好,避免了以前版本中可能出现的“僵尸”效果。

    3. 更高分辨率的图像:该项目支持高分辨率图像,因此能够生成更清晰和更精细的彩色图像。

    4. 适用于视频:DeOldify的最新版本能够处理视频,生成稳定且无闪烁的彩色视频。

    5. NoGAN技术:NoGAN是一种新型的GAN训练方法,它允许获得GAN训练的好处,同时减少了直接GAN训练的时间和不良影响。

    技术细节

    DeOldify的技术基础包括以下关键部分:

    1. 生成对抗网络(GANs):DeOldify使用GANs来进行图像彩色化。GANs包括生成器和评论家两个部分,通过对抗训练来生成更逼真的彩色图像。

    2. 自注意生成对抗网络:生成器是基于自注意机制的U-Net,具有谱归一化和自注意机制,以提高渲染效果。

    3. 两个时间尺度更新规则:该规则指定了生成器和评论家的迭代次数,以改进GAN的训练效果。

    4. NoGAN技术:NoGAN是一种新型的GAN训练方法,它将生成器和评论家分开进行预训练,然后仅在非常短的时间内进行实际的GAN训练。这有助于减少训练时间和减轻GAN训练可能导致的问题。

    如何开始使用DeOldify

    要开始使用DeOldify,你有两种主要选择:

    最简单的方法

    最简单的方法是使用Colab笔记本。以下是可用的Colab笔记本链接:

    你可以在Colab笔记本中按照说明进行操作,无需在本地设置任何环境。

    自己的机器(稍微复杂一些)

    如果你想在本地机器上运行DeOldify,以下是一些基本要求和步骤:

    硬件和操作系统要求

    • 强大的显卡:如果你想进行训练,建议使用显存大于11GB的显卡。对于仅进行图像着色,约4GB或更多显存的显卡应足够。
    • Linux操作系统:DeOldify在Linux上运行良好,特别是在Ubuntu 18.04或16.04上。不支持Windows操作系统。

    安装步骤

    1. 克隆DeOldify存储库:
    git clone https://github.com/jantic/DeOldify.git DeOldify
    cd DeOldify
    1. 创建并激活conda环境:
    conda env create -f environment.yml
    source activate deoldify
    1. 启动Jupyter Lab:
    jupyter lab

    从这里,你可以在Jupyter Lab中运行相应的笔记本并使用DeOldify。

    结论

    DeOldify是一项令人印象深刻的图像着色项目,能够将黑白照片和视频转换为令人惊叹的彩色版本。它的最新版本不仅改进了渲染质量,还支持高分辨率图像和视频。你可以使用Colab笔记本轻松开始使用它,或者在本地机器上设置环境以更深入地探索其功能。无论你选择哪种方式,DeOldify都为改善老照片和电影片段提供了有趣且有用的工具。

  • 项目介绍:Drag Your GAN – 交互式基于点的生成图像操作

    项目介绍:Drag Your GAN – 交互式基于点的生成图像操作

    欢迎来到”Drag Your GAN”项目,这是一个令人兴奋的工具,它让你可以与生成式对抗网络(GAN)互动,实现对生成图像的点操作。这个项目由一群顶尖的研究人员共同开发,包括Xingang Pan、Ayush Tewari、Thomas Leimkühler、Lingjie Liu、Abhimitra Meka和Christian Theobalt。本项目旨在让你能够以交互方式编辑和操作生成的图像,从而创造出令人惊叹的视觉效果。

    SIGGRAPH 2023 会议论文

    “Drag Your GAN”项目将在SIGGRAPH 2023会议论文中首次亮相。这是一个备受期待的研究成果,你可以在这里找到详细的研究论文。

    项目特点

    • 交互式编辑:你可以通过点击和拖拽的方式编辑生成的图像,实现点操作,从而创造独特的视觉效果。

    如何开始

    环境配置

    如果你拥有CUDA显卡,请按照NVlabs/stylegan3的要求进行环境配置。一般的安装步骤包括以下命令,它们将设置正确的CUDA版本和所有Python包:

    conda env create -f environment.yml
    conda activate stylegan3

    然后安装额外的要求:

    pip install -r requirements.txt

    如果你没有CUDA显卡(例如,在MacOS上使用Silicon Mac M1/M2或仅使用CPU),请尝试以下命令:

    cat environment.yml | \
      grep -v -E 'nvidia|cuda' > environment-no-nvidia.yml && \
        conda env create -f environment-no-nvidia.yml
    conda activate stylegan3
    
    # 在MacOS上
    export PYTORCH_ENABLE_MPS_FALLBACK=1

    运行DragGAN GUI

    要启动DragGAN GUI,只需运行以下命令:

    sh scripts/gui.sh

    如果你使用的是Windows,可以运行以下命令:

    .\scripts\gui.bat

    这个GUI支持编辑GAN生成的图像。如果你要编辑真实图像,首先需要使用类似PTI的工具进行GAN反演。然后将新的潜在代码和模型权重加载到GUI中。

    你也可以运行DragGAN Gradio演示,这对于Windows和Linux都是通用的:

    python visualizer_drag_gradio.py

    下载预训练的StyleGAN2权重

    要下载预训练的权重,只需运行以下命令:

    python scripts/download_model.py

    如果你想尝试StyleGAN-Human和Landscapes HQ(LHQ)数据集,请从以下链接下载权重:StyleGAN-Human,LHQ,然后将它们放在./checkpoints目录下。

    许可和引用

    与DragGAN算法相关的代码根据CC-BY-NC许可进行许可。然而,项目的大部分内容都按照Nvidia Source Code License的独立许可条款提供。

    任何形式的使用和衍生作品必须保留显示“AI Generated”的水印功能。

    参考文献

    如果你使用了这个项目,请引用以下BibTeX条目:

    @inproceedings{pan2023draggan,
        title={Drag Your GAN: Interactive Point-based Manipulation on the Generative Image Manifold},
        author={Pan, Xingang and Tewari, Ayush, and Leimk{\"u}hler, Thomas and Liu, Lingjie and Meka, Abhimitra and Theobalt, Christian},
        booktitle = {ACM SIGGRAPH 2023 Conference Proceedings},
        year={2023}
    }

    相关链接

    这就是”Drag Your GAN”项目的简介,希望你会喜欢它并尽情探索这个强大的生成图像操作工具!

  • 开放AI Node API库:无缝接入OpenAI的利器

    开放AI Node API库:无缝接入OpenAI的利器

    如果你希望在TypeScript或JavaScript中方便地访问OpenAI的REST API,那么这个库为你提供了便捷的解决方案。它是基于我们的OpenAPI规范使用Stainless生成的。

    要学习如何使用OpenAI API,请查看我们的API参考文档和文档。

    安装

    npm install --save openai
    # 或者
    yarn add openai

    使用

    你可以在api.md文件中找到这个库的完整API。下面的代码演示了如何使用聊天完成API开始工作。

    import OpenAI from 'openai';
    
    const openai = new OpenAI({
      apiKey: '你的API密钥', // 默认为process.env["OPENAI_API_KEY"]
    });
    
    async function main() {
      const completion = await openai.chat.completions.create({
        messages: [{ role: 'user', content: '说这是一个测试' }],
        model: 'gpt-3.5-turbo',
      });
    
      console.log(completion.choices);
    }
    
    main();

    流式响应

    我们支持使用Server Sent Events (SSE) 进行流式响应。

    import OpenAI from 'openai';
    
    const openai = new OpenAI();
    
    async function main() {
      const stream = await openai.chat.completions.create({
        model: 'gpt-4',
        messages: [{ role: 'user', content: 'Say this is a test' }],
        stream: true,
      });
      for await (const part of stream) {
        process.stdout.write(part.choices[0]?.delta?.content || '');
      }
    }
    
    main();

    如果你需要取消流,你可以从循环中break,或者调用stream.controller.abort()。

    请求和响应类型

    这个库包含了所有请求参数和响应字段的TypeScript定义。你可以像下面这样导入并使用它们:

    import OpenAI from 'openai';
    
    const openai = new OpenAI({
      apiKey: '你的API密钥', // 默认为process.env["OPENAI_API_KEY"]
    });
    
    async function main() {
      const params: OpenAI.Chat.ChatCompletionCreateParams = {
        messages: [{ role: 'user', content: 'Say this is a test' }],
        model: 'gpt-3.5-turbo',
      };
      const completion: OpenAI.Chat.ChatCompletion = await openai.chat.completions.create(params);
    }
    
    main();

    每个方法、请求参数和响应字段的文档都可在文档字符串中找到,并将在大多数现代编辑器中悬停时显示。

    [!IMPORTANT]
    此SDK的先前版本使用了Configuration类。请参阅v3到v4的迁移指南。

    文件上传

    与文件上传对应的请求参数可以以多种不同的形式传递:

    • File(或具有相同结构的对象)
    • fetch Response(或具有相同结构的对象)
    • fs.ReadStream
    • 我们的toFile助手的返回值
    import fs from 'fs';
    import fetch from 'node-fetch';
    import OpenAI, { toFile } from 'openai';
    
    const openai = new OpenAI();
    
    // 如果你有Node `fs`,我们建议使用`fs.createReadStream()`:
    await openai.files.create({ file: fs.createReadStream('input.jsonl'), purpose: 'fine-tune' });
    
    // 或者,如果你有Web `File` API,你可以传递一个`File`实例:
    await openai.files.create({ file: new File(['my bytes'], 'input.jsonl'), purpose: 'fine-tune' });
    
    // 你也可以传递一个`fetch` `Response`:
    await openai.files.create({ file: await fetch('https://somesite/input.jsonl'), purpose: 'fine-tune' });
    
    // 最后,如果上述方法都不方便,你可以使用我们的`toFile`助手:
    await openai.files.create({
      file: await toFile(Buffer.from('my bytes'), 'input.jsonl'),
      purpose: 'fine-tune',
    });
    await openai.files.create({
      file: await toFile(new Uint8Array([0, 1, 2]), 'input.jsonl'),
      purpose: 'fine-tune',
    });

    处理错误

    当库无法连接到API,或者API返回非成功状态码(即4xx或5xx响应)时,将抛出APIError的子类:

    async function main() {
      const fineTune = await openai.fineTunes
        .create({ training_file: 'file-XGinujblHPwGLSztz8cPS8XY' })
        .catch((err) => {
          if (err instanceof OpenAI.APIError) {
            console.log(err.status); // 400
            console.log(err.name); // BadRequestError
    
            console.log
    
    (err.headers); // {server: 'nginx', ...}
          } else {
            throw err;
          }
        });
    }
    
    main();

    错误代码如下:

    状态码 错误类型
    400 BadRequestError
    401 AuthenticationError
    403 PermissionDeniedError
    404 NotFoundError
    422 UnprocessableEntityError
    429 RateLimitError
    大于等于500 InternalServerError
    N/A APIConnectionError

    Azure OpenAI

    关于如何在Azure OpenAI中使用这个库的示例可以在这里找到。

    请注意,在Azure OpenAI API和OpenAI API之间存在API形状和行为的细微差异,因此在Azure OpenAI中使用这个库可能会导致不正确的类型,可能会导致错误。

    请查看@azure/openai,这是Microsoft提供的一个Azure特定的SDK。

    重试

    默认情况下,某些错误将被自动重试2次,使用短暂的指数退避。默认情况下,将重试连接错误(例如,由于网络连接问题),409冲突,429速率限制以及>=500内部错误。

    你可以使用maxRetries选项来配置或禁用这个功能:

    // 配置所有请求的默认值:
    const openai = new OpenAI({
      maxRetries: 0, // 默认为2
    });
    
    // 或者,按请求配置:
    await openai.chat.completions.create({ messages: [{ role: 'user', content: 'How can I get the name of the current day in Node.js?' }], model: 'gpt-3.5-turbo' }, {
      maxRetries: 5,
    });

    超时

    默认情况下,请求会在10分钟后超时。你可以使用timeout选项来配置它:

    // 配置所有请求的默认值:
    const openai = new OpenAI({
      timeout: 20 * 1000, // 20秒(默认为10分钟)
    });
    
    // 重写每个请求:
    await openai.chat.completions.create({ messages: [{ role: 'user', content: 'How can I list all files in a directory using Python?' }], model: 'gpt-3.5-turbo' }, {
      timeout: 5 * 1000,
    });

    在超时时,会抛出APIConnectionTimeoutError。

    请注意,超时的请求将默认重试两次。

    自动分页

    OpenAI API中的列表方法是分页的。你可以使用for await … of语法来遍历所有页面中的项目:

    async function fetchAllFineTuningJobs(params) {
      const allFineTuningJobs = [];
      // 自动获取更多页面。
      for await (const job of openai.fineTuning.jobs.list({ limit: 20 })) {
        allFineTuningJobs.push(job);
      }
      return allFineTuningJobs;
    }

    或者,你可以一次只请求一页:

    let page = await openai.fineTuning.jobs.list({ limit: 20 });
    for (const job of page.data) {
      console.log(job);
    }
    
    // 提供用于手动分页的便捷方法:
    while (page.hasNextPage()) {
      page = page.getNextPage();
      // ...
    }

    高级用法

    访问原始响应数据(例如,标头)

    通过APIPromise类型上的.asResponse()方法,你可以访问由fetch()返回的“原始”Response。

    你也可以使用.withResponse()方法获取原始的Response以及解析后的数据。

    const openai = new OpenAI();
    
    const response = await openai.chat.completions
      .create({ messages: [{ role: 'user', content: 'Say this is a test' }], model: 'gpt-3.5-turbo' })
      .asResponse();
    console.log(response.headers.get('X-My-Header'));
    console.log(response.statusText); // 访问底层的Response对象
    
    const { data: completions, response: raw } = await openai.chat.completions
      .create({ messages: [{ role: 'user', content: 'Say this is a test' }], model: 'gpt-3.5-turbo' })
      .withResponse();
    console.log(raw.headers.get('X-My-Header'));
    console.log(completions.choices);

    配置HTTP(S)代理(例如,用于代理)

    默认情况下,这个库使用一个稳定的代理来处理所有http/https请求,以重用TCP连接,消除许多TCP和TLS握手,并从大多数请求中刮去大约100ms。

    如果你想禁用或自定义此行为,例如使用代理访问API,你可以传递一个用于所有请求的httpAgent,例如:

    import http from 'http';
    import HttpsProxyAgent from 'https-proxy-agent';
    
    // 配置所有请求的默认值:
    const openai = new OpenAI({
      httpAgent: new HttpsProxyAgent(process.env.PROXY_URL),
    });
    
    // 或者,按请求配置:
    await openai.models.list({
      baseURL: 'http://localhost:8080/test-api',
      httpAgent: new http.Agent({ keepAlive: false }),
    })

    语义版本

    这个包通常试图遵循SemVer约定,尽管某些不向后兼容的更改可能作为次要版本发布:

    1. 只影响静态类型的更改,不影响运行时行为。
    2. 影响库内部的更改,技术上是公共的,但不是为外部使用或记录的。 (如果你依赖这些内部变更,请在GitHub上提出问题告诉我们)。
    3. 我们不希望在实际上影响绝大多数用户的情况下进行的更改。

    我们认真对待向后兼容

    性,并努力确保你可以放心升级。

    我们渴望听到你的反馈,请在GitHub上打开一个问题,提出问题、错误或建议。

    要求

    支持TypeScript >= 4.5。

    以下运行时环境受支持:

    • Node.js 16 LTS或更高版本(非EOL版本)。
    • Deno v1.28.0或更高版本,使用import OpenAI from "npm:openai"。
      暂时不支持Deno Deploy。
    • Cloudflare Workers。
    • Vercel Edge Runtime。

    如果你对其他运行时环境感兴趣,请在GitHub上打开或投票提出问题。

  • 探秘Whisper:开放AI的通用语音识别模型

    探秘Whisper:开放AI的通用语音识别模型

    在数字化时代,语音识别技术越来越受到重视。开放AI的Whisper模型是一种通用语音识别模型,它经过大规模的多样化音频数据训练,不仅可以执行多语言语音识别,还能进行语音翻译和语言识别等多项任务。

    探索Whisper的技术

    Whisper采用了Transformer序列到序列模型,它经过多项语音处理任务的训练,包括多语言语音识别、语音翻译、口语语言识别和语音活动检测。这些任务被联合表示为要由解码器预测的令牌序列,使得单一模型可以替代传统语音处理流程中的许多阶段。多任务训练格式使用一组特殊的令牌,这些令牌充当任务指示符或分类目标。

    设置与使用

    Whisper的训练和测试使用Python 3.9.9和PyTorch 1.10.1完成,但代码库预计与Python 3.8-3.11和较新的PyTorch版本兼容。代码库还依赖于一些Python包,最重要的是OpenAI的tiktoken,用于其快速的分词器实现。你可以使用以下命令下载和安装(或更新)Whisper的最新版本:

    pip install -U openai-whisper

    或者,以下命令将获取并安装此存储库的最新提交,以及其Python依赖项:

    pip install git+https://github.com/openai/whisper.git 

    要将包更新到此存储库的最新版本,请运行:

    pip install --upgrade --no-deps --force-reinstall git+https://github.com/openai/whisper.git

    此外,你需要安装命令行工具ffmpeg,这在大多数包管理器中都可以找到。

    # 在Ubuntu或Debian上
    sudo apt update && sudo apt install ffmpeg
    
    # 在Arch Linux上
    sudo pacman -S ffmpeg
    
    # 在MacOS上使用Homebrew(https://brew.sh/)
    brew install ffmpeg
    
    # 在Windows上使用Chocolatey(https://chocolatey.org/)
    choco install ffmpeg
    
    # 在Windows上使用Scoop(https://scoop.sh/)
    scoop install ffmpeg

    如果需要,你还需要安装rust,以便在tiktoken未为你的平台提供预构建的安装包时使用。如果在上述pip install命令期间看到安装错误,请按照Getting started页面的指导安装Rust开发环境。此外,你可能需要配置PATH环境变量,例如export PATH="$HOME/.cargo/bin:$PATH"。如果安装失败并出现No module named 'setuptools_rust'的错误,你需要安装setuptools_rust,例如通过运行:

    pip install setuptools-rust

    可用模型和语言

    Whisper提供五种模型大小,其中四种具有仅英语版本,提供速度和准确性的权衡。以下是可用模型的名称、近似内存需求和相对速度。

    大小 参数数量 仅英语模型 多语言模型 需要VRAM 相对速度
    微小 39 M tiny.en tiny ~1 GB ~32x
    基础 74 M base.en base ~1 GB ~16x
    小型 244 M small.en small ~2 GB ~6x
    中型 769 M medium.en medium ~5 GB ~2x
    大型 1550 M N/A large ~10 GB 1x

    对于仅用于英语应用的.en模型,特别是对于tiny.en和base.en模型,性能更好。我们观察到,对于small.en和medium.en模型,差异变得不那么显著。

    Whisper的性能因语言而异。下图显示了Fleurs数据集在large-v2模型下的语言单词错误率(WER)分布(数字越小,性能越好)。有关其他模型和数据集对应的WER分数,可以在附录D.1、D.2和D.4中找到。此外,更多的BLEU(双语评估助手)分数可以在附录D.3中找到。这些都可以在论文中找到。

    命令行使用

    以下命令将转录音频文件的语音,使用medium模型:

    whisper audio.flac audio.mp3 audio.wav --model medium

    默认设置(选择small模型)在英语转录方面表现良好。如果要转录包含非英语语音的音频文件,可以使用--language选项指定语言:

    whisper japanese.wav --
    
    language Japanese

    添加--task translate将把语音翻译成英语:

    whisper japanese.wav --language Japanese --task translate

    运行以下命令查看所有可用选项:

    whisper --help

    请查看tokenzier.py以获取所有可用语言的列表。

    Python使用

    在Python中也可以进行转录:

    import whisper
    
    model = whisper.load_model("base")
    result = model.transcribe("audio.mp3")
    print(result["text"])

    在内部,transcribe()方法会读取整个文件并使用30秒滑动窗口处理音频,对每个窗口执行自回归序列到序列的预测。

    以下是whisper.detect_language()和whisper.decode()的示例用法,它们提供更低级别的访问模型的方法。

    import whisper
    
    model = whisper.load_model("base")
    
    # 加载音频并填充/修整以适应30秒
    audio = whisper.load_audio("audio.mp3")
    audio = whisper.pad_or_trim(audio)
    
    # 制作对数梅尔频谱图并将其移到与模型相同的设备上
    mel = whisper.log_mel_spectrogram(audio).to(model.device)
    
    # 检测口音
    _, probs = model.detect_language(mel)
    print(f"Detected language: {max(probs, key=probs.get)}")
    
    # 解码音频
    options = whisper.DecodingOptions()
    result = whisper.decode(model, mel, options)
    
    # 打印识别文本
    print(result.text)

    更多示例

    请使用? Show and tell类别在讨论中分享更多Whisper的示例用法和第三方扩展,例如网络演示、与其他工具的集成、不同平台的端口等。

    许可协议

    Whisper的代码和模型权重在MIT许可下发布。详细信息请参阅LICENSE。

    关键词:

  • 开启OpenAI的力量:全面指南

    开启OpenAI的力量:全面指南

    OpenAI正在用其先进的技术和强大的API彻底改变人工智能的世界。在这份全面指南中,我们将探索OpenAI的令人难以置信的潜力,以及如何利用其能力来增强你的项目和应用。无论你是开发者、研究员,还是只是对人工智能感兴趣,这份指南都将为你提供有关OpenAI的提供和资源的宝贵见解。

    开始使用OpenAI

    在我们深入探讨OpenAI的精彩世界之前,让我们确保你拥有必要的工具来开始。你需要一个OpenAI账户和一个API密钥,你可以通过创建一个免费账户来轻松获取。一旦你获得了API密钥,你就可以解锁OpenAI的可能性。

    最近的更新和亮点 ? ✨

    随时关注OpenAI的最新发展和增强功能:

    探索OpenAI的能力

    OpenAI提供了广泛的工具和资源,以下是一些要探索的关键领域:

    API使用

    处理速率限制

    在使用OpenAI API时,管理速率限制至关重要。了解如何有效地处理速率限制并优化你的API使用,参考我们的指南:如何处理速率限制。

    GPT模型

    格式化输入到ChatGPT模型

    发现将输入格式化为ChatGPT模型的最佳实践,以获得最准确和相关的响应:如何格式化输入到ChatGPT模型。

    嵌入

    文本比较示例

    了解如何使用嵌入进行文本比较,以及它的应用领域:文本比较示例。

    DALL-E

    生成和编辑图像

    探索如何使用DALL·E生成和编辑图像的方法:如何生成和编辑DALL·E图像。

    Whisper

    Whisper提示指南

    深入了解如何使用Whisper进行提示以生成文本:Whisper提示指南。

    相关OpenAI资源

    除了这里的代码示例,你还可以从以下资源中了解有关OpenAI API的信息:

    相关网络资源

    人们正在编写出色的工具和论文来改善GPT的输出。以下是一些我们看到的很棒的工具:

    提示库和工具

    • Guidance:来自Microsoft的一个便捷的Python库,使用Handlebars模板来交错生成、提示和逻辑控制。
    • LangChain:一个流行的Python/JavaScript库,用于链接语言模型提示的序列。
    • FLAML(自动化机器学习和调整的快速库):用于自动选择模型、超参数和其他可调参数的Python库。
    • Chainlit:用于创建聊天机器人界面的Python库。
    • Guardrails.ai:用于验证输出并重新尝试故障的Python库。仍处于alpha阶段,因此请预期存在问题和错误。
    • Semantic Kernel:来自Microsoft的一款支持提示模板、函数链接、矢量化存储和智能规划的Python/C#库。
    • Prompttools:用于测试和评估模型、矢量数据库和提示的开源Python工具。
    • Outlines:提供领域特定语言以简化提示和限制生成的Python库。
    • Promptify:一个用于使用语言模型执行NLP任务的小型Python库。
    • Scale Spellbook:一个用于构建、

    比较和发布语言模型应用程序的付费产品。

    • PromptPerfect:一个用于测试和改进提示的付费产品。
    • Weights & Biases:一个用于跟踪模型训练和提示工程实验的付费产品。
    • OpenAI Evals:用于评估语言模型和提示任务性能的开源库。
    • LlamaIndex:用于通过数据增强LLM应用的Python库。
    • Arthur Shield:一个用于检测毒性、幻觉、提示注入等的付费产品。
    • LMQL:用于LLM交互的编程语言,支持类型提示、控制流、约束和工具。

    提示指南

    视频课程

    提高推理能力的高级提示的论文

    尝试任务,可以提高随后的性能。

    贡献

    如果有你希望看到的示例或指南,请随时在问题页面上提出建议。我们也很高兴接受高质量的拉取请求,只要它们符合仓库的范围。

  • 谷歌云2023年全新指南:免费获取高达400美元的试用金

    谷歌云2023年全新指南:免费获取高达400美元的试用金

    在云计算领域,谷歌云平台(Google Cloud Platform, GCP)一直是一个强有力的竞争者。2023年,它继续以其慷慨的试用金政策吸引新用户。在本篇指南中,我们将深入探讨如何免费申请和使用谷歌云,以及它与其他云服务提供商的比较。

    谷歌云2023年最新优惠:高达400美元的试用金

    谷歌云在2023年依然保持着其慷慨的试用政策。新用户可以获得高达400美元的试用金,其中300美元是基本试用金,通过输入有效的邮箱可以额外获得100美元。这个优惠不仅仅是一次性的,用户可以无限次申请续约,真正做到了“敞开怀抱”。

    提示: 为了保护个人隐私,建议使用Proton Mail匿名邮箱进行注册。

    谷歌云平台简介

    谷歌云平台是谷歌提供的一套公有云计算服务,包括一系列在Google硬件上运行的用于计算、存储和应用程序开发的托管服务。它提供了一系列的核心功能和服务,包括:

    Google Compute Engine

    这是一种基础架构即服务(IaaS)产品,可以为用户提供虚拟机实例以承载工作负载。

    Google App Engine

    这是一种平台即服务(PaaS)产品,可以让软件开发人员访问Google的可扩展托管服务,还可以使用软件开发工具包(SDK)来开发在App Engine上运行的软件产品。

    Google Cloud Storage

    这是一个云存储平台,旨在存储大型非结构化数据集。Google还提供了多种数据库存储选项,包括Cloud Datastore、Cloud SQL和Google的原生Cloud Bigtable数据库。

    Google Container Engine

    这是一个管理和编排Docker容器的系统,基于Google Kubernetes容器编排引擎。

    Google Kubernetes Engine

    这是一个具有容器化应用程序工程师现代化方法的平台,可以用于在云介质或平台上进行部署。

    Google App Engine

    这个服务为软件开发人员提供了所需的工具和语言,以便直接在Google云平台上构建或部署Web应用程序。

    安托斯

    这是Google云平台的系统,可以更好地组织和维护围绕Google的应用程序,同时也可以利用Amazon Web Services或Azure的资源。

    大查询

    这是一种数据仓库服务,可以处理大量的分布式数据,并使SQL查询可以轻松地在不同结构级别的各种数据库中执行。

    谷歌云与其他免费云服务器的比较

    在当前的市场上,除了谷歌云外,还有其他几家提供免费云计算服务的公司,包括亚马逊云AWS、微软云Azure、甲骨文Oracle Cloud和阿里云国际版。下表是一个简单的比较:

    云服务提供商 优点 缺点
    谷歌云 不限流量,可以无限续约,配置可以调高 无
    亚马逊云AWS 提供750小时的免费使用时间和15G流量 超出后会自动扣费
    微软云Azure 提供每月15G流量 超出后会自动扣费
    甲骨文Oracle Cloud 号称永久免费 中国信用卡和账号已被封
    阿里云国际版 提供1核1GB的免费使用 限制手机号码为国外,配置较低

    如何免费申请Google Cloud谷歌云服务器

    在申请Google Cloud免费云服务器之前,你需要确保网络畅通,可以访问国际网络。此外,你还需要一个Google账户,可以通过以下链接申请:Google账户申请地址

    结论

    谷歌云在2023年依然是一个非常有吸引力的云服务提供商,其慷慨的试用金政策和高品质的服务使其成为了一个不可忽视的选择。无论你是一个开发人员还是企业IT专业人员,谷歌云都可以为你提供强大的支持和资源。

  • OpenAI API免费密钥的终极指南:Poe AI平台深度解析

    OpenAI API免费密钥的终极指南:Poe AI平台深度解析

    在人工智能的世界中,OpenAI API已经成为了一个强大的工具,它可以帮助你创建内容,生成见解或自动化任务。但是,如何免费获得这个强大工具的访问权限呢?在这篇文章中,我们将深入探讨OpenAI API和Poe AI平台的功能,并提供一步步的指南,教你如何免费获得OpenAI API的密钥。

    OpenAI API密钥是什么?

    OpenAI API是一个服务,允许你与OpenAI开发的各种AI模型进行交互。这是一个由OpenAI研究机构创建和推广的友好人工智能项目。通过OpenAI API,你可以使用自然语言查询模型,并以文本、图像、代码或数据格式获得响应。

    Poe AI平台简介

    Poe AI是一个帮助你更容易和更便宜地使用OpenAI服务的平台。它是一个基于网络的工具,允许你创建使用OpenAI API的不同AI模型的聊天机器人和任务。你还可以与Poe AI上的其他用户合作,并与他们分享你的项目和任务。

    如何免费获得OpenAI API密钥?

    如果你想使用Poe AI,一个强大的自然语言生成工具,你首先需要在你的本地机器上设置Poe API服务器。下面是如何下载和运行Poe API服务器的步骤:

    步骤1:下载Poe API服务器

    Poe API服务器可以在官方Github仓库找到。你可以下载最新的发布版本作为一个zip文件,并将其保存到你喜欢的位置。或者,如果你已经安装了git,你可以克隆仓库。

    步骤2:运行app.exe文件

    一旦你下载并解压了名为Poe API Server的zip文件,你会找到一个名为poe-api-server的文件夹。在这个文件夹内,有一个名为app.exe的可执行文件。这是运行Poe API服务器的主文件。

    步骤3:启动服务器

    接下来,只需双击app.exe文件即可启动服务器。一个命令提示符窗口将打开,并向你显示一些关于服务器的信息,如版本、端口和IP地址。

    步骤4:使用IP地址作为反向代理

    命令提示符窗口将显示服务器的一些信息,如版本、端口和IP地址。使用显示在命令提示符窗口的IP地址作为反向代理。

    步骤5:设置反向代理

    你可以使用这个地址作为Poe AI的反向代理。接下来,从上述步骤中复制IP地址,然后将地址粘贴到Poe AI的反向代理中。这意味着你可以通过向这个地址发送请求来访问Poe AI的功能,而不是直接访问Poe AI网站。

    然后,我们如何免费获得OpenAI API免费密钥呢?答案是Poe AI,一个基于网络的平台,允许用户创建和与由GPT-3驱动的聊天机器人交互。通过使用Poe AI,我们可以生成一个可以用作OpenAI API密钥的有效cookie。

    你还可以查看我们的博客,了解更多关于Poe AI的技巧和教程。Poe AI是一个新的Quora聊天机器人应用,允许你与各种AI模型连接。博客解释了如何利用Poe AI,并提供了一些获取最大效益的技巧和建议。

    步骤1:注册并登录Poe AI

    首先,我们需要在浏览器上注册并登录Poe AI。为此,我们需要访问官方网站,并使用我们的电子邮件和密码创建一个账户。创建账户后,我们需要使用我们的凭证登录,然后我们可以查看Poe AI的仪表板。

    步骤2:复制Cookie值

    现在,我们需要从我们的浏览器中复制cookie值。为此,我们需要按F12打开开发

    者控制台。我们需要转到应用程序选项卡,并从那里复制cookie值。这个cookie值是我们可以用来访问OpenAI API的免费密钥。

    使用OpenAI API的好处

    • 你可以访问最先进的AI模型,而不需要自己构建它们或支付昂贵的云计算资源。
    • 你可以利用AI的力量来创建高质量的内容,如博客文章、产品描述、标题、字幕、摘要、故事、诗歌、歌词等。
    • 你可以使用AI从数据中生成见解,如分析、报告、图表、图形、预测、推荐等。

    使用OpenAI API的挑战

    • 你需要邀请才能访问服务。OpenAI API免费目前处于测试阶段,只对申请并获得OpenAI批准的有限数量的用户开放。
    • 你需要为服务付费。OpenAI API免费按你从模型中消耗的令牌(字符)数量收费。价格根据模型和使用层次而有所不同。
    • 你需要遵循服务的条款和条件。OpenAI API免费有一些你在使用模型时需要遵守的规则和指南。

    常见问题解答

    OpenAI API免费和Poe AI有什么区别?

    OpenAI API是一个提供访问由OpenAI开发的各种AI模型的服务,如GPT-3、DALL-E、CLIP、Codex等。Poe AI是一个帮助你更容易和更便宜地使用OpenAI API免费的平台。它是一个基于网络的工具,允许你创建使用OpenAI API的不同AI模型的项目和任务。

    使用OpenAI API免费需要多少钱?

    OpenAI API按你从模型中消耗的令牌(字符)数量收费。价格根据模型和使用层次而有所不同。例如,GPT-3的标准使用费用为每1000令牌0.06美元,高级使用费用为每1000令牌0.12美元。

    我如何通过Poe AI获得OpenAI API免费的无限访问权限?

    你可以通过邀请你的朋友加入Poe AI来免费获得OpenAI API的无限访问权限。每当有朋友通过你的推荐链接注册时,你和你的朋友都将获得10美元的信用,可以用来通过Poe AI访问OpenAI API。

    结论

    OpenAI API是一个让你使用人工智能创建内容、生成见解或自动化任务的伟大服务。然而,获得它既不容易也不便宜。这就是为什么Poe AI是一个有用的平台,它可以帮助你更容易和更便宜地使用OpenAI API。如果你觉得这篇文章有帮助,请给我们留言。

  • 红米AX6000刷机教程:安装OpenWRT 22.03新版本固件

    红米AX6000刷机教程:安装OpenWRT 22.03新版本固件

    红米AX6000路由器已经得到OpenWRT官方支持,新版本固件也变得更加完善,允许用户刷入OpenWRT系统。本文将提供详细的红米AX6000刷机教程,帮助您安装OpenWRT 22.03的新版本固件。无需担心变砖,同时我们将优化文章以提高SEO效果,以便更多用户受益。

    第一步:准备工作

    在开始解锁和刷机之前,请确保您已完成以下准备工作:

    • 一台已解锁SSH并可以串口访问的红米AX6000路由器(需要先解锁SSH,请参考相关教程)。
    • 一台运行Windows系统的电脑(刷回原厂固件需要Windows)。
    • 下载并安装Termius(Termius是一个方便的SSH连接工具,您也可以使用其他SSH工具,如Xshell 7绿色便携版)。

    第二步:查看X-WRT固件下载列表

    在继续刷机之前,您需要下载以下文件:

    • 红米AX6000 X-WRT临时固件:stock-initramfs-factory.ubi
    • 红米OpenWRT 22.03 X-WRT原版固件:stock-squashfs-sysupgrade.bin
    • 红米AX6000的OpenWRT闭源驱动固件(可选择下载,您可以使用X-WRT的原版固件或此固件)

    第三步:刷入红米AX6000临时固件

    首先,确认当前系统是ubi还是ubi1,可以通过执行以下命令查看:

    cat /proc/cmdline
    • 如果firmware=1表示当前系统是ubi1。
    • 如果firmware=0表示当前系统是ubi。

    根据当前系统的不同,设置相应的nvram变量。

    如果当前系统是ubi,请执行以下命令:

    nvram set boot_wait=on
    nvram set uart_en=1
    nvram set flag_boot_rootfs=1
    nvram set flag_last_success=1
    nvram set flag_boot_success=1
    nvram set flag_try_sys1_failed=0
    nvram set flag_try_sys2_failed=0
    nvram commit

    然后,根据您的选择,可以在线安装或本地安装intramfs-factory.ubi:

    在线安装intramfs-factory.ubi:

    curl -L http://sebs.oss-cn-shanghai.aliyuncs.com/initramfs-factory.ubi -o initramfs-factory.ubi
    ubiformat /dev/mtd8 -y -f /tmp/initramfs-factory.ubi
    reboot -f

    本地安装intramfs-factory.ubi:

    下载stock-initramfs-factory.ubi,然后将其上传到/tmp目录下。根据当前系统的不同选择刷入:

    • 刷入ubi1(路径/dev/mtd9):
    ubiformat /dev/mtd9 -y -f /tmp/stock-initramfs-factory.ubi
    • 刷入ubi(路径/dev/mtd8):
    ubiformat /dev/mtd8 -y -f /tmp/stock-initramfs-factory.ubi

    如果当前系统是ubi1,请执行以下命令:

    nvram set boot_wait=on
    nvram set uart_en=1
    nvram set flag_boot_rootfs=0
    nvram set flag_last_success=0
    nvram set flag_boot_success=1
    nvram set flag_try_sys1_failed=0
    nvram set flag_try_sys2_failed=0
    nvram commit

    第四步:刷入OpenWRT 22.03正式版

    完成刷入临时固件后,重新启动并进入x-wrt/openwrt的initramfs临时系统。通过SSH登录并执行以下命令:

    fw_setenv boot_wait on
    fw_setenv uart_en 1
    fw_setenv flag_boot_rootfs 0
    fw_setenv flag_last_success 1
    fw_setenv flag_boot_success 1
    fw_setenv flag_try_sys1_failed 8
    fw_setenv flag_try_sys2_failed 8

    然后,通过浏览器访问过渡固件后台(IP地址为192.168.5.1),登录用户名为root,密码为password。在服务选项中找到终端,并使用相同的用户名和密码登录。

    接下来,在LUCI界面中选择“系统”>“备份与升级”,然后选择“刷写固件”。上传下载好的OpenWRT固件,并取消勾选“保留当前配置”。点击“继续”并等待刷写完成,路由器将自动重启,进入新的OpenWRT固件。

    总结

    您已成功刷入新的OpenWRT 22.03固件到红米AX6000路由器。现在,您可以使用新固件的功能和性能,享受更高效的网络体验。

  • 在外网通过HTTPS地址访问HTTP地址的解决方案

    在外网通过HTTPS地址访问HTTP地址的解决方案

    在网络世界中,我们常常需要在浏览器中访问网站。HTTPS(HyperText Transfer Protocol Secure)是一种用于保护数据传输安全性的协议,但有时我们需要访问一些仍在使用HTTP(HyperText Transfer Protocol)的网站。本文将提供具体的解决方案,帮助您在外网通过HTTPS地址访问HTTP地址,同时确保数据传输的安全性和完整性。

    问题背景

    HTTP是一种不安全的传输协议,因为数据在传输过程中未经加密,容易受到中间人攻击。虽然HTTPS是更安全的选项,但一些网站可能仍在使用HTTP。为了在浏览器中访问这些HTTP地址,我们需要一种方法来解决安全性问题。

    解决方案

    1. 使用反向代理

    一种有效的解决方案是使用反向代理服务器,将外部的HTTPS请求代理到内部的HTTP地址。这可以通过常见的Web服务器软件如Nginx或Apache来实现。以下是一个示例Nginx配置:

    server {
        listen 443 ssl;
        server_name your-https-domain.com;
    
        ssl_certificate /etc/nginx/ssl/your-ssl-certificate.crt;
        ssl_certificate_key /etc/nginx/ssl/your-ssl-certificate.key;
    
        location / {
            proxy_pass http://your-http-server;
        }
    }

    在这个示例中,Nginx接收来自外部的HTTPS请求,并将其代理到内部的HTTP服务器。这样,您可以通过https://your-https-domain.com 访问内部的HTTP地址,数据将通过安全的HTTPS通道传输。

    2. 使用Cloudflare等CDN服务

    一些CDN(内容分发网络)服务如Cloudflare提供了将HTTP网站升级为HTTPS的功能。您可以将您的HTTP网站配置到这些CDN服务上,它们会自动提供HTTPS支持。这不仅提高了安全性,还提高了性能和可用性。

    3. 使用浏览器插件或工具

    一些浏览器插件或工具可以帮助您在外网通过HTTPS地址访问HTTP地址,尽管这种方法不如反向代理安全。例如,”HTTPS Everywhere”是一个浏览器扩展程序,可以尝试将HTTP网站升级为HTTPS。

    示例代码

    以下是一个使用Node.js和Express框架的简单示例,演示如何创建一个反向代理服务器将HTTPS请求代理到HTTP地址。

    const express = require('express');
    const https = require('https');
    const httpProxy = require('http-proxy');
    
    const app = express();
    const proxy = httpProxy.createProxyServer({});
    
    app.use((req, res) => {
      // 设置代理目标,这里是内部的HTTP地址
      const target = 'http://your-http-server';
    
      // 代理请求
      proxy.web(req, res, { target });
    });
    
    // 启动代理服务器
    const port = 443;
    https.createServer({
      key: fs.readFileSync('your-ssl-certificate.key'),
      cert: fs.readFileSync('your-ssl-certificate.crt'),
    }, app).listen(port, () => {
      console.log(`Proxy server listening on port ${port}`);
    });

    注意事项

    尽管可以通过上述方法在外网通过HTTPS地址访问HTTP地址,但需要注意以下事项:

    1. 安全性问题:HTTP数据传输不加密,容易受到中间人攻击。使用反向代理或CDN等方法提高了安全性,但仍需谨慎。

    2. 兼容性问题:一些网站可能不支持通过HTTPS地址访问HTTP地址,可能会导致页面加载问题或其他兼容性问题。

    3. 法律合规性:在某些国家或地区,访问HTTP地址可能涉及法律合规性问题,请遵守当地法规。

    结论

    在外网通过HTTPS地址访问HTTP地址可以通过使用反向代理、CDN服务或浏览器插件来实现。但请谨慎使用这些方法,确保数据传输的安全性和完整性。建议网站管理员尽早升级到HTTPS以提高安全性和性能。

    如果必须在外网访问HTTP地址,请选择合适的方法并采取适当的安全措施,以保护您的数据和隐私。