1. 项目概述:为什么要把DeepSeek V4和Claude Code连起来?

最近在AI编程这个圈子里,一个挺有意思的玩法开始流行起来:把不同的大模型“串”起来用,让它们各司其职,发挥各自的优势。我这次折腾的就是把DeepSeek最新推出的V4模型,和Anthropic家的Claude Code这个专门为编程优化的模型给对接上。乍一听可能有点抽象,我打个比方:这就像你手头有两个顶级专家,一个(DeepSeek V4)博闻强识,逻辑推理和复杂问题拆解能力一流;另一个(Claude Code)则是十年经验的资深架构师,写代码、审代码、重构代码是看家本领。单独用任何一个都已经很强了,但如果能让它们“对话”起来,让DeepSeek去理解你的自然语言需求、分析复杂任务,然后让Claude Code来精准地执行代码层面的实现,这个组合的威力可能远超你的想象。

我最初想尝试这个配置,主要是为了解决几个实际痛点。一是处理一些非标准的、描述模糊的编程需求时,通用大模型有时会“想太多”或者“想偏了”,生成的代码骨架不错,但细节经不起推敲。二是当需要深度迭代和优化一段现有代码时,我希望有一个更专注、更“固执”于代码最佳实践的助手来把关。DeepSeek V4在理解意图和规划步骤上表现惊艳,而Claude Code在代码的规范性、安全性和性能上往往有更严格的自我要求。把它们接起来,本质上是在构建一个智能体的“决策-执行”流水线。

这个教程适合谁呢?如果你是一个开发者,尤其是经常需要探索新工具、搭建自动化工作流的,那这套配置会让你如虎添翼。它也同样适合技术负责人、研究员,或者任何希望将大语言模型的能力更深度、更可靠地集成到具体开发任务中的人。整个过程不需要你从头训练模型,核心在于“配置”和“调度”,所以即使你对底层AI原理了解不深,只要跟着步骤走,也能在自己的机器上跑通这个强大的组合。接下来,我就把从环境准备到成功联调的完整过程,包括我踩过的坑和总结的技巧,毫无保留地分享给你。

2. 核心思路与架构设计:理解“串联”的工作流

在开始动手敲命令之前,我们得先搞清楚要把这两个模型“接”起来,到底接的是什么,以及它们怎么协同工作。这不是简单地把两个聊天窗口并排打开,而是要实现一个自动化的、可编程的交互流程。

2.1 核心交互模式解析

最直观的串联模式是 “接力模式” 。在这种模式下,工作流是这样的:用户提出一个综合性的开发需求(例如:“帮我设计一个用Flask搭建的REST API,要求包含用户认证、数据验证,并连接PostgreSQL数据库”)。这个需求首先发送给DeepSeek V4。DeepSeek V4的角色是“产品经理兼系统分析师”,它会拆解这个需求,生成一份详细的实现方案,可能包括:技术栈选型(Flask + SQLAlchemy + JWT)、目录结构规划、核心路由设计、数据库模型定义、以及分步骤的实现清单。

然后,这份详细的方案不会直接给用户,而是作为“任务说明书”被自动提交给Claude Code。Claude Code的角色是“高级开发工程师”,它接收这份说明书,并严格按照要求,开始生成具体的、可运行的代码文件。它可能会先创建 app.py ,然后创建 models.py auth.py ,并在每个文件中填充高质量的、符合规范的代码。最后,组合生成的完整代码项目返回给用户。

另一种实用的模式是 “评审优化模式” 。你先用Claude Code生成一段初始代码,然后把这段代码连同你的功能描述一起交给DeepSeek V4,让它从更高维度的架构、算法选择、潜在边缘情况等方面进行“代码评审”,并提出优化建议。接着,你可以把DeepSeek的评审意见再次反馈给Claude Code,让它根据意见重构代码。这个过程可以迭代多次,相当于让两个专家对你的代码进行多轮“研讨”。

2.2 技术架构选型:API网关与智能体框架

要实现上述自动化流程,我们不能依赖于手动复制粘贴。这就需要引入一个中间层来协调。主流有两种技术路径:

路径一:使用API网关与自定义脚本。 这是比较轻量、自由度高的方式。你需要分别申请DeepSeek和Claude(通过Anthropic API)的API密钥。然后,写一个Python脚本,这个脚本充当调度器(Orchestrator)。它接收用户输入,先调用DeepSeek V4的API,得到分析结果;再解析这个结果,将其作为新的提示词(Prompt)的一部分,去调用Claude Code的API;最后整合两者的输出。这种方式要求你熟悉这两个平台的API文档,并且自己处理错误重试、上下文管理(Token限制)和对话逻辑。

路径二:使用现成的智能体(Agent)框架。 这是更高效、更专业的选择。目前市面上像 LangChain LlamaIndex 或是 AutoGen 这类框架,本质上就是为编排多个AI模型/工具而生的。以LangChain为例,你可以轻松定义两个“聊天模型”节点(一个连接DeepSeek,一个连接Claude),然后通过“链”(Chain)或“智能体”(Agent)来定义它们之间的交互顺序和规则。框架帮你解决了上下文传递、格式解析、流式输出等底层问题,让你更专注于工作流设计。

对于大多数想要快速上手的开发者,我强烈推荐从 路径二 开始,特别是使用LangChain。它生态成熟,社区支持好,能让你避免重复造轮子。本教程也将主要基于LangChain来演示。当然,我也会简要说明纯API调用的核心要点,供喜欢“从底层摸起”的朋友参考。

2.3 环境与账号准备清单

在开始编码前,请确保你准备好了以下几样东西,这能让你后续过程一路畅通:

  1. Python环境 :建议使用Python 3.10或以上版本。使用 conda venv 创建独立的虚拟环境是 必须 的好习惯,避免包冲突。
  2. DeepSeek API访问权限 :访问DeepSeek平台,注册账号,并在控制台中创建API Key。记下这个Key,同时注意查看其API的终端地址(Endpoint)和当前支持的模型名称(如 deepseek-chat deepseek-coder ,具体需确认V4的API模型名)。
  3. Anthropic API访问权限 :访问Anthropic官网,注册并创建API Key。Claude Code通常通过特定的模型名称来调用,例如 claude-3-5-sonnet-20241022 (请以当时最新版为准)。Anthropic的API有独立的计费方式和速率限制,需要单独留意。
  4. 网络条件 :确保你的开发环境能够稳定访问上述两个API服务。这部分属于基础设施,需要自行解决。

注意 :保管好你的API Key!永远不要将它们直接硬编码在脚本中然后上传到GitHub等公开仓库。务必使用环境变量或配置文件来管理,这是安全开发的底线。

3. 分步配置实战:基于LangChain搭建串联流水线

接下来,我们进入实操环节。我会假设你已经按照上一节的要求,准备好了Python虚拟环境、两个API Key,并且决定采用LangChain框架。

3.1 基础环境搭建与依赖安装

首先,激活你的虚拟环境,然后安装核心依赖。LangChain是一个模块化的框架,我们需要安装核心包以及连接不同AI模型所需的特定集成包。

# 安装LangChain核心包
pip install langchain langchain-core

# 安装用于调用OpenAI兼容API的包(DeepSeek的API通常与此兼容)
pip install langchain-openai

# 安装用于调用Anthropic Claude API的包
pip install langchain-anthropic

# 可选但推荐:安装langchain-community,它包含更多社区维护的组件和工具
pip install langchain-community

# 安装用于管理环境变量的python-dotenv
pip install python-dotenv

这里解释一下选型理由: langchain-openai 虽然名字叫“openai”,但它实际上是一个实现了OpenAI API标准协议的客户端。许多国内外的模型提供商(包括DeepSeek)都提供了与OpenAI API兼容的接口,这意味着我们可以用同一套代码去调用它们,只需修改base_url和api_key。这极大地简化了开发。而 langchain-anthropic 则是Anthropic官方维护的集成包,用于调用Claude系列模型。

3.2 配置模型连接与测试

安装好依赖后,我们创建一个项目目录,比如叫做 deepseek_claude_bridge 。在里面创建一个 .env 文件来存储敏感信息,以及一个 main.py 作为入口文件。

.env文件内容:

DEEPSEEK_API_KEY=你的DeepSeek_API_Key
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1  # 请根据DeepSeek官方文档确认
ANTHROPIC_API_KEY=你的Anthropic_API_Key

main.py 初始内容:

import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain_anthropic import ChatAnthropic

# 加载环境变量
load_dotenv()

# 1. 初始化DeepSeek V4客户端
# 注意:模型名`deepseek-chat`需要根据DeepSeek官方文档更新为V4的具体名称
deepseek_llm = ChatOpenAI(
    model="deepseek-chat",  # 可能是 "deepseek-v4",请务必查阅最新文档
    openai_api_key=os.getenv("DEEPSEEK_API_KEY"),
    openai_api_base=os.getenv("DEEPSEEK_BASE_URL"),
    temperature=0.3,  # 温度参数调低,让分析更专注、稳定
    max_tokens=2000,   # 根据需求调整
)

# 2. 初始化Claude Code客户端
# 模型名需使用Anthropic支持编程的版本,如 `claude-3-5-sonnet-20241022`
claude_llm = ChatAnthropic(
    model="claude-3-5-sonnet-20241022",
    anthropic_api_key=os.getenv("ANTHROPIC_API_KEY"),
    temperature=0.1,  # 代码生成要求高确定性,温度设低
    max_tokens=4000,   # 代码可能较长,限额设高一些
)

# 简单的独立测试函数
def test_connection():
    """测试两个模型是否能独立正常工作"""
    print("Testing DeepSeek V4...")
    try:
        resp_deepseek = deepseek_llm.invoke("请用一句话介绍你自己。")
        print(f"DeepSeek: {resp_deepseek.content[:100]}...")  # 打印前100字符
    except Exception as e:
        print(f"DeepSeek连接失败: {e}")

    print("\nTesting Claude Code...")
    try:
        resp_claude = claude_llm.invoke("Write a Python function to calculate factorial.")
        print(f"Claude: {resp_claude.content[:100]}...")
    except Exception as e:
        print(f"Claude连接失败: {e}")

if __name__ == "__main__":
    test_connection()

运行这个脚本( python main.py ),如果看到两个模型都返回了合理的回答,恭喜你,最基础的连接配置已经成功了!这一步非常关键,它排除了API Key错误、网络问题、包版本冲突等基础障碍。

3.3 构建串联工作流:使用SequentialChain

最简单的串联就是让A的输出直接作为B的输入。LangChain的 SequentialChain 非常适合这个场景。我们来构建一个“需求分析 -> 代码生成”的接力链。

main.py 中增加以下代码:

from langchain_core.prompts import ChatPromptTemplate
from langchain.chains import SequentialChain, LLMChain

# 定义给DeepSeek的提示词模板:让它扮演需求分析师
analysis_prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一位资深软件架构师和需求分析师。你的任务是将用户模糊或复杂的需求,分解成具体、可执行、分步骤的开发任务清单。清单要清晰,每一步都应该是Claude Code这样的代码生成模型能直接理解并执行的。"),
    ("human", "{user_input}")
])

# 定义给Claude Code的提示词模板:让它根据任务清单写代码
coding_prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一位顶尖的编程专家Claude Code。请严格根据以下任务清单,生成完整、正确、高效、符合最佳实践的代码。只输出代码,除非必要,不添加解释性文字。如果清单中有多个步骤,请生成一个完整的项目,用文件名作为注释来分隔不同文件的内容。"),
    ("human", "任务清单:\n{analysis_result}\n\n请根据以上清单生成代码:")
])

# 创建两个LLMChain
analysis_chain = LLMChain(llm=deepseek_llm, prompt=analysis_prompt, output_key="analysis_result")
coding_chain = LLMChain(llm=claude_llm, prompt=coding_prompt, output_key="final_code")

# 使用SequentialChain将它们串联起来
# 注意:第一个链的输出键(analysis_result)必须与第二个链的输入变量名匹配
overall_chain = SequentialChain(
    chains=[analysis_chain, coding_chain],
    input_variables=["user_input"],
    output_variables=["analysis_result", "final_code"], # 我们可以输出中间结果和最终结果
    verbose=True, # 设为True可以看到链的执行过程,调试时非常有用
)

# 测试串联链
def test_sequential_chain():
    user_request = "创建一个简单的Python命令行待办事项(Todo)应用,可以添加任务、列出任务、标记任务完成。数据用JSON文件存储。"
    print(f"用户需求: {user_request}")
    print("\n" + "="*50 + " 开始执行链条 " + "="*50)
    result = overall_chain.invoke({"user_input": user_request})
    print("\n" + "="*50 + " DeepSeek分析结果 " + "="*50)
    print(result["analysis_result"])
    print("\n" + "="*50 + " Claude生成代码 " + "="*50)
    print(result["final_code"])

# 在main函数中调用 test_sequential_chain()

运行测试,你会看到 verbose=True 模式下,LangChain会打印出每一步的输入输出。DeepSeek V4会生成一份详细的任务清单,例如:

  1. 创建项目目录和 todo.py 主文件。
  2. 设计JSON数据结构(如包含id, task, status的列表)。
  3. 实现 load_tasks() save_tasks() 函数。
  4. 实现 add_task(task_description) 函数。
  5. 实现 list_tasks() 函数。
  6. 实现 complete_task(task_id) 函数。
  7. 创建主循环和命令行交互界面。

然后,这份清单会被自动传递给Claude Code,Claude Code会生成一个结构清晰、包含完整函数实现和主程序的 todo.py 文件代码。

3.4 实现更复杂的交互:自定义函数与RouterChain

简单的顺序链有时不够灵活。比如,在“评审优化模式”下,我们可能需要根据DeepSeek的评审意见,决定是让Claude重构整个模块,还是只修改某个函数。这就需要更精细的控制。

我们可以利用LangChain的 RunnableLambda (或自定义函数)和 RouterChain 的概念来构建条件逻辑。下面是一个简化的示例,展示如何根据评审意见决定下一步动作:

from langchain_core.runnables import RunnableLambda

def analyze_code_quality(original_code: str) -> dict:
    """调用DeepSeek分析代码,返回一个包含决策和反馈的字典"""
    review_prompt = f"""
    请对以下代码进行严格的代码评审。请重点评估:
    1. 代码逻辑正确性。
    2. 潜在的性能瓶颈或Bug。
    3. 代码风格和可读性。
    4. 安全性问题(如SQL注入、输入验证)。

    代码:
    ```python
    {original_code}
    ```

    请给出详细的评审意见,并在最后用一行总结,格式为:
    [决策:需要重构] 或 [决策:无需重构]
    """
    review_response = deepseek_llm.invoke(review_prompt).content

    # 简单解析决策
    if "[决策:需要重构]" in review_response:
        decision = "refactor"
    else:
        decision = "ok"

    return {
        "decision": decision,
        "review_feedback": review_response,
        "original_code": original_code
    }

def refactor_with_claude(context: dict) -> str:
    """根据评审意见,调用Claude重构代码"""
    if context["decision"] == "ok":
        return f"代码评审通过,无需重构。\n评审意见:{context['review_feedback']}\n\n原代码保持不变:\n{context['original_code']}"

    refactor_prompt = f"""
    以下是DeepSeek代码评审专家给出的意见:
    {context['review_feedback']}

    请根据上述评审意见,对以下代码进行重构和优化。只输出重构后的最终代码,并确保新代码解决了评审中提到的问题。

    原代码:
    ```python
    {context['original_code']}
    ```
    """
    refactored_code = claude_llm.invoke(refactor_prompt).content
    return refactored_code

# 将两个函数组合成一个可运行的序列
code_review_chain = RunnableLambda(analyze_code_quality) | RunnableLambda(refactor_with_claude)

# 测试代码评审链
sample_code = """
def calculate_average(numbers):
    sum = 0
    for i in range(len(numbers)):
        sum += numbers[i]
    return sum / len(numbers)
"""
print("开始代码评审与重构流程...")
result = code_review_chain.invoke(sample_code)
print(result)

在这个例子中, analyze_code_quality 函数封装了调用DeepSeek进行评审的逻辑,并提取了一个简单的决策信号。 refactor_with_claude 函数根据这个决策决定是直接返回还是调用Claude进行重构。通过 | 操作符,我们将它们组合成了一个链。这种模式给了你极大的灵活性,你可以设计更复杂的决策树和交互逻辑。

4. 高级配置与优化技巧

基础流程跑通后,我们可以从工程化和效果提升角度,做一些优化,让这个串联系统更健壮、更好用。

4.1 上下文管理与Token优化

大模型有上下文窗口限制(如128K、200K)。在复杂的多轮交互中,很容易超过限制。你需要有策略地管理上下文。

  • 选择性记忆 :在链式调用中,不是所有中间步骤的完整输出都需要传递给下一步。例如,DeepSeek生成的详细分析可能长达上千字,但Claude Code只需要核心的任务清单。你可以在 analysis_chain 后添加一个 RunnableLambda 来提取“任务清单”部分,只将精华传递给下一步。
  • 总结与压缩 :对于非常长的对话或代码,可以在传入下一个模型前,先用模型本身(或小模型)对之前的内容进行总结压缩。LangChain提供了多种 DocumentCompressor 和文本分割器,可以用来管理长文档。
  • 设置合理的max_tokens :为每个模型的调用明确设置 max_tokens 参数,防止单个响应过长,同时为后续交互留出空间。

4.2 提示词(Prompt)工程精调

提示词的质量直接决定了模型输出的质量。针对串联场景,提示词设计要尤其注意:

  • 角色定义清晰 :给每个模型明确的、互斥的角色。就像我们之前做的,DeepSeek是“架构师/分析师”,Claude是“工程师”。在提示词中反复强调这个角色,能减少模型“越界”行为。
  • 输出格式约束 :这是实现自动化解析的关键。要求DeepSeek以特定格式输出分析结果,比如使用Markdown的列表、编号,或者甚至是用 --- 分隔的YAML风格。然后在代码中,你可以用正则表达式或简单的字符串分割来提取结构化信息,再喂给Claude。
    • 示例 :在给DeepSeek的提示词末尾加上“请将任务清单以如下格式输出: ## 任务清单\\n1. [任务一描述]\\n2. [任务二描述]... ”。
  • 迭代式优化 :不要指望一次写出完美的提示词。在实际运行中,观察失败案例,看是DeepSeek分析得不够细,还是Claude误解了任务。然后针对性地调整对应模型的提示词。这是一个持续的过程。

4.3 错误处理与稳定性增强

生产环境下的应用必须考虑错误处理。

  • API调用重试 :网络波动、API限流都很常见。使用 tenacity 库或LangChain内置的 Retry 组件,为API调用添加指数退避的重试机制。
  • 降级策略 :如果Claude Code调用失败,是否可以降级为只用DeepSeek生成代码?或者给出用户友好的错误提示?在你的链中嵌入 try...catch 逻辑。
  • 输入输出验证 :对用户输入进行基本的清理和检查(如长度限制)。对模型的输出,特别是需要被后续步骤解析的部分,进行有效性校验。如果解析失败,可以设计一个回退流程,例如让模型重新生成。
  • 日志记录 :详细记录每一次API调用的输入、输出、Token使用量和耗时。这对于调试、成本分析和效果优化至关重要。

4.4 成本监控与预算控制

两个顶级模型的API调用成本不菲,必须心中有数。

  • 估算Token :在调用API前,可以用 tiktoken (用于OpenAI兼容API)或 anthropic 库自带的tokenizer来估算输入文本的Token数,从而预估成本。
  • 设置预算上限 :在调度脚本中实现简单的预算监控。累计每次调用的Token消耗(输入+输出),当接近每日或每月预算时,停止服务或发出警报。
  • 缓存结果 :对于相同的用户请求,如果之前已经处理过,可以考虑将最终结果(或中间的分析结果)缓存起来,避免重复调用模型产生费用。可以用 diskcache redis 实现。

5. 常见问题与实战排坑记录

在实际配置和运行过程中,我遇到了不少问题。这里把典型问题和解决方案列出来,希望能帮你节省时间。

5.1 模型连接与初始化问题

问题1: langchain-openai 连接DeepSeek时超时或报错 Invalid URL

  • 排查 :首先确认 DEEPSEEK_BASE_URL 完全正确,没有多余的斜杠或拼写错误。DeepSeek的API地址可能会变更,务必查阅其 最新官方文档
  • 解决 :除了base_url,有时还需要关注API版本。尝试在初始化时添加 model_kwargs 参数,例如 model_kwargs={"api_version": "v1"} (如果适用)。开启网络调试日志( import logging; logging.basicConfig(level=logging.DEBUG) )有助于查看详细的HTTP请求。

问题2:Claude Code生成的代码不完整,在中间被截断。

  • 排查 :这几乎肯定是达到了 max_tokens 上限。Claude模型对于长代码生成,可能需要更高的限额。
  • 解决 :增加 claude_llm 初始化时的 max_tokens 参数值,比如设为 8192 或更高。同时,检查你的提示词是否要求它“生成完整代码”,并强调“不要留下未完成的函数或TODO注释”。

5.2 工作流逻辑问题

问题3:SequentialChain执行成功,但Claude生成的代码好像没完全遵循DeepSeek的分析。

  • 排查 :查看 verbose=True 输出的中间结果 analysis_result 。很可能DeepSeek的分析结果过于冗长或格式松散,Claude没有准确提取出核心任务。
  • 解决 :精炼给DeepSeek的提示词,严格要求其输出格式。例如:“请输出一个 仅包含 具体编码任务的清单,每个任务用‘-’开头,任务描述应清晰、无歧义、可被直接执行。” 然后在链中间加入一个清洗和格式化 analysis_result 的步骤。

问题4:在自定义函数链中,错误处理复杂,代码难以维护。

  • 排查 :直接在函数里写 try...except 会让逻辑混乱。
  • 解决 :利用LangChain的 Runnable 体系。 RunnableLambda 可以包装你的函数,同时你可以使用 RunnableConfig 来传递配置,或使用 with_retry 等方法链式调用来添加重试逻辑。将错误处理、日志记录等横切关注点设计成装饰器或中间件,让主业务逻辑更清晰。

5.3 性能与效果优化问题

问题5:串联调用导致整体响应速度很慢,用户体验差。

  • 排查 :顺序调用意味着总耗时是两个模型响应时间的叠加,可能达到20-30秒甚至更长。
  • 解决
    • 异步调用 :如果前后步骤没有严格的依赖关系,可以考虑使用异步( async/await )来并发执行某些任务。LangChain对异步有良好支持。
    • 流式输出 :对于最终结果,如果可能,启用流式输出( streaming=True ),让用户能边生成边看到部分内容,感知上会更快。
    • 缓存 :如前所述,对常见请求进行缓存。
    • 超时设置 :为每个LLM调用设置合理的超时时间,避免因单个模型卡顿导致整个流程僵死。

问题6:生成的代码质量不稳定,有时很棒,有时会有低级错误。

  • 排查 :大模型本身具有随机性(由 temperature 参数控制)。提示词不精确、输入上下文嘈杂都会放大这种不稳定。
  • 解决
    • 降低 temperature :将 temperature 参数设低(如0.1-0.3),让模型输出更确定、更保守,适合代码生成任务。
    • 提供更详细的上下文 :在提示词中提供更具体的约束,比如“使用Python 3.10+语法”、“遵循PEP 8规范”、“必须包含类型注解”、“需要处理文件不存在的异常”等。
    • 后处理校验 :对于生成的代码,可以增加一个简单的“语法检查”后处理步骤,例如用 py_compile ast 模块快速检查Python代码的语法正确性,如果失败则触发重试或报警。

5.4 安全与部署问题

问题7:API Key泄露风险。

  • 解决 :这必须作为最高优先级。 永远不要 .env 文件提交到版本控制系统(如Git)。确保 .gitignore 文件中包含 .env 。在生产环境中,使用云服务商提供的密钥管理服务(如AWS Secrets Manager, GCP Secret Manager, Azure Key Vault)或环境变量注入。

问题8:如何将这个串联服务部署为API供他人使用?

  • 方案 :使用FastAPI或Flask等框架,将你的LangChain链条包装成一个HTTP端点。例如,一个 /generate_code 的POST接口,接收 {"requirement": "用户需求"} ,返回生成的代码。务必在API层面添加速率限制、身份认证和输入验证,防止滥用。

配置DeepSeek V4与Claude Code的串联,是一个典型的“胶水层”工程,考验的不是对单个模型的调优,而是对工作流的设计和工程化实现能力。从简单的顺序链开始,逐步迭代到带有条件判断、错误处理和优化策略的复杂智能体,这个过程本身就是一个极佳的学习项目。最关键的是,通过这样的组合,你确实能获得比单一模型更强大、更可控的AI编程助手能力。我自己的体验是,在处理一些小型全栈项目原型或复杂算法模块时,这个组合的效率提升是肉眼可见的。剩下的,就是根据你的具体场景,去微调提示词、优化交互逻辑了。

更多推荐