摘要:快速落地实战 1. 前置准备
前往 4sapi 平台完成注册认证,在控制台创建专属 API 令牌,开启对应模型权限,保存好 API Key; 本地环境安装 Python 3.: bash 运行 pip install python-dotenv httpx prompt-toolkit
load_dotenv() API_KEY = os.户端与会话 client = httpx.Client(base_url=BASE_URL, timeout=60) session = PromptSession(history=FileHistory(".
日常开发中,我们总会遇到 IDE 内置 AI 助手功能受限、付费订阅成本高、海外模型访问卡顿超时的问题。本文将基于 4sapi,用不到 100 行代码,快速搭建一个轻量、高可用、可完全自定义的个人 AI 代码助手 CLI 工具,5 分钟即可落地使用,彻底解决上述痛点。
这套方案的核心亮点,完全依托 4sapi 的原生能力实现,无需额外开发复杂逻辑:
执行一行命令安装所需依赖:
bash
运行
pip install python-dotenv httpx prompt-toolkit
创建code_assistant.py文件,写入以下精简代码,开箱即用:
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()
创建.env配置文件,写入以下内容:
.env
env
4SAPI_API_KEY=你的4sapi专属API Key 4SAPI_BASE_URL=https://4sapi.com/v1 DEFAULT_MODEL=deepseek-v4
执行命令启动助手:
python code_assistant.py
直接输入你的代码问题,即可获得流式响应,支持/model 模型名一键切换模型,/exit退出程序。
/model 模型名
/exit
暂无回复,快来抢沙发吧!
本次需消耗银元:
100
当前账户余额: 0 银元
前往 4sapi 平台完成注册认证,在控制台创建专属 API 令牌,开启对应模型权限,保存好 API Key; 本地环境安装 Python 3.: bash 运行 pip install python-dotenv httpx prompt-toolkit
加载配置
load_dotenv() API_KEY = os.户端与会话 client = httpx.Client(base_url=BASE_URL, timeout=60) session = PromptSession(history=FileHistory(".
前言
日常开发中,我们总会遇到 IDE 内置 AI 助手功能受限、付费订阅成本高、海外模型访问卡顿超时的问题。本文将基于 4sapi,用不到 100 行代码,快速搭建一个轻量、高可用、可完全自定义的个人 AI 代码助手 CLI 工具,5 分钟即可落地使用,彻底解决上述痛点。
核心优势
这套方案的核心亮点,完全依托 4sapi 的原生能力实现,无需额外开发复杂逻辑:
快速落地实战
1. 前置准备
2. 环境安装
执行一行命令安装所需依赖:
bash
运行
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. 配置与运行
创建
.env配置文件,写入以下内容:env
4SAPI_API_KEY=你的4sapi专属API Key 4SAPI_BASE_URL=https://4sapi.com/v1 DEFAULT_MODEL=deepseek-v4执行命令启动助手:
bash
运行
直接输入你的代码问题,即可获得流式响应,支持
/model 模型名一键切换模型,/exit退出程序。最佳实践