[环境工具] 搭建OPENAI API访问环境

该文介绍了如何在非GUI的CentOS7.9服务器上,通过Clash和proxychains设置代理,以访问OpenAIAPI。步骤包括安装Clash,配置代理,安装proxychains,修改配置文件,启动服务并测试,以及使用yacd进行可视化管理。同时提供了Python代码示例来创建OpenAIAPI调用接口。

关键词:openai api连接

目的:在非GUI环境的Linux服务器搭建OPENAI API访问环境。

系统环境:x86_64, centos7.9,clash

  • 下载系统环境对应的clash安装包后进行解压
# https://github.com/Dreamacro/clash/releases/download/v1.15.1/clash-linux-amd64-v1.15.1.gz
gzip -d clash-linux-amd64-v1.15.1.gz
mv clash-linux-amd64-v1.15.1.gz clash
chmod +x clash
  • 建立配置文件夹,并复制有效代理的配置文件到配置文件夹
mkdir config
# 从本地机器拷贝到服务器上,可以使用scp,然后再放到config中,默认端口7890
mv Country.mmdb ./config/
mv NETV2.yaml ./config/config.yaml
# 详细配置字段参考 https://github.com/Hackl0us/SS-Rule-Snippet/blob/main/LAZY_RULES/clash.yaml
  • 安装proxychains工具并配置用于连接代理
#centos安装proxychains
sudo yum install proxychains-ng

#ubuntu安装proxychains
sudo apt-get install proxychains

#修改对应的配置文件增加ProxyList项
vi /etc/proxychains.conf

#### proxychains.conf配置文件内容
[ProxyList]    #对应到cls配置中的端口 mixed-port: 7890
socks4  127.0.0.1 7890
socks5  127.0.0.1 7890
http    127.0.0.1 7890
  • 启动服务并进行测试
./clash -d config &> cls.log &
proxychains curl -vv google.com
sudo yum install npm
npm i -g pnpm
git clone https://githhaishanh/yacd
cd yacd
pnpm i
pnpm build
#pnpm start --host localhost --port 7899
# 指定localhost具体IP
pnpm start --host 192.168.1.11 --port 7899

在浏览器中输入192.168.1.11:7899就可以对clash进行可视化配置管理啦。
在这里插入图片描述

openai api demo

将openai api key设置为环境变量export OPENAI_API_KEY=<My PAI Key>
openai api key:https://platform.openai.com/account/api-keys

# encoding=utf-8
# 创建openai调用接口
import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")

# 部署cls环境的服务器IP与Port
openai.proxy = {
'http': 'http://127.0.0.1:7890',
'https': 'http://127.0.0.1:7890'
}
openai.Model.list()

# 生成openai调用接口
class OpenAI_API(object):
    def __init__(self, api_key):
        self.api_key = api_key

    def get_response(self, prompt, max_tokens=5, temperature=0.9, top_p=1, frequency_penalty=0.0, presence_penalty=0.0, stop=["\n", " Human:", " AI:"]):
        response = openai.Completion.create(
            model="text-davinci-003",
            prompt=prompt,
            max_tokens=max_tokens,
            temperature=temperature,
            top_p=top_p,
            frequency_penalty=frequency_penalty,
            presence_penalty=presence_penalty,
            stop=stop
        )
        return response

# 主入口
if __name__ == '__main__':
    # 初始化openai调用接口
    openai_api = OpenAI_API(os.getenv("OPENAI_API_KEY"))
    # 打印openai调用接口
    prompt = "The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.\n\nHuman: Hello, who are you?\nAI: "
    result = openai_api.get_response(prompt, max_tokens=150)
    
    print(result)
    print(result.choices[0].text)
# 或者以Mac为例,在```网络偏好设置--网络--高级--代理```中配置服务地址和端口

如果出现如下异常,是因为免费配额超限了,可以尝试更换个模型,具体见rate-limits
openai.error.RateLimitError: You exceeded your current quota, please check your plan and billing details.

参考:
https://zhuanlan.zhihu.com/p/366589407

-------- END --------

### 如何搭建 OpenAI API 的中转服务或代理 搭建 OpenAI API 的中转服务或代理可以通过多种方式实现,具体取决于需求和技术栈的选择。以下是关于如何构建和配置此类服务的关键点: #### 1. 使用 Docker 容器化部署 可以利用现有的开源项目来快速启动一个中转服务。这些项目通常基于 Python 和 FastAPI 构建,能够灵活处理来自不同客户端的请求并转发至真实的 OpenAI API。 例如,某些项目的文档提到它们不仅限于代理 OpenAIAPI,还支持扩展到其他场景,比如 Nvidia NIM API 或者其他第三方服务[^1]。这意味着只需调整目标 URL 即可适配不同的后端服务。 #### 2. 创建 OpenAI 客户端实例 为了使代理功能正常工作,需要初始化一个合法的 OpenAI 客户端对象。这一步骤涉及设置环境变量中的 `OPENAI_API_KEY` 和 `OPENAI_API_URL` 参数。下面是一个典型的代码片段演示这一过程: ```python import os from openai import OpenAI client = OpenAI( api_key=os.environ.get('OPENAI_API_KEY'), base_url=os.environ.get('OPENAI_API_URL') ) ``` 此部分展示了如何通过读取操作系统级别的环境变量完成必要的认证信息加载[^2]。 #### 3. 自定义代理逻辑开发 如果希望进一步增强代理的功能,则可能需要编写额外的应用层代码。一篇教程介绍了有关创建复杂代理系统的思路——即结合 LlamaIndex 工具库设计高级别的自动化流程管理机制[^3]。尽管该文章重点在于特定领域内的应用案例分析,但它同样适用于一般性的 RESTful 接口封装任务。 #### 4. 实际操作示范:调用远程资源 最后,在实际运行阶段,开发者应当测试整个链路是否通畅无误。这里给出了一段完整的脚本样例用来验证连接有效性以及获取初步响应数据的能力: ```python import openai openai.api_base = "http://api.wlai.vip/v1" openai.api_key = "your_api_key_here" response = openai.Completion.create( model="text-davinci-003", prompt="介绍一下人工智能技术。", max_tokens=50 ) print(response.choices[0].text.strip()) ``` 这段程序清楚地说明了当采用中间件形式访问外部服务时所需遵循的标准步骤[^4]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值