教你如何使用狐表结合chatgpt、DeepSeek的ai大模型进行数据分析(送源码)

发表日期: 2025-04-13

一、简介

目前ai大模型已经很流行,但是绝大部分的用户,也只是停留在跟AI网页聊天对话,并不知道如何能跟狐表结合在一起。

因为狐表是个数据管理软件,它要求有规范化的数据,但是ai每次回复的内容,都是一大片文字,并无结构化,所以大部分人就止步于“与ai聊天”而已。


其实,chatgpt在2024年3月,是创造性的推出了一个json结构化的api回复方法,2025年1月横空出世的DeepSeek,也是支持这个json结构化。

啥意思?就是当你问chatgpt的内容,它能回复你指定格式化的json数据,这就意味着,我们能够把狐表的数据,叫ai做分析处理,然后把结果给我们,再存入数据库。


例如:

1把商品档案表里的“中文标题”字段,叫ai改为英文,并回写到狐表的“英文标题”字段

2把一大段商品描述,让ai去做阅读理解,并提炼编写出“产品亮点”


3.png

1744528772377.jpg

二、狐表结合chatgpt的方法

2.1 注册chatgpt的api接口

大家都知道chatgpt在国内是无法直接访问的,需要科学上网,不过很多代理的网站,它们已经帮我们打通,我们直接注册就可以用了。

例如我在用的2233.ai,费用跟chatgpt官方一样,注册好后,就可以用api和sceret可以使用,无需科学上网。

反正经过我测试,用来做数据分析,api的消耗费用都很低,几十元可以用很多个月了。

image.png

image.png

image.png

2.2生成api的secret key

image.png


2.3狐表通过api请求代码

Dim r As Row = Tables("淘宝商品档案").Current
If r IsNot Nothing Then
    '1构造请求json
    '1.1设置system提示词
     Dim content1 As String = "你是一个资深的电商运营主管。根据产品描述,编写产品中文标题、产品英文标题、5个产品亮点(类似于亚马逊5点描述)。具体要求:"
    content1 &= "1)要尽量概括提取描述里的产品特性关键词,使之更容易在电商平台被消费者搜索。"
    content1 &= "2)标题可以长一些,包含更多产品特色,不超过255个字符即可。"
    content1 &= "3)编写的内容,不需要用markdown格式,普通的文字格式即可。"
    content1 &= "4)5个产品亮点,不需要12345开头做序号。"
    content1 &= "5)如果产品描述里有关于产品尺寸的,那亮点里也一定要写,因为要告知消费者产品尺寸。"
    
    '1.2配置user提示词
    Dim content2 As String = "产品描述:" & CStr(r("产品描述"))
    
    '1.3构造回复的json格式(从gpt4开始,才支持结构化json回复,3.5是不行的,版本说明可看下面链接)
    'json格式的官方说明文档:https://platform.openai.com/docs/guides/structured-outputs?api-mode=responses
    Dim postData As JObject = New JObject(
        New JProperty("model", "gpt-4o"), 
        New JProperty("messages", New JArray(
            New JObject(
                New JProperty("role", "system"), 
                New JProperty("content", content1) 
            ), 
            New JObject(
                New JProperty("role", "user"), 
                New JProperty("content", content2) 
            )
        )), 
        New JProperty("response_format", New JObject(
            New JProperty("type", "json_schema"), 
            New JProperty("json_schema", New JObject(
                New JProperty("name", "my_response"), 
                New JProperty("schema", New JObject(
                    New JProperty("type", "object"), 
                    New JProperty("properties", New JObject(
                        New JProperty("产品中文标题", New JObject(New JProperty("type", "string"))), 
                        New JProperty("产品英文标题", New JObject(New JProperty("type", "string"))), 
                        New JProperty("5个产品亮点", New JObject(
                            New JProperty("type", "array"), 
                            New JProperty("items", New JObject(New JProperty("type", "string")))
                        ))
                    )), 
                    New JProperty("required", New JArray("产品中文标题", "产品英文标题", "5个产品亮点")), 
                    New JProperty("additionalProperties", False)
                )), 
                New JProperty("strict", True)
            ))
        ))
    )

    '2构造请求
    Dim hc As New HttpClient("https://api.gptsapi.net/v1/chat/completions")
    hc.Headers.Add("Authorization", "Bearer sk-ojve7ed7322020a7d160xxx28a17abd8b5b286a6af5bwxxx") '【改为你的秘钥!!】
    hc.ContentType = "application/json"
    hc.Content = postData.ToString
    e.Form.Controls("TextBox_请求json").Value = postData.ToString '把请求打印到窗口
    e.Form.Controls("TextBox_返回json").Value = Nothing
    Application.DoEvents '强制刷新
    
    '3解析结果
    Dim s As String = hc.GetData
    If s <> "" Then
        Dim jt As JToken = JToken.Parse(s)
        e.Form.Controls("TextBox_返回json").Value = jt.ToString '把结果打印到窗口

        '解析内容
        Dim jt_content As JToken = JToken.Parse(jt("choices")(0)("message")("content").ToString) '必须先把核心内容提取转字符串,再解析为json
        
        '回写表格
        r("中文标题") = CStr(jt_content("产品中文标题"))
        r("英文标题") = CStr(jt_content("产品英文标题"))
        For i As Integer = 1 To 5
            r("产品亮点" & i) = CStr(jt_content("5个产品亮点")(i - 1))
        Next
        r.Save
    End If 
    
Else
    MessageBox.Show("请先选择淘宝商品")
End If

三、狐表结合DeepSeek的方法

3.1注册DeepSeek的api接口

这个注册就简单了,直接在DeepSeek官网注册,然后实名一下,充值10元进去

image.png

3.2生成api的secret key

image.png

3.3狐表通过api请求代码

Dim r As Row = Tables("淘宝商品档案").Current
If r IsNot Nothing Then
    '1DeepSeek要求SSL1.2安全协议,才能请求
    Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls12

    '2构建请求内容的json
    '2.1这个就是ai会回复的json格式,说明文档:https://api-docs.deepseek.com/zh-cn/guides/json_mode
    Dim json_format As JObject = New JObject(
        New JProperty("产品中文标题", "<产品中文标题>"), 
        New JProperty("产品英文标题", "<产品英文标题>"), 
        New JProperty("5个产品亮点", New JArray("产品亮点1", "产品亮点2", "产品亮点3", "产品亮点4", "产品亮点5"))
    )

    '2.2这个是system的提示词,刚才的json格式也要拼接在里面
    Dim content1 As String = "你是一个资深的电商运营主管。根据产品描述,编写产品中文标题、产品英文标题、5个产品亮点(类似于亚马逊5点描述)。具体要求:" & 
        "1)要尽量概括提取描述里的产品特性关键词,使之更容易在电商平台被消费者搜索。" & 
        "2)标题可以长一些,包含更多产品特色,不超过255个字符即可。" & 
        "3)编写的内容,不需要用markdown格式,普通的文字格式即可。" & 
        "4)5个产品亮点,不需要12345开头做序号。" & 
        "5)如果产品描述里有关于产品尺寸的,那亮点里也一定要写,因为要告知消费者产品尺寸。" & 
        "6)以 JSON 的形式输出,输出的 JSON 需遵守以下的格式:" & CompressJson(json_format)

    '2.3这个是user的提示词
    Dim content2 As String = "产品描述:" & CStr(r("产品描述"))

    '2.4把前面的,汇总成最终请求json
    Dim postData As JObject = New JObject(
        New JProperty("model", "deepseek-chat"), 
        New JProperty("stream", False), 
        New JProperty("response_format", New JObject(
            New JProperty("type", "json_object")
        )), 
        New JProperty("messages", New JArray(
            New JObject(New JProperty("role", "system"), New JProperty("content", content1)), 
            New JObject(New JProperty("role", "user"), New JProperty("content", content2))
        ))
    )

    '3构造请求
    '狐表的HttpClient有缺陷,不会把请求内容长度,自动转为ContentLength,导致DeepSeep拒绝请求,所以要用原生的HttpWebRequest
    Dim url As String = "https://api.deepseek.com/chat/completions"
    Dim request As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest)
    request.Method = "POST"
    request.ContentType = "application/json"
    request.Headers.Add("Authorization", "Bearer sk-412312efedfxxxd68b2526875cac6xxx") '【改为你的秘钥!!】
    Dim jsonBytes As Byte() = System.Text.Encoding.UTF8.GetBytes(postData.ToString())
    request.ContentLength = jsonBytes.Length
    '写入请求体
    Dim requestStream As System.IO.Stream = request.GetRequestStream()
    requestStream.Write(jsonBytes, 0, jsonBytes.Length)
    requestStream.Close()
    e.Form.Controls("TextBox_请求json").Value = postData.ToString() '把请求内容,打印在窗口
    Application.DoEvents() '强制刷新窗口

    '4读取响应
    Dim responseText As String = ""
    Dim response As System.Net.HttpWebResponse = CType(request.GetResponse(), System.Net.HttpWebResponse)
    Dim reader As New System.IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8)
    responseText = reader.ReadToEnd()
    reader.Close()
    response.Close()
    
    '5处理响应
    If responseText <> "" Then
        Dim jt As JToken = JToken.Parse(responseText)
        e.Form.Controls("TextBox_返回json").Value = jt.ToString '把返回结果,打印在窗口
        Dim jt_content As JToken = JToken.Parse(jt("choices")(0)("message")("content").ToString()) '必须先把核心内容转字符串,再格式化为json

        '把结果回写表格
        r("中文标题") = CStr(jt_content("产品中文标题"))
        r("英文标题") = CStr(jt_content("产品英文标题"))
        For i As Integer = 1 To 5
            r("产品亮点" & i) = CStr(jt_content("5个产品亮点")(i - 1))
        Next
        r.Save()
    End If 
    
Else
    MessageBox.Show("请先选择淘宝商品")
End If

4.狐表案例源码下载

需要狐表20220818开发板打开,没有也没关系,源码都在上面了,复制就能用。

百度网盘:https://pan.baidu.com/s/1yqnBMeSOBQuZFUC8uLBJsA?pwd=eqrd 



随便看看
商务联系QQ : 2385350359

Copyright 2016-2024 江门蓬江区华越科技公司 版权所有 | 承接软件定制开发,欢迎联系
粤ICP备19148806号-5