当前位置: 首页 > article >正文

【GPT】基于GPT_API_free做一个自己的gpt

最终效果

在这里插入图片描述

项目背景

秉持能免费就绝不花钱的原则,基于github项目GPT_API_free获取的gpt apikey。下面是简单的代码

import json
import os
import requests


openai_url = os.getenv("openaiproxy")
openai_apikey = os.getenv("openaikey")
# 初始化上下文
conversations_his = []

# 添加上下文对话添加
def add_conversations_his(role,content):
    conversations_his.append({"role": role, "content": content})

def generate_code(user_input:str):
    add_conversations_his("user", user_input)
    header = {
        "Content-Type": "application/json",
        "Authorization": "Bearer " + openai_apikey
    }

    body = {
            "model": "gpt-4o-mini",
            "messages": conversations_his
    }

    # ai返回的信息
    resp = requests.post(url=openai_url,headers=header,data=json.dumps(body))

    # 提取ai恢复中的msg并将其添加到历史对话中
    ai_msg = resp.json()["choices"][0]["message"]["content"]
    add_conversations_his("assistant",ai_msg)

    if resp.status_code == 200:
        # print(f"历史对话: {conversations_his}")
        return ai_msg
    else:
        print(f"请求失败: {resp.status_code}")

def conversations():
    # with open("prompt\\system_prompt","r",encoding="utf-8") as f:
    #     content =f.read()
    #     add_conversations_his("system",content)
    while True:
        user_msg = input("You: ")
        if user_msg.lower() in ["退出","exit","quit","q"]:
            break
        ai_respmsg = generate_code(user_msg)
        print(f"GPT: {ai_respmsg}")

if __name__ == "__main__":
    conversations()

http://www.kler.cn/a/284479.html

相关文章:

  • 彻底理解ARXML中的PDU
  • Java-Redisson分布式锁+自定义注解+AOP的方式来实现后台防止重复请求扩展
  • 力扣 653. 两数之和 IV 二叉树/binary-tree two-sum IV
  • 基于Python的膳食健康系统
  • Python 实现阿里滑块全攻略
  • 网络安全:挑战、策略与未来趋势
  • 通信算法之229: 通信系统中的Eb/N0与SNR
  • 【GPT】Coze使用开放平台接口-【4】创建机器人
  • Go 语言文件 I/O 和 OS 操作
  • mysql中的mysql 库不存在,进行恢复
  • 斯坦福UE4 C++课学习补充24:伤害数值
  • ComfyUI 中 Safetensors 文件的介绍
  • 物联网设备在等保测评中的安全考量
  • 若依后端添加子模块swagger分区
  • (转载)内存分配器101——写一个简单的内存分配器
  • SOA通信中间件介绍(一)
  • 某视频云平台存在未授权窃取用户凭据漏洞
  • Es6的let实现原理——代码解析
  • 曾黎登八月《费加罗Figaro》封面:湿发造型魅力大开
  • 风控建模流程一张图
  • 关于武汉芯景科技有限公司的实时时钟芯片XJ8337开发指南(兼容DS1337)
  • 二叉树的相关oj题目 — java实现
  • vben:对话框组件
  • 2024年8月30日(docker部署project-exam-system系统 并用Dockerfile构建java镜像)
  • 西安电子科技大学研究生新生大数据
  • 深入解析Nginx负载均衡中的`down`指令及其应用