python调用大模型api来进行对话

news/2025/12/4 0:13:49/文章来源:https://www.cnblogs.com/xiaojp65536/p/19304439

一、Openai的接口调用

pip包下载

pip install openai

  

配置sk,url

OPENAI_API_KEY = sk-xxxxx
OPENAI_BASE_URL = https://api.openai.com/v1

  

接口调用

import os
from flask import Flask, jsonify
from openai import OpenAI

config = configparser.ConfigParser()
config.read("config.cfg", encoding="utf-8")

OPENAI_API_KEY = config.get("default", "OPENAI_API_KEY", fallback=None)
OPENAI_BASE_URL = config.get("default", "OPENAI_BASE_URL", fallback=None)

@app.route("/gpt_test")
def gpt_test():"""简单调用一次 GPT,返回一个固定问题的回答"""if not OPENAI_API_KEY:return jsonify({"error": "OPENAI_API_KEY 未配置"}), 500try:# 这里用的是 chat.completions.create 风格resp = client.chat.completions.create(model="gpt-4.1-mini",  # 或者你有的任意模型,比如 gpt-4.1, gpt-4o 等messages=[{"role": "system", "content": "你是一个简洁回答的助手。"},{"role": "user", "content": "简单用一句话介绍一下你自己。"},],)answer = resp.choices[0].message.contentreturn jsonify({"answer": answer})except Exception as e:print("GPT 调用异常:", repr(e))return jsonify({"error": str(e)}), 500

  

 二、阿里通义

安装官方sdk

pip install dashscope

  

使用dashscope.Generation.call基本可以复用

ALIYUN_API_KEY = config.get("default", "ALIYUN_API_KEY", fallback=None)
    @app.route("/llm_test/")
    def llm_test():
        """测试与大模型的对话功能"""
        try:
            messages = [
                {'role': 'system', 'content': 'You are a helpful assistant.'},
                {'role': 'user', 'content': '你是谁?'}
            ]
            answer = chat_with_model(messages)
            return jsonify({"answer": answer})
        except Exception as e:
            print("LLM error:", repr(e))
            return jsonify({"error": str(e)}), 500

  

 这里有几类模型id都可以使用:

  • qwen3-max
  • qwen-plus
  • qwen-turbo

参考:阿里云百炼

如果需要使用到prompt,比如我们有路径app/prompt_store/底下的prompt文件:doc-llm-latest.md

首先按照字符串处理的思路,先读取出来:

from pathlib import Path# run.py 所在目录
BASE_DIR = Path(__file__).resolve().parent
PROMPT_DIR = BASE_DIR / "app" / "prompt_store"
PROMPT_LATEST_FILE = PROMPT_DIR / "doc-llm-latest.md"def load_latest_prompt() -> str | None:"""读取 doc-llm-latest.md 的内容"""try:with PROMPT_LATEST_FILE.open("r", encoding="utf-8") as f:return f.read()except FileNotFoundError:print(f"[WARN] Prompt file not found: {PROMPT_LATEST_FILE}")return Noneexcept Exception as e:print(f"[ERROR] Failed to read prompt: {e!r}")return None

 

然后message格式补充

    @app.route("/llm_with_prompt/")def llm_with_prompt():"""使用最新的Prompt与大模型对话"""prompt = load_latest_prompt()if not prompt:return jsonify({"error": "No prompt available"}), 500try:messages = [{'role': 'system', 'content': prompt},{'role': 'user', 'content': "请用一两句话,概括一下这个文档测试规范的核心目标。"}]answer = chat_with_model(messages)return jsonify({"answer": answer})except Exception as e:print("LLM with prompt error:", repr(e))return jsonify({"error": str(e)}), 500

  

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【本地AI部署】comfyUI + zImageTurbo

首先声明,这是我第一次折腾这些,不是很懂,一些说法表达可能不准确,因此仅供参考。 硬件准备 电脑,我的是windows11, RTX3060 6G,配置不高,因此一些大模型就没法考虑了 关键是我电脑存储空间也不太够…… 环境…

主流玩家的高端主板!七彩虹战斧B850M超级黑刃主板评测:供电散热配置豪华 性价比极佳

主流玩家的高端主板!七彩虹战斧B850M超级黑刃主板评测:供电散热配置豪华 性价比极佳Posted on 2025-12-04 00:00 lzhdim 阅读(0) 评论(0) 收藏 举报一、前言:主流定位高端配置 电竞玩家的超级黑刃 AMD锐龙9000…

6.4 基于线弹性断裂力学(LEFM)的断裂参数

目录6.4 基于线弹性断裂力学(LEFM)的断裂参数6.4.1 三种基本加载方式6.4.2 线弹性材料的裂纹尖端渐近场6.4.3 简单几何形状和加载条件下应力强度因子的解法6.4.3.1 二维无限体中的中心裂纹6.4.3.2 二维半无限体中的边缘…

expdp dmp 导出不完整导入ORA-39059 ORA-39246 故障抢救数据

expdp dmp 导出不完整导入ORA-39059 ORA-39246 故障抢救数据客户一套nc系统,由于安装时候把库建在了比较小的分区上,运行一些时间之后,出现空间不足,现场技术人员对oracle不太熟悉,经过一系列操作(删除业务表空间,复制…

基于 Node.js 与 Tesseract.js 的验证码识别系统设计与实现

一、项目背景 验证码(CAPTCHA)广泛用于防止恶意行为,如刷票、注册机等。传统验证码识别依赖 Python 等语言,但前端开发者也可以使用 JavaScript 完成 OCR 工作。本文介绍如何使用 Node.js 与浏览器版 Tesseract.js…

用 Rust 和 Leptess 构建轻量级验证码识别工具

一、引言 在验证码识别领域,主流方案多以 Python 为主,但对于追求性能、安全性与资源控制的开发者而言,Rust 是一门理想语言。本文将介绍如何使用 Rust 与 Leptess(Tesseract 的 Rust 封装)实现一个基础的验证码识…

12.2 HTML

<img srcset="small.jpg 480w, medium.jpg 800w, large.jpg 1200w" sizes="(max-width: 600px) 100vw, (max-width: 900px) 50vw, 33vw" src="medium.jpg" alt="自适应图片&quo…

WIN11系统环境松灵机器人SCOUT2.0底盘CAN通信控制测试

WIN11系统环境松灵机器人SCOUT2.0底盘CAN通信控制测试参考资料 用户手册 https://new.agilex.ai/raw/upload/20230718/SCOUT 2.0用户手册20230718_74677.pdf 如何通过开源SDK控制松灵机器人SCOUT底盘? https://blo…

软工团队作业4

作业信息这个作业属于哪个课程 首页 - 计科23级34班 - 广东工业大学 - 班级博客 - 博客园这个作业要求在哪里 团队作业4——项目冲刺 - 作业 - 计科23级34班 - 班级博客 - 博客园这个作业的目标 进行项目七天敏捷冲刺七…

使用Frp+Caddy把https映射到内网的web服务

使用Frp+Caddy把https映射到内网的web服务Posted on 2025-12-03 23:40 火冰瓶 阅读(0) 评论(0) 收藏 举报1. frps.tomltomlbindPort = 7000# 开启 http 虚拟主机代理 vhostHTTPPort = 8080 vhostHTTPSPort = 8443…

刷题日记—前缀和

1.基本前缀和与差分思想 2.前缀和的拓展——前缀乘法—左右区间乘积的前后累乘。点击查看代码 ```cpp #include <iostream> #include<vector> using namespace std; //这道题实际上是前缀和的拓展,前缀乘…

第五十四篇

今天是12月3号,上了离散和马原

AI元人文:理论与技术的协同进化框架

AI元人文:理论与技术的协同进化框架 AI元人文构想理论体系聚焦于AI应用中的高维度价值权衡。其实行不仅需要借助AI作为计算与模拟平台来验证复杂模型,更依赖于AI作为最终的载体与执行体,将理论架构转化为实际运作的…

Flutter 安卓测试运行

一、Android Studio创建并启动 Android 模拟器二、Android Studio加速 1.配置国内代理2.settings.gradle.kts增加国内镜像源 pluginManagement {val flutterSdkPath =run {val properties = java.util.Properties()fil…

第七篇Scrum冲刺

第七篇Scrum冲刺 站立式会议照:昨天已完成工作:成员 工作郭涛 #106 设计商店购买逻辑,编写金币扣除逻辑区泽明 #206 完善伤害系统与生命值的联动袁智燊 #306 设计不同难度敌机的生成逻辑梁法恩 #406 设计商店UI的交…

今日趣事

今天和朋友们吃完饭,打车回去学校,我们在车上聊天,我的朋友说之前坐绿皮火车幸好没有遇到臭脚味的,结果我们下车之后,我坐在前面的同学说她在调整桌椅的时候看到司机没有穿鞋子,光着脚开车,啊啊啊啊啊,我就说这…

高德地图_使用PlaceSearch查找指定名称的POI

1. 初始化PlaceSearch使用new AMap.PlaceSearch初始化placeSearch实例 可以使用city与citylimit配置来限定搜索结果在指定的城市范围内let $placeSearch = null function initPlaceSearch() {$placeSearch = new AMap.…