基于 4sapi 搭建个人专属 AI 代码助手 CLI,5 分钟落地

5 阅读4分钟

前言

日常开发中,我们总会遇到 IDE 内置 AI 助手功能受限、付费订阅成本高、海外模型访问卡顿超时的问题。本文将基于 4sapi,用不到 100 行代码,快速搭建一个轻量、高可用、可完全自定义的个人 AI 代码助手 CLI 工具,5 分钟即可落地使用,彻底解决上述痛点。

核心优势

这套方案的核心亮点,完全依托 4sapi 的原生能力实现,无需额外开发复杂逻辑:

  1. 一套代码全模型覆盖:100% 兼容 OpenAI 接口规范,仅需修改模型名称,即可自由切换 GPT、Claude、DeepSeek、Qwen 等 50 + 主流代码大模型,无需重复适配;
  2. 国内专线加速无卡顿:4sapi 国内 BGP 节点加速,接口响应延迟低至 10ms,告别跨境访问超时、断连问题,代码补全、问题答疑全程流畅;
  3. 成本完全可控:支持精细化额度管控,可设置单日 / 单月调用上限,按需付费,无订阅浪费,同等使用强度下成本仅为主流订阅服务的 40%;
  4. 高度自定义:可根据自己的编码习惯、技术栈,定制专属 Prompt,打造适配个人开发流程的 AI 助手。

快速落地实战

1. 前置准备

  • 前往 4sapi 平台完成注册认证,在控制台创建专属 API 令牌,开启对应模型权限,保存好 API Key;
  • 本地环境安装 Python 3.8 + 版本,确保 pip 可用。

2. 环境安装

执行一行命令安装所需依赖:

bash

运行

pip install python-dotenv httpx prompt-toolkit

3. 完整代码实现

创建code_assistant.py文件,写入以下精简代码,开箱即用:

python

运行

from dotenv import load_dotenv
from prompt_toolkit import PromptSession
from prompt_toolkit.history import FileHistory
import httpx
import os
import sys

# 加载配置
load_dotenv()
API_KEY = os.getenv("4SAPI_API_KEY")
BASE_URL = os.getenv("4SAPI_BASE_URL", "https://4sapi.com/v1")
DEFAULT_MODEL = os.getenv("DEFAULT_MODEL", "deepseek-v4")

# 初始化HTTP客户端与会话
client = httpx.Client(base_url=BASE_URL, timeout=60)
session = PromptSession(history=FileHistory(".code_assistant_history"))

# 代码助手专属System Prompt,可根据自己的技术栈自定义
SYSTEM_PROMPT = """
你是一个专业的代码助手,专注于帮开发者解决编码问题,要求如下:
1.  代码输出必须规范、可直接运行,附带清晰的注释与关键步骤说明
2.  优先给出最优、最简洁的实现方案,同时补充备选方案与注意事项
3.  精准定位代码bug,给出可落地的修复方案,解释问题根源
4.  回答精简、直击重点,避免冗余的套话与无效内容
"""

def call_ai(user_input: str, stream: bool = True):
    """调用4sapi接口获取AI响应"""
    headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
    payload = {
        "model": DEFAULT_MODEL,
        "messages": [
            {"role": "system", "content": SYSTEM_PROMPT},
            {"role": "user", "content": user_input}
        ],
        "temperature": 0.4,
        "stream": stream
    }
    try:
        response = client.post("/chat/completions", headers=headers, json=payload)
        response.raise_for_status()
        if stream:
            for line in response.iter_lines():
                if line.startswith(b"data: ") and line != b"data: [DONE]":
                    chunk = line[6:].decode("utf-8")
                    import json
                    data = json.loads(chunk)
                    if content := data["choices"][0]["delta"].get("content"):
                        print(content, end="", flush=True)
            print("\n")
        else:
            return response.json()["choices"][0]["message"]["content"]
    except Exception as e:
        print(f"调用失败:{str(e)}", file=sys.stderr)

def main():
    print("===== 4sapi 专属代码助手 =====")
    print(f"当前模型:{DEFAULT_MODEL} | 输入/exit退出,/model 切换模型\n")
    while True:
        try:
            user_input = session.prompt(">>> ")
            if user_input.strip() == "/exit":
                print("感谢使用,再见!")
                break
            if user_input.strip().startswith("/model"):
                global DEFAULT_MODEL
                DEFAULT_MODEL = user_input.strip().split(" ")[1]
                print(f"已切换模型为:{DEFAULT_MODEL}\n")
                continue
            if not user_input.strip():
                continue
            call_ai(user_input)
        except KeyboardInterrupt:
            continue
        except EOFError:
            break

if __name__ == "__main__":
    main()

4. 配置与运行

  1. 创建.env配置文件,写入以下内容:

    env

    4SAPI_API_KEY=你的4sapi专属API Key
    4SAPI_BASE_URL=https://4sapi.com/v1
    DEFAULT_MODEL=deepseek-v4
    
  2. 执行命令启动助手:

    bash

    运行

    python code_assistant.py
    
  3. 直接输入你的代码问题,即可获得流式响应,支持/model 模型名一键切换模型,/exit退出程序。

最佳实践

  1. 按场景切换模型:简单语法纠错、代码补全用轻量国产模型,响应快、成本低;复杂架构设计、bug 排查用 Claude、GPT 旗舰模型,推理能力更强。
  2. 定制专属 Prompt:根据自己常用的技术栈(如 React、Java、Python),在 System Prompt 中补充专属要求,让 AI 输出更贴合你的编码习惯。
  3. 额度管控:在 4sapi 控制台为令牌设置合理的额度上限,开启额度预警,避免异常调用导致的额外消耗。