AI概述

  • Artificial Intelligence人工智能,让机器模仿人类的思考、学习、推理、解决问题
    • 大语言模型Large Language Models,指使用代码模拟人脑神经网络的程序
  • AI大模型部署方案
    • 本地部署:数据安全、自主可控、长期成本低
    • 调用官方API:Application Programming Interface应用程序编程接口
    • 云服务平台:使用阿里云百炼、百度千帆、火山引擎等平台提供的API服务
  • 使用HTTP服务调用API
    • 请求方式:
      • GET请求:请求参数在请求路径中携带,如:api/courses?name=Python&status=1(参数1name=Python,参数2status=1)
      • POST请求:请求参数在请求体中携带,请求大小无限制
    • 请求状态码:
      • 200:请求成功
      • 400:请求参数错误
      • 404:请求资源不存在,url输入有误,或网站资源被删除了
      • 500:服务器异常
    • 请求格式:请求行(请求方式、资源路径)、请求头(key:value)、请求体(post方式)
    • 响应格式:响应行(状态码)、响应头(key:value)、响应体
  • JSON_JavaScript Object Notation格式
    • 类似于Python中的字典,都是key:value的形式
      • 对象:用{}表示,{}之间均为键值对
      • 数字:整数和小数直接表示
      • 字符串:用""表示
      • 布尔:truefalse
      • 列表:用[]表示
  • 提示词工程Prompt Engineering
    • 引导AI思考,限制其输出结果,明确期望的结果
      1. 给大模型设定角色与能力
      2. 明确核心请求与任务
      3. 按步骤拆解复杂任务
      4. 指定风格与语气
      5. 明确输出格式
      6. 提供输入输出的示例

使用Apifox调用DeepSeek API

  • 官方文档:POST请求
    curl https://api.deepseek.com/chat/completions \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${DEEPSEEK_API_KEY}" \
    -d '{
        "model": "deepseek-chat",
        "messages": [
          {"role": "system", "content": "You are a helpful assistant."},
          {"role": "user", "content": "Hello!"}
        ],
        "stream": false
      }'
    
    • 请求的URL地址:https://api.deepseek.com/chat/completions
    • Content-Type:请求头,表示向服务器发送json数据
    • Authorization:请求头,表示deepseek的API_KEY
    • -d:请求体内容
    {
      "model": "deepseek-chat",
      "messages": [
        {
          "role": "system",
          "content": "You are a helpful assistant."
        },
        {
          "role": "user",
          "content": "Hello!"
        }
      ],
      "stream": false
    }
    
    • "model": "deepseek-chat"调用的模型
    • "role": "system":系统提示词,表示告知DeepSeek的角色设定
    • "role": "user":用户提示词,表示询问的问题
    • "stream": false:是否采用流式输出
  • 回复内容
    	{
        "id": "c8284535-adf9-49c4-bb4a-d2e0b7b1920e",
        "object": "chat.completion",
        "created": 1770947209,
        "model": "deepseek-chat",
        "choices": [
            {
                "index": 0,
                "message": {
                    "role": "assistant",
                    "content": "你好!我是DeepSeek,一个由深度求索公司创造的AI助手!😊\n\n我是一个纯文本模型,虽然不支持多模态识别功能,但我有很多实用的能力:\n- 可以帮你处理上传的各种文件(图像、txt、pdf、ppt、word、excel等),并从中读取文字信息\n- 拥有128K的上下文长度,能处理很长的对话和文档\n- 支持联网搜索功能(需要你在Web/App中手动开启)\n- 完全免费使用,没有收费计划\n\n我的知识截止到2024年7月,会以热情细腻的方式为你提供帮助。你可以通过官方应用商店下载App来使用我。\n\n有什么问题或需要帮助的地方吗?我很乐意为你解答!✨"
                },
                "logprobs": null,
                "finish_reason": "stop"
            }
        ],
        "usage": {
            "prompt_tokens": 16,
            "completion_tokens": 153,
            "total_tokens": 169,
            "prompt_tokens_details": {
                "cached_tokens": 0
            },
            "prompt_cache_hit_tokens": 0,
            "prompt_cache_miss_tokens": 16
        },
        "system_fingerprint": "fp_eaab8d114b_prod0820_fp8_kvcache"
    }
    
    • "message":回复的信息
    • "usage":本次问答消耗的token
      • "prompt_tokens":询问消耗的token
      • "completion_tokens":回答消耗的token
      • "total_tokens":总消耗的token
    • 上下文记忆
      • 使用该种方法,不具备上下文记忆能力,多次问答内容无法关联
      • 每一次请求响应相互独立
      • 处理方案_滚雪球方案
        • 将每次一次的会话汇总,一并交给AI大模型
        • assistant:记录上一次问题的回答
        		{
            "model": "deepseek-chat",
            "messages": [
                {
                    "role": "system",
                    "content": "你是DeepSeek 一个全能的AI助手"
                },
                {
                    "role": "user",
                    "content": "你是谁?"
                },
                {
                    "role": "assistant",
                    "content": "你好!我是DeepSeek,一个由深度求索公司创造的AI助手!😊\n\n我是一个纯文本模型,虽然不支持多模态识别功能,但我有很多实用的能力:\n- 可以帮你处理上传的各种文件(图像、txt、pdf、ppt、word、excel等),并从中读取文字信息\n- 拥有128K的上下文长度,能处理很长的对话和文档\n- 支持联网搜索功能(需要你在Web/App中手动开启)\n- 完全免费使用,没有收费计划\n\n我的知识截止到2024年7月,会以热情细腻的方式为你提供帮助。你可以通过官方应用商店下载App来使用我。\n\n有什么问题或需要帮助的地方吗?我很乐意为你解答!✨"
                },
                {
                    "role": "user",
                    "content": "你有哪些功能,上一次我问了你什么问题?"
                }
            ],
            "stream": false
        }
        
      • 第二个user:本次需要问答的新问题
    • 回答
    	{
        "id": "2653f04e-e08d-4ab3-81b9-e2f12c788194",
        "object": "chat.completion",
        "created": 1770947953,
        "model": "deepseek-chat",
        "choices": [
            {
                "index": 0,
                "message": {
                    "role": "assistant",
                    "content": "让我来回答你的问题:\n\n## 我的主要功能:\n1. **文本对话与问答** - 回答各种问题,协助写作、分析、学习等\n2. **文件处理** - 支持上传图像、txt、pdf、ppt、word、excel文件,我能读取其中的文字信息进行处理\n3. **长文本处理** - 拥有128K上下文,能处理很长的对话和文档\n4. **联网搜索** - 支持实时信息搜索(需要手动开启)\n5. **多领域协助** - 编程、学术研究、创意写作、数据分析、翻译等\n6. **完全免费** - 没有任何收费计划\n\n## 你上一次的问题:\n你问的是:“你是谁?” - 这是我回答的第一个问题,我向你介绍了我是DeepSeek AI助手的基本情况。\n\n现在这是我们对话的第二个问题!有什么具体的任务需要我帮助吗?无论是学习、工作还是日常问题,我都很乐意协助你!😊"
                },
                "logprobs": null,
                "finish_reason": "stop"
            }
        ],
        "usage": {
            "prompt_tokens": 182,
            "completion_tokens": 200,
            "total_tokens": 382,
            "prompt_tokens_details": {
                "cached_tokens": 128
            },
            "prompt_cache_hit_tokens": 128,
            "prompt_cache_miss_tokens": 54
        },
        "system_fingerprint": "fp_eaab8d114b_prod0820_fp8_kvcache"
    }
    
    • 以此类推,不断累加,大模型就具备了上下文记忆能力
    • token会随着问答次数,不断累加

使用Python调用deepseek API

  • 需要先下载openai软件包
    • pip install openai
  • 官方文档
# Please install OpenAI SDK first: `pip3 install openai`  
import os  
from openai import OpenAI  
  
client = OpenAI(  
    api_key=os.environ.get('DEEPSEEK_API_KEY'),# 调用环境变量DEEPSEEK_API_KEY  
    base_url="https://api.deepseek.com")  
  
# 与AI进行交互  
response = client.chat.completions.create(  
    model="deepseek-chat",  
    messages=[  
        {"role": "system", "content": "你是DeepSeek,一个AI大模型"},  
        {"role": "user", "content": "你好,你是谁?"},  
    ],  
    stream=False  
)  
# 大模型返回的结果  
print(response.choices[0].message.content)
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐