使用VS Code远程开发OpenAI API

由于OpenAI的API在国内不可用,我们要针对API进行开发困难比较大。

    如果你有一个能使用OpenAI API的Linux服务器,我们可以方便地使用VS Code的远程开发功能来解决这个问题。

    如果没有,你也可以试试获得一个免费的国外服务器,网上有很多教程,这里就不重复讲述怎么获得免费服务器。

    Linux做服务器使用起来比较方便,所以下面的内容我们都基于Linux来实现。

1、设置服务器的登录方式

    现在主流的云服务器提供商,在初始化服务器时,一般都会提供使用密钥登录的选项。登录密钥由服务器密钥和客户端密钥两个组成一个密钥对,我们需要妥善保管好客户端密钥,比如我们把客户端密钥保存为C:\work\server.pem文件。

    如果服务器已经被设置成了密码方式登录,我们也可以自己增加新的密钥对,使用客户端密钥来登录,以增加连接服务器的安全性。

    1)生成密钥对

我们在服务器上使用ssh-keygen来生成密钥对,所有的选择都直接回车,用默认参数就可以,之后我们再调整。

图片

    2)保存客户端密钥

我们进入到上面图中提到的目录,/root/.ssh,执行cat id_rsa命令,把内容复制下来,保存到C:\work\server.pem,这个就是客户端密钥。之后我们需要把id_rsa从服务器删除,以防泄露出去。

    3)保存服务器端密钥

使用cat id_rsa.pub >> authorized_keys,把id_rsa.pub加入到服务器端密钥中,完成密钥对的设置。之后,id_rsa.pub文件也可以从服务器上删除。

图片

    如果你的工作电脑是Linux或者Mac的话,操作上是一样的,只是C:\work这个工作目录的路径不一样,其他方面是完全一样的。

2、设置使用客户端密钥连接服务器

    在工作电脑上打开一个新的命令行窗口,执行ssh -i server.pem root@server,测试是否能连接服务器。在这里,请把root@server换成root@你的服务器ip地址。

    第一次连接服务器时,一般会显示服务器的指纹信息,输入yes,让电脑保存下来就可以,以后就不再会提示了。

图片

    如果出现密钥文件权限太大的错误提示,ssh会忽略密钥文件,依然要求输入密码。这时我们不要输入密码,而是按Ctrl+C终止掉连接,调整一下密钥文件的权限。

    如果工作电脑是Linux或者Mac,调整权限只需要执行下面的命令就可以:chmod 400 server.pem。如果工作电脑是Windows,按照下面的步骤调整权限:

    1)设置安全属性

在server.pem上点右键,选择“属性”,进入“安全”选项卡

    2)设置高级属性

在“安全”中,进入“高级”设置

图片

    3)设置权限关系

在高级设置中,点击底部的“禁用继承”,把现有的权限全部删除

图片

    4)添加新的权限

然后添加新的权限,选择用户或者组的对话框里,在对象名字里输入当前登录的用户名,比如我这里是Administrator,输入的名字需要与当前登录的用户名完全一致

图片

    5)给当前用户权限

给与当前用户读取权限就可以了

图片

    6)命令行测试登录

确定之后,我们在命令行窗口,再次执行ssh -i server.pem root@server命令,应该就可以正常登录服务器了

图片

3、使用VSCode连接服务器

    当我们在命令行中,可以使用客户端密钥正常登录服务器之后,我们就可以在VSCode中配置连接服务器了。

    1)找到链接服务器图标

打开VSCode,点击左下角的连接服务器的图标

图片

    2)找到连接选项

出来一个提示窗口,我们选择第一个选项,连接到服务器,或者第二个选项,将当前窗口连接到服务器,都可以

图片

    3)新增ssh服务器

然后我们新增一个到ssh服务器的连接

图片

    4)配置连接命令

在连接命令窗口,我们输入刚才配置连接时使用的同样的命令,注意,对于Windows电脑,路径里,我们不能使用“\”,而是需要使用“/”,比如刚才的命令,我们需要按照这样的写法输入:ssh -i c:/work/server.pem root@server

图片

    5)保存配置文件

回车确定后,会询问将配置保存到哪个文件里,我们选择第一项,保存到当前用户的配置文件里

图片

    6)连接服务器

当我们再次点击VSCode左下角的连接按钮时,就会出现刚刚保存好的server了,直接点击连接服务器就可以

图片

图片

4、配置开发环境

    连上远程服务器后,我们就可以在VSCode中配置远程服务器上的开发环境了。

    1)选择目标目录

点击“打开文件夹”按钮,选择一个服务器上的目录,以在这个目录下进行开发

图片

    2)信任目标文件

第一次使用时,VSCode会提示是否信任这个目录下的文件,我们可以勾选总是信任,以后就不会再提示了

图片

    3)创建目录和文件

这样我们就可以在VSCode左上方的“资源管理器”功能中,直接在服务器上创建目录和文件了,与在本地开发时的创建目录和文件功能是一样的

图片

    4)运行代码或调试

比如我们创建一个test.php,随便写一个PHP语句,比如echo "hello, world!";,然后点击左侧工具条上的运行按钮,或者点击“运行”菜单上的“启动调试”功能

图片

图片

图片

    5)安装php扩展

如果出现提示没有安装用于PHP调试的扩展,点击查找按钮,会自动联网查找合适的扩展

图片

    6)安装debug扩展

我们使用Xdebug提供的PHP Debug这个扩展,点击安装,VSCode会自动把扩展相关的文件安装到服务器上,下次我们再次连接服务器,或者换一个开发电脑连接服务器时,都可以直接使用,不需要再次安装

图片

    7)运行脚本

安装完成后,我们再次执行运行命令,会出来一个选项,我们需要选上“运行当前脚本”命令,才能正常运行

图片

    8)本地运行代码文件

这时,我们就可以在本地运行我们在“使用php调用openai api”文章中的php文件了,注意,运行时的选项应该是“运行当前脚本”

图片

    9)本地修改自动保存服务器

如图,我们已经在本地显示出来了OpenAI API返回的结果,之后所有的开发都可以以此在本地进行,VSCode会自动保存到远程服务器上,并且在远程服务器上运行,自动将结果显示到本地VSCode窗口中

图片

    10)设置断点调试

同样,我们也可以给PHP文件设置断点,进行调试。这个功能需要在服务器进行额外的配置工作,我们将在后续的文章中进行讲述

    11)服务器未配置php提示信息

如果服务器没有配置好PHP运行环境,或者VSCode在服务器上没有找到默认的php,会出现类似的提示

图片

    12)找到php可执行文件

这时,我们需要在服务器上配置好php,或者使用which php命令,找到服务器上php可执行文件所在的路径

    13)设置配置

然后,我们打开配置功能

图片

    14)配置文件设置可执行文件目录

在settings.json中输入php可执行文件所在的路径

图片

    15)比如/usr/local/php/bin/php,保存之后,就可以正常配置和运行PHP了

5、开发环境卸载

    VSCode在服务器上配置的开发环境,都位于当前用户的.vscode-server目录下,如果要卸载开发环境,直接把这个目录从服务器删除就可以了。有时候VSCode升级时,会导致之前的版本不兼容,出现连不上的情况,这时我们也可以删除这个目录,重新按上面的步骤配置一遍就可以了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/978449.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码审计入门学习

简介 HadSky轻论坛程序为个人原创PHP系统,作者为蒲乐天,后端基于puyuetianPHP框架驱动,前端基于 puyuetianUI框架驱动,默认编辑器为puyuetianEditor富文本编辑器,其他非原创框架及驱动JQuery.js 及Font-Awesome字体库…

Java线程池入门03

1. 这3种创建线程池的方式有风险 FixedThreadPool : 固定大小的线程池SingleThreadExecutor : 单个线程的线程池CachedThreadPool : 可缓存的线程池 FixedThreadPool内部其实也是使用ThreadPoolExecutor来创建的 等价于 : new ThreadPoolExecutor(nThreads, nThreads, 0L, Tim…

C#连接sql server

连接时,出现如下提示: ERROR [IM014] [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 原因是odbc的驱动和应用程序的架构不一致。我的odbc如下所示: 显示为64位,而c#程序显…

【实战 ES】实战 Elasticsearch:快速上手与深度实践-1.1.2典型应用场景:日志分析、实时搜索、推荐系统

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 为什么选择Elasticsearch?——典型应用场景深度解析1. 引言2. 日志分析:海量数据的实时洞察2.1 行业痛点2.2 ES解决方案关键技术实现: 2.…

SQLite 安装教程以及可视化工具介绍

目录 简述 1. Windows 系统安装 1.1 下载预编译的二进制文件 1.2 解压文件 1.3 配置环境变量 1.4 验证安装 2. GUI 可视化工具 2.1 免费工具 2.1.1 DB Browser for SQLite 2.1.2 SQLiteStudio 2.1.3 SQLite Expert 2.1.4 SQLiteGUI 2.1.5 Antares SQL 2.1.6 DbGa…

C#快速调用DeepSeek接口,winform接入DeepSeek查询资料 C#零门槛接入DeepSeek C#接入DeepSeek源代码下载

下载地址<------完整源码 在数字化转型加速的背景下&#xff0c;企业应用系统对智能服务的需求日益增长。DeepSeek作为先进的人工智能服务平台&#xff0c;其自然语言处理、图像识别等核心能力可显著提升业务系统的智能化水平。传统开发模式下&#xff0c;C#开发者需要耗费大…

IP------PPP协议

这只是IP的其中一块内容PPP&#xff0c;IP还有更多内容可以查看IP专栏&#xff0c;前一章内容为网络类型&#xff0c;可通过以下路径查看IP---网络类型-CSDN博客&#xff0c;欢迎指正 3.PPP协议 1.PPP优点 网络类型&#xff1a;p2p PPP---点到点协议 兼容性会更强凡是接口或…

山东大学软件学院ai导论实验之生成对抗网络

目录 实验目的 实验代码 实验内容 实验结果 实验目的 基于Pytorch搭建一个生成对抗网络&#xff0c;使用MNIST数据集。 实验代码 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data…

【Java 面试 八股文】JVM 虚拟机篇

JVM 虚拟机篇 1. JVM组成1.1 JVM由那些部分组成&#xff0c;运行流程是什么&#xff1f;1.2 什么是程序计数器&#xff1f;1.3 你能给我详细的介绍Java堆吗?1.4 Java 虚拟机栈1.4.1 Java Virtual machine Stacks (java 虚拟机栈)1.4.2 栈和堆的区别1.4.3 垃圾回收是否涉及栈内…

钉钉MAKE AI生态大会思考

1. 核心特性 1.1 底层模型开放 除原有模型通义千问外,新接入猎户星空、智普、MinMax、月之暗面、百川智能、零一万物。 1.2 AI搜索 AI搜索贯通企业和个人散落在各地的知识(聊天记录、文档、会议、日程、知识库、项目等),通过大模型对知识逻辑化,直接生成搜索的答案,并…

flex布局自定义一行几栏,靠左对齐===grid布局

模板 <div class"content"><div class"item">1222</div><div class"item">1222</div><div class"item">1222</div><div class"item">1222</div><div class"…

当下弹幕互动游戏源码开发教程及功能逻辑分析

当下很多游戏开发者或者想学习游戏开发的人&#xff0c;想要了解如何制作弹幕互动游戏&#xff0c;比如直播平台上常见的那种&#xff0c;观众通过发送弹幕来影响游戏进程。需要涵盖教程的步骤和功能逻辑的分析。 首先&#xff0c;弹幕互动游戏源码开发教程部分应该分步骤&…

jdk21下载、安装(Windows、Linux、macOS)

Windows 系统 1. 下载安装 访问 Oracle 官方 JDK 下载页面 或 OpenJDK 下载页面&#xff0c;根据自己的系统选择合适的 Windows 版本进行下载&#xff08;通常选择 .msi 安装包&#xff09;。 2. 配置环境变量 右键点击 “此电脑”&#xff0c;选择 “属性”。 在左侧导航栏…

2.部署kafka:9092

官方文档&#xff1a;http://kafka.apache.org/documentation.html (虽然kafka中集成了zookeeper,但还是建议使用独立的zk集群) Kafka3台集群搭建环境&#xff1a; 操作系统: centos7 防火墙&#xff1a;全关 3台zookeeper集群内的机器&#xff0c;1台logstash 软件版本: …

VUE向外暴露文件,并通过本地接口调用获取,前端自己生成接口获取public目录里面的文件

VUE中&#xff0c;如果我们想对外暴露一个文件&#xff0c;可以在打包之后也能事实对其进行替换&#xff0c;我们只需要把相关文件放置在public目录下即可&#xff0c;可以放置JSON&#xff0c;Excel等文件 比如我在这里放置一个other文件 我们可以直接在VUE中使用axios去获取…

ubuntu-24.04.1-desktop 中安装 QT6.7

ubuntu-24.04.1-desktop 中安装 QT6.7 1 环境准备1.1 安装 GCC 和必要的开发包:1.2 Xshell 连接 Ubuntu2 安装 Qt 和 Qt Creator:2.1 下载在线安装器2.2 在虚拟机中为文件添加可执行权限2.3 配置镜像地址运行安装器2.4 错误:libxcb-xinerama.so.0: cannot open shared objec…

应用的负载均衡

概述 负载均衡&#xff08;Load Balancing&#xff09; 调度后方的多台机器&#xff0c;以统一的接口对外提供服务&#xff0c;承担此职责的技术组件被称为“负载均衡”。 负载均衡器将传入的请求分发到应用服务器和数据库等计算资源。负载均衡是计算机网络中一种用于优化资源利…

Linux: 已占用接口

Linux: 已占用接口 1. netstat&#xff08;适用于旧系统&#xff09;1.1 书中对该命令的介绍 2. ss&#xff08;适用于新系统&#xff0c;替代 netstat&#xff09;3. lsof&#xff08;查看详细进程信息&#xff09;4. fuser&#xff08;快速查找占用端口的进程&#xff09;5. …

组件注册方式、传递数据

组件注册 一个vue组件要先被注册&#xff0c;这样vue才能在渲染模版时找到其对应的实现。有两种注册方式&#xff1a;全局注册和局部注册。&#xff08;组件的引入方式&#xff09; 以下这种属于局部引用。 组件传递数据 注意&#xff1a;props传递数据&#xff0c;只能从父…

使用DeepSeek/chatgpt等AI工具辅助网络协议流量数据包分析

随着deepseek,chatgpt等大模型的能力越来越强大&#xff0c;本文将介绍一下deepseek等LLM在分数流量数据包这方面的能力。为需要借助LLM等大模型辅助分析流量数据包的同学提供参考&#xff0c;也了解一下目前是否有必要继续学习wireshark工具以及复杂的协议知识。 pcap格式 目…