【GPT调用】本地使用python调用GPT接口

2024-05-09 09:36

本文主要是介绍【GPT调用】本地使用python调用GPT接口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

python调用GPT接口

    • 环境变量设置
    • 主调用方法
    • 执行结果

环境变量设置

.env文件中配置GPT环境变量

api_key="你的GPT-API-KEY"
url=https://ai-proxy.ksord.com/wps.openai.azure.com/openai/deployments/gpt-4-32k/chat/completions?api-version=2023-09-01-preview

主调用方法

一般需要先安装load_dotenv库:

pip install load_dotenv

import requests
import os
from dotenv import load_dotenv# 获取env文件中的环境变量
load_dotenv()# 环境变量赋值
endpoint = os.getenv("url")
api_key = os.getenv("api_key")# 封装GPT请求方法
def get_completion(messages, model="gpt-4-32k"):headers = {"Content-Type": "application/json","api-key": api_key,}payload = {"model": model, "messages": messages, "temperature": 0.5, "top_p": 1, "frequency_penalty": 0, "presence_penalty": 0, "stop": None}response = requests.post(endpoint, headers=headers, json=payload, stream=True)try:# 提取GPT返回的结果信息return response.json()["choices"][0]["message"]["content"]except Exception as e:# 请求报错时,返回错误原因print(response.json())raise e# 赋初值,也可设为空List
messages = [{"role": "system", "content": "You are a helpful assistant."}]# 设置传入message值为input型
# 设置特殊指令break
# 打印返回结果
while True:message = input("User: ")if message.lower() in ("quit", "exit"):breakmessages.append({"role": "user", "content": message})anwser = get_completion(messages)print(f"Bot: {anwser}")messages.append({"role": "assistant", "content": anwser})

执行结果

在这里插入图片描述

这篇关于【GPT调用】本地使用python调用GPT接口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973046

相关文章

关于Java的数组的使用

关于一维数组的使用 代码示例一如下: package com;public class test_array {public static void main(String[] args){//1.如何定义 一个 数组//1.1数组的声明String[] names;int[] scores;//1.2数组的初始化://1.2.1静态初始化:初始化数组与数组元素赋值同时进行nam

Android_03_数据库的使用总结

前言: 1>区分SQL和SQLite SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统。SQL 语句用于取回和更新数据库中的数据。 SQL 可与数据库程序协同工作,比如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。 不幸地是,存在着很多不同版本的 SQL 语言,但是为了与 ANSI 标准相

Android_02_关于SharePreferences的使用

前言: 我们使用SharePreferences的主要目的是针对一些简单的数据进行存取,其是通过键值对来存取的, 其实质是通过xml文件进行保存的;对于一些简单数据的存取,我们可以用SharePreferences,替代 其他几种复杂的数据存取的方式,比如文件的读写或者数据库的操作; 本示例演示的内容是:通过SharedPreferences来实现记住密码的功能,无需第二次再输入密码

Source Insight的安装及使用

第一步:source insight的下载及安装 source insight的资源下载见如下链接: http://download.csdn.net/detail/u010661782/9454935 第二步:source insight的使用 1>新建工程 project  ----->  new project  ------>   填写工程名和工程存放

Java的clone()方法使用详解

前言: 我们知道,在java的object类中,有这么一个方法clone(),这个方法有什么用呢?怎样才能正确地使用这个方法呢? 下面一一来进行阐述一下 clone()方法详解: 1>clone()方法的作用 顾名思义,clone()方法的作用就是克隆的意思,引入这个方法,这样就便于我们构建属于自己的一些本地对象副本。 这样我们就不用担心因为副本对象的引用而使原生的对象发生改变。

Android的Paint和Canvas的使用总结

前言: 在自定义控件时,我们有时可能会用到Paint和Canvas这两个类, Paint相当于我们在画画时的画笔,Canvs相当于我们在画画时的画布, 下面来简单讲一下这两个类常见的一些用法 Paint的使用总结: setAlpha(int a): 设置画笔的透明度,这样画笔所画的位置就会呈一定的透明度 setAntiAlias(boolean aa): 设置 tr

Android的FragmentTabHost使用总结(顶部或底部菜单栏)

前言: 我们经常看到一些app的自带一些标签,并且可以来回进行切换, 本章我们就通过FragmentTabHost来学习一下其如何实现,效果图如下: 步骤一: 编写布局文件 <android.support.v4.app.FragmentTabHost android:layout_width="match_parent" android:la

Android的RecyclerView使用总结

前言: RecyclerView 小组件比 ListView 更高级且更具灵活性。 此小组件是一个用于显示庞大数据集的容器,可通过保持有限数量的视图进行非常有效的滚动操作。 如果您有数据集合,其中的元素将因用户操作或网络事件而发生改变,请使用RecyclerView 小组件。 RecyclerView  类别将通过提供下列功能简化庞大数据集的显示与处理: 用于项目定位的布局管理器 用于通用项目

企业支付宝账号开发接口教程--JAVA-UTF-8(实际操作完善中...SpringMVC+JSP)

关于即时到账的开发。审核通过。简单测试如下。 希望看的可以收藏或者赞一下哦。 1.拥有自己的支付宝企业账号。去产品商店选择适合自己的方案。并签约合同。 2.选择合适的商家收款产品并去签约。填写相应的信息 3.在商家服务会有PID和KEY是关键的东西。 4.选择自己签约的产品类型,下载对应的接口api与测试代码 即时到账收款 --alipaydirect 网银支付 -

有懂discuz的吗?我需要在我自己的系统注册一个账号的时候,也把当前注册的账号放在discuz的用户里面。应该怎么做呀。需要discuz和java的接口吗?需要更改哪些东西。

discuz-ucenter_api_for_java 有懂discuz的吗?我需要在我自己的系统注册一个账号的时候,也把当前注册的账号放在discuz的用户里面。应该怎么做呀。需要discuz和java的接口吗?需要更改哪些东西。 所有的代码 1.UC.java package com.fivestars.interfaces.bbs.api;import java.io.IO