Django接入 免费的 AI 大模型——讯飞星火(2025年4月最新!!!)

上文有介绍deepseek接入,但是需要 付费,虽然 sliconflow 可以白嫖token,但是毕竟是有限的,本文将介绍一款完全免费的 API------讯飞星火

目录

接入讯飞星火(免费)

测试对话

接入Django

扩展建议


接入讯飞星火(免费)

先去官网注册:讯飞开放平台-以语音交互为核心的人工智能开放平台

然后创建应用,获得自己的 APPID,APISecretAPIKey,不会操作的可以看下面这篇教程,也很详细:

如何使用api接入星火大模型(超详细,亲测有效!)_星火api-CSDN博客

只有一个大语言模型是免费的,其他的都是只能体验

获取到自己的 APPID、APISecret、APIKey

点击文档,点击调试,点击右上角转换模板为代码:

复制代码到 pycharm 中,会自动帮你补上 apiPassword

python 复制代码
import requests

if __name__ == '__main__':
    url = "https://spark-api-open.xf-yun.com/v1/chat/completions"
    data = {
        "max_tokens": 4096,
        "top_k": 4,
        "temperature": 0.5,
        "messages": [
            {
                "role": "system",
                "content": ""
            },
            {
                "role": "user",
                "content": "你是谁"
            }
        ],
        "model": "4.0Ultra"
    }
    data["stream"] = True
    header = {
        "Authorization": "Bearer 你的password"
    }
    response = requests.post(url, headers=header, json=data, stream=True)

    # 流式响应解析示例
    response.encoding = "utf-8"
    for line in response.iter_lines(decode_unicode="utf-8"):
        print(line)

代码中 content 就是你要提问的问题,我这里问题是"你是谁",右键运行(记得改api password):

测试对话

大模型是可以根据上下文进行推断的,即根据系统和用户的对话不断改正模型,用户的每次对话,都相当于在调整模型参数,知道最终得到用户想要的结果,下面举一个例子:

python 复制代码
import requests

if __name__ == '__main__':
    url = "https://spark-api-open.xf-yun.com/v1/chat/completions"
    data = {
        "max_tokens": 4096,
        "top_k": 4,
        "temperature": 0.5,
        "messages": [
            {
                "role": "system",
                "content": "你好,我是讯飞大模型"
            },
            {
                "role": "user",
                "content": "怎么去重庆"
            },
            {
                "role": "system",
                "content": "可以坐火车、做高铁"
            },
            {
                "role": "user",
                "content": "我不想用那样的交通工具"
            },
        ],
        "model": "4.0Ultra"
    }
    data["stream"] = True
    header = {
        "Authorization": "Bearer 你的api密钥"
    }
    response = requests.post(url, headers=header, json=data, stream=True)

    # 流式响应解析示例
    response.encoding = "utf-8"
    for line in response.iter_lines(decode_unicode="utf-8"):
        print(line)

这里,我自己构造了一段对话,模型说"可以做火车、高铁去重庆",我说"我不想用那样的交通工具",运行代码后,模型果真给出了不坐火车、高铁去重庆的几种方法:

在对话的过程中,对话信息存储在 message中,然后传参给模型,模型自适应调参,输出更加靠近正确答案的结果。

接入Django

上诉对话可接入 Django 中,实现 web端人机交互。

首先得改造 Spark 函数,让其 message参数通过函数参数传递,而不是在函数内自行设置:

python 复制代码
messages = [
        {
            "role": "system",
            "content": "你好,我是讯飞大模型",
        },
        {
            "role": "user",
            "content": "怎么去重庆",
        },
        {
            "role": "system",
            "content": "可以坐火车、做高铁",
        },
        {
            "role": "user",
            "content": "我不想用那样的交通工具",
        },
    ]
Spark_AI(messages)

这样,就能通过视图函数,传递 message 对话参数给该函数,该函数再将构造好的结果字符串返回给 Django

定义路径:

python 复制代码
path('detect/spark/', views.detect_spark),

定义视图函数:

python 复制代码
from app01.utils.spark_api import Spark_AI
def detect_spark(request):
    messages = [
        {
            "role": "system",
            "content": "你好,我是讯飞大模型",
        },
        {
            "role": "user",
            "content": "怎么去重庆",
        },
        {
            "role": "system",
            "content": "可以坐火车、做高铁",
        },
        {
            "role": "user",
            "content": "我不想用那样的交通工具",
        },
    ]
    contents = Spark_AI(messages)
    return render(request,"spark.html",{"contents":contents})

html页面:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <p>{{ contents }}</p>
    </div>
</body>
</html>

运行结果:

扩展建议

当然,还要很多优化的地方,大家可以自己做做优化,我这儿提供几点建议

1、页面做美观,识别换行符等等。

2、上下文在web端输入,每次给出答复后,视图函数会通过数据库或者列表存储上一次的对话内容,作为下一次对话的参数传递给模型。

3、新建对话功能,用于清除或者新建 message 参数数据库或者列表,使得新对话不受之前对话的影响。

4、本方法虽然获取到的数据是一行一行获取,但是处理数据得一下全部处理完,然后才能返回给页面,web 端等待时间很长,可以考虑 websockt 等实时通信手段。

感谢您的观看!!!

相关推荐
Full Stack Developme5 分钟前
java.nio 包详解
java·python·nio
新手村领路人44 分钟前
opencv gpu cuda python c++版本测试代码
python·opencv·cuda
高洁011 小时前
大模型-高效优化技术全景解析:微调 量化 剪枝 梯度裁剪与蒸馏 下
人工智能·python·深度学习·神经网络·知识图谱
helloworddm1 小时前
Orleans 流系统握手机制时序图
后端·c#
white-persist1 小时前
CSRF 漏洞全解析:从原理到实战
网络·python·安全·web安全·网络安全·系统安全·csrf
Bellafu6662 小时前
本地搭建EXAM-MASTER考试系统
python
开心-开心急了2 小时前
Flask入门教程——李辉 第三章 关键知识梳理
后端·python·flask
Code blocks3 小时前
GB28181视频服务wvp部署(一)
java·spring boot·后端
rannn_1113 小时前
【学以致用|python自动化办公】OCR批量识别自动存为Excel(批量识别发票)
python·ocr·excel·财务
我命由我123453 小时前
Spring Boot - Spring Boot 静态资源延迟响应(使用拦截器、使用过滤器、使用 ResourceResolver)
java·spring boot·后端·spring·java-ee·intellij-idea·intellij idea