AI个人学习
和实操指南

Claude常见用例指南:客户支持代理

本指南介绍了如何利用 Claude 的高级对话能力实时处理客户查询,提供 24/7 支持,减少等待时间,并通过准确的回复和积极的互动管理高量的支持请求。

在使用 Claude 进行构建之前

决定是否使用 Claude 进行支持聊天

以下是一些关键指标,表明您应该使用像 Claude 这样的 LLM 来自动化部分客户支持流程:

大量重复性查询


Claude 擅长高效处理大量类似问题,解放人类代理去处理更复杂的问题。

对快速信息整合的需求

Claude 能够迅速从庞大的知识库中检索、处理和整合信息,而人类代理可能需要时间进行研究或查阅多个来源。

24/7 的可用性要求

Claude 能够提供全天候支持而不会疲惫,而为人类代理提供连续的覆盖可能既昂贵又具有挑战性。

在高峰期的快速扩展

Claude 可以处理突然增加的查询量,而无需雇佣和培训额外的员工。

一致的品牌声音

您可以指示 Claude 始终如一地代表您品牌的语气和价值观,而人类代理的沟通风格可能有所不同。

选择 Claude 而非其他 LLM 时需要考虑的一些因素:

  • 您优先考虑自然且细腻的对话:Claude 精细的语言理解能力能够进行更自然、具备上下文感知的对话,比与其他 LLM 的聊天更加接近人类的交流。
  • 您经常收到复杂且开放性的问题:Claude 可以处理广泛的主题和查询,而不会生成模板化的回复,也无需编写大量用户话语的排列组合。
  • 您需要可扩展的多语言支持:Claude 的多语言能力使其能够用 200 多种语言进行对话,而无需为每种支持的语言单独设置聊天机器人或进行广泛的翻译过程。

定义理想的聊天互动

概述理想的客户互动,以定义您期望客户与 Claude 互动的方式和时间。这一概述将有助于确定您的解决方案的技术要求。

以下是汽车保险客户支持的示例聊天互动:

  • 客户:启动支持聊天体验
    • Claude:热情地欢迎客户并开始对话
  • 客户:询问其新电动车的保险情况
    • Claude:提供有关电动车保险的相关信息
  • 客户:询问与电动车保险特殊需求相关的问题
    • Claude:提供准确且有用的回答,并提供相关来源的链接
  • 客户:提出与保险或汽车无关的离题问题
    • Claude:澄清其不讨论无关话题,并将客户引导回汽车保险相关内容
  • 客户:表示对保险报价感兴趣
    • Claude:提出一系列问题以确定适当的报价,并根据客户的回答进行调整
    • Claude:向报价生成 API 工具发送请求,并附上从客户收集到的必要信息
    • Claude:从 API 工具接收到响应信息后,将其综合成自然的回答并向客户提供报价
  • 客户:询问后续问题
    • Claude:根据需要回答后续问题
    • Claude:引导客户进入保险流程的下一步并结束对话

在您为自己的用例编写实际示例时,您可能会发现写出对话中的实际用词很有帮助,这样您也可以感受到 Claude 理想的语气、回复长度和所需的详细程度。

将互动分解为独立任务

客户支持聊天由多个不同的任务组成,包括回答问题、检索信息和处理请求操作,这些都汇集在一次完整的客户互动中。在开始构建之前,请将理想的客户互动分解为 Claude 需要执行的每一个任务。这可以确保您为每个任务提示和评估 Claude,并为编写测试用例时需要考虑的交互范围提供良好的理解。

客户有时会发现,将这一过程可视化为一个交互流程图,展示了根据用户请求可能出现的对话分支点,会非常有帮助。

以下是与上述保险互动相关的关键任务:

  1. 欢迎和一般指导
    • 热情地欢迎客户并开始对话
    • 提供有关公司和互动的基本信息
  2. 产品信息
    • 提供电动车保险的相关信息这需要确保 Claude 在其上下文中拥有必要的信息,可能意味着需要 RAG 集成
    • 回答与电动车保险特殊需求相关的问题
    • 回答有关报价或保险详情的后续问题
    • 在适当时提供相关来源的链接
  3. 对话管理
    • 保持主题专注(汽车保险)
    • 将离题的问题引导回相关话题
  4. 报价生成
    • 提出适当的问题以确定报价资格
    • 根据客户的回答调整问题
    • 将收集到的信息提交给报价生成 API
    • 向客户提供生成的报价

确立成功标准

与您的支持团队合作,定义明确的成功标准,并撰写具有可量化基准和目标的详细评估

以下是评估 Claude 执行定义任务成功与否的标准和基准:

查询理解准确性

此指标评估 Claude 在不同主题下理解客户询问的准确性。通过审查对话样本,评估 Claude 对客户意图、关键后续步骤、成功解决方案的理解是否正确等。目标是达到 95% 或更高的理解准确率。

回复相关性

评估 Claude 的回复是否有效解决客户的具体问题。对一组对话进行评估,并对每个回复的相关性进行评分(使用基于大语言模型的评分系统进行大规模评估)。目标相关性评分为 90% 或以上。

回复准确性

根据提供给 Claude 的上下文信息,评估其提供的公司和产品信息的正确性。目标是使这些引导信息的准确率达到 100%。

引用提供的相关性

跟踪提供链接或资源的频率和相关性。目标是在 80% 的需要额外信息的互动中提供相关的资源。

主题坚持度

评估 Claude 在对话中是否保持在主题上,例如在我们的汽车保险示例实现中,评估 Claude 对汽车保险或客户具体问题的回答。目标是 95% 的回复与汽车保险或客户的具体询问直接相关。

内容生成的有效性

评估 Claude 何时生成信息内容的成功度及其内容的相关性。例如,在我们的实现中,我们将评估 Claude 在何时生成报价及其准确性的理解情况。目标是 100% 的准确率,因为这是成功客户互动的关键信息。

升级效率

此项衡量 Claude 识别需要人工干预的查询并适时升级的能力。跟踪正确升级的对话比例以及那些本应升级但未升级的对话。目标是 95% 或更高的升级准确率。

以下是评估使用 Claude 提供支持的业务影响的标准和基准:

情感维持

评估 Claude 在整个对话中维持或改善客户情感的能力。使用情感分析工具测量每次对话开始和结束时的情感状态。目标是使 90% 的互动中情感得到维持或改善。

分流率

成功由聊天机器人处理且无需人工干预的客户询问百分比。通常目标是 70%-80% 的分流率,具体取决于询问的复杂性。

客户满意度评分

衡量客户对与聊天机器人的互动的满意程度。通常通过互动后的调查完成。目标是客户满意度评分达到 4 分(满分 5 分)或更高。

平均处理时间

聊天机器人解决询问的平均时间。此时间因问题的复杂性而有很大差异,但总体目标是使平均处理时间比人工客服更短。

如何将 Claude 实现为客户服务代理

选择合适的 Claude 模型

模型的选择取决于成本、准确性和响应时间之间的权衡。

对于客户支持聊天,claude-3-5-sonnet-20240620 非常适合在智能性、延迟和成本之间取得平衡。然而,如果在对话中包含多个提示(包括 RAG、工具使用和/或长上下文提示),claude-3-haiku-20240307 可能更适合优化延迟。

构建一个强大的提示词

使用 Claude 进行客户支持需要 Claude 具备足够的方向性和上下文,以便做出恰当的响应,同时要有足够的灵活性来处理各种客户查询。

让我们从编写强提示词的要素开始,从系统提示词开始:

IDENTITY = """你是 Eva,一位友好且知识渊博的 Acme 保险公司 AI 助手。你的角色是热情地欢迎客户,并提供有关 Acme 保险产品的信息,包括车险和电动车险。你还可以帮助客户获取他们的保险需求报价。"""

虽然你可能会倾向于将所有信息放在系统提示词中,以便将指令与用户对话分开,但实际上 Claude 在将大部分提示内容放在第一轮 User 中时表现最好(唯一的例外是角色提示)。更多信息请阅读 使用系统提示为 Claude 指定角色

最好将复杂的提示词分解为几个子部分,一次编写一部分。对于每个任务,您可以通过逐步定义 Claude 完成该任务所需的提示部分来获得更好的结果。以车险客户支持为例,我们将分阶段编写提示词,首先从「问候和一般指导」任务开始。这也使调试提示词更加容易,因为您可以更快地调整整体提示的各个部分。

我们将所有这些部分放在一个名为 config.py 的文件中。

STATIC_GREETINGS_AND_GENERAL = """
<static_context>
Acme 汽车保险:您在路上的可靠伙伴

简介:
在 Acme 保险公司,我们理解您的车辆不仅仅是交通工具——它是您通往生活冒险的门票。自 1985 年以来,我们一直在制定汽车保险政策,赋予驾驶者探索、通勤和旅行的信心。
无论您是在城市街道上穿行,还是在进行跨国旅行,Acme 都会保护您和您的车辆。
我们的创新汽车保险政策专为适应您的独特需求而设计,涵盖从轻微碰撞到重大事故的一切。
凭借 Acme 的获奖客户服务和快速理赔解决方案,您可以专注于驾驶的乐趣,而我们处理其他事宜。
我们不仅是保险提供商——我们是您人生旅途中的副驾驶。
选择 Acme 汽车保险,体验优质保障和真诚关怀带来的安心。因为在 Acme,我们不仅为您的汽车提供保险——我们还为您开拓生活的旅程提供动力。

注:我们还提供电动车的专门保险,确保所有类型车辆的驾驶者都能从我们的保护中受益。

Acme 保险提供以下产品:
- 汽车保险
- 电动车保险
- 两轮车保险

营业时间:周一至周五,上午 9 点至下午 5 点(美国东部时间)
客户服务电话:1-800-123-4567
</static_context>
"""

我们将对汽车保险和电动车保险信息进行相同的处理。

STATIC_CAR_INSURANCE="""
<static_context>
汽车保险覆盖范围:
Acme 的汽车保险政策通常涵盖:
1. 责任险:支付您对他人造成的人身伤害和财产损失。
2. 碰撞险:支付事故中对您汽车的损坏。
3. 综合险:支付非碰撞事故对您汽车造成的损坏。
4. 医疗费用险:支付事故后的医疗费用。
5. 无保险/保险不足的驾驶员险:当您被保险不足的驾驶员撞击时保护您。

可选覆盖范围包括:
- 租车报销
- 道路救援
- 新车更换
</static_context>
"""

STATIC_ELECTRIC_CAR_INSURANCE="""
<static_context>
电动车保险:
我们专门的电动车保险超越了传统的汽车保险,为您的高科技投资提供量身定制的保护。除了标准的保险项目外,我们还提供:
- 保护昂贵的电池系统
- 覆盖家用充电设备
- 适应电动车领域的快速发展

无论您驾驶的是 Rivian、Nissan Leaf、Chevrolet Bolt 或其他电动车型,我们经验丰富的代理人都准备为您制定一份让您安心享受每一段电力驱动旅程的保单。
</static_context>
"""

现在我们已经有了静态内容,让我们添加至少 4-5 个「良好」互动示例来引导 Claude 的回复。这些示例应能代表您理想的客户互动,可以包括防护措施、工具调用等。

EXAMPLES="""
以下是一些如何与客户互动的示例:

<example 1>
H: 你好,请问你们提供小企业的商业保险吗?

A: 啊!很遗憾,目前我们不提供商业保险。 
不过,我们有多种个人保险产品,包括汽车保险和电动车保险。 
您想了解更多关于这些产品的信息吗?
</example 1>

<example 2>
H: 你好,你们的营业时间是几点?

A: 我们的营业时间是周一至周五,上午 9 点到下午 5 点 (美国东部标准时间)。 
如果您有任何问题或需要帮助,请随时在这些时间内联系我们。 
今天还有什么其他需要我帮助的吗?
</example 2>

<example 3>
H: 我正在寻找汽车保险。Acme 提供哪些服务?

A: 很好的选择!Acme 的汽车保险通常包括:
- 责任险:在事故中您为过错方时为您提供保障
- 碰撞险:支付事故中您车辆的损坏费用
- 全面保障:涵盖非碰撞事件,如盗窃或故意破坏
- 医疗费用保险:事故后支付医疗费用
- 未投保/保险不足司机保障:保护您免受投保不足的司机影响

我们还提供一些可选保障,如租车报销、道路救援和新车更换。 
您想了解这些保障的更多细节,还是有其他关于为您的车辆投保的具体问题?
</example 3>

<example 4>
H: 我想了解一下你们的电动车保险。

A: 当然可以!我们的电动车保险专为电动车车主的独特需求量身定制。 
除了我们为普通车辆提供的所有标准保障外,我们的电动车保险还包括:

- 电池保障:保护您的车辆昂贵电池系统免受损坏或老化
- 技术包:涵盖高级电子设备和车载计算机系统的维修或更换
- 充电站保障:保护家庭和便携式充电设备
- 网络安全保障:对抗黑客攻击或数字威胁的保障
- 专业道路救援:包括平板拖车服务,以保护车辆底盘

我们为多种电动车提供保障,包括特斯拉、Rivian、日产、雪佛兰等热门车型。 
您是否有特定的电动车需要投保,或者您想了解某些保障的更多细节?
</example 4>

<example 5>
H: 我想获取我的汽车保险报价。

A: 当然!我很乐意为您提供汽车保险报价。 
为了为您提供准确的报价,我需要收集一些关于您车辆和主要驾驶人的信息。 
让我们从基本信息开始:

1. 您的车辆品牌和型号是什么?
2. 车辆生产年份是哪一年?
3. 您大约行驶了多少英里?
4. 主要驾驶人的年龄是多少?

一旦您提供了这些信息,我会使用我们的报价工具为您生成个性化的保险报价。
</example 5>
"""

您还需要包含任何重要的指示,说明 Claude 如何与客户互动的注意事项和禁忌。这些可能取自品牌防护或支持政策。

ADDITIONAL_GUARDRAILS = """请遵循以下防护措施:
1. 仅提供我们产品中列出的保险类型信息。
2. 如果被问及我们不提供的保险类型,请礼貌地说明我们不提供此类服务。
3. 不要对未来的产品或公司计划进行猜测。
4. 不要做出未经授权的承诺或达成协议。你只能提供信息和指导。
5. 不要提及任何竞争对手的产品或服务。
"""

现在让我们将所有这些部分组合成一个字符串,以便用作我们的提示。

TASK_SPECIFIC_INSTRUCTIONS = ' '.join([
   STATIC_GREETINGS_AND_GENERAL,
   STATIC_CAR_INSURANCE,
   STATIC_ELECTRIC_CAR_INSURANCE,
   EXAMPLES,
   ADDITIONAL_GUARDRAILS,
])

使用工具赋予动态和主动能力

Claude 可以通过使用客户端工具功能动态执行操作并检索信息。首先列出提示应该使用的任何外部工具或 API。

在这个例子中,我们将从一个用于计算报价的工具开始。

请注意,这个工具不会实际执行计算,它只会向应用程序发出信号,表明应该使用工具,并传递指定的参数。

示例保险报价计算器:

TOOLS = [{
  "name": "get_quote",
  "description": "根据用户输入计算保险报价。返回值为每月的保费。",
  "input_schema": {
    "type": "object",
    "properties": {
      "make": {"type": "string", "description": "车辆的品牌。"},
      "model": {"type": "string", "description": "车辆的型号。"},
      "year": {"type": "integer", "description": "车辆的生产年份。"},
      "mileage": {"type": "integer", "description": "车辆的行驶里程数。"},
      "driver_age": {"type": "integer", "description": "主要驾驶员的年龄。"}
    },
    "required": ["make", "model", "year", "mileage", "driver_age"]
  }
}]

def get_quote(make, model, year, mileage, driver_age):
    """返回每月的保费(以美元计)"""
    # 你可以调用 HTTP 端点或数据库来获取报价。
    # 这里,我们模拟1秒的延迟并返回固定的100美元报价。
    time.sleep(1)
    return 100

部署你的提示

在未将提示部署到测试生产环境并 运行评估 的情况下,很难知道你的提示效果如何。因此,让我们使用我们的提示、Anthropic SDK 和 streamlit 来构建一个小应用程序,并为其创建一个用户界面。

在名为 chatbot.py 的文件中,首先设置 ChatBot 类,该类将封装与 Anthropic SDK 的交互。

该类应包含两个主要方法:generate_message 和 process_user_input

from anthropic import Anthropic
from config import IDENTITY, TOOLS, MODEL, get_quote
from dotenv import load_dotenv

load_dotenv()

class ChatBot:
   def __init__(self, session_state):
       self.anthropic = Anthropic()
       self.session_state = session_state

   def generate_message(
       self,
       messages,
       max_tokens,
   ):
       try:
           response = self.anthropic.messages.create(
               model=MODEL,
               system=IDENTITY,
               max_tokens=max_tokens,
               messages=messages,
               tools=TOOLS,
           )
           return response
       except Exception as e:
           return {"error": str(e)}

   def process_user_input(self, user_input):
       self.session_state.messages.append({"role": "user", "content": user_input})

       response_message = self.generate_message(
           messages=self.session_state.messages,
           max_tokens=2048,
       )

       if "error" in response_message:
           return f"发生错误: {response_message['error']}"

       if response_message.content[-1].type == "tool_use":
           tool_use = response_message.content[-1]
           func_name = tool_use.name
           func_params = tool_use.input
           tool_use_id = tool_use.id

           result = self.handle_tool_use(func_name, func_params)
           self.session_state.messages.append(
               {"role": "assistant", "content": response_message.content}
           )
           self.session_state.messages.append({
               "role": "user",
               "content": [{
                   "type": "tool_result",
                   "tool_use_id": tool_use_id,
                   "content": f"{result}",
               }],
           })

           follow_up_response = self.generate_message(
               messages=self.session_state.messages,
               max_tokens=2048,
           )

           if "error" in follow_up_response:
               return f"发生错误: {follow_up_response['error']}"

           response_text = follow_up_response.content[0].text
           self.session_state.messages.append(
               {"role": "assistant", "content": response_text}
           )
           return response_text

       elif response_message.content[0].type == "text":
           response_text = response_message.content[0].text
           self.session_state.messages.append(
               {"role": "assistant", "content": response_text}
           )
           return response_text

       else:
           raise Exception("发生错误: 意外的响应类型")

   def handle_tool_use(self, func_name, func_params):
       if func_name == "get_quote":
           premium = get_quote(**func_params)
           return f"生成的报价: 每月 ${premium:.2f}"

       raise Exception("使用了意外的工具")

构建用户界面

使用 Streamlit 和一个主方法测试部署此代码。此 main() 函数设置一个基于 Streamlit 的聊天界面。

我们将在一个名为 app.py 的文件中完成此操作

import streamlit as st
from chatbot import ChatBot
from config import TASK_SPECIFIC_INSTRUCTIONS

def main():
   st.title("与 Eva 聊天,Acme 保险公司的助理🤖")

   if "messages" not in st.session_state:
       st.session_state.messages = [
           {'role': "user", "content": TASK_SPECIFIC_INSTRUCTIONS},
           {'role': "assistant", "content": "明白"},
       ]

   chatbot = ChatBot(st.session_state)

   # 显示用户和助理的消息,跳过前两条
   for message in st.session_state.messages[2:]:
       # 忽略工具使用的消息块
       if isinstance(message["content"], str):
           with st.chat_message(message["role"]):
               st.markdown(message["content"])

   if user_msg := st.chat_input("在此输入您的消息..."):
       st.chat_message("user").markdown(user_msg)

       with st.chat_message("assistant"):
           with st.spinner("Eva 正在思考..."):
               response_placeholder = st.empty()
               full_response = chatbot.process_user_input(user_msg)
               response_placeholder.markdown(full_response)

if __name__ == "__main__":
   main()

使用以下命令运行程序:

streamlit run app.py

评估您的提示

提示通常需要测试和优化才能达到生产准备状态。为了确定您的解决方案是否准备就绪,您可以通过结合定量和定性方法的系统流程来评估聊天机器人的性能。根据您定义的成功标准,创建一个强有力的实证评估将使您能够优化您的提示。

Anthropic 控制台 现在提供了一个评估工具,允许您在不同场景下测试您的提示。

提升性能

在复杂场景中,除了标准的提示工程技术防护栏实施策略之外,考虑其他策略来提高性能可能会有所帮助。以下是一些常见场景:

通过 RAG 减少长上下文延迟

当处理大量静态和动态上下文时,将所有信息都包含在提示中会导致高成本、响应时间变慢,并达到上下文窗口的限制。在这种情况下,实施检索增强生成(RAG)技术可以显著提高性能和效率。

通过使用 类似 Voyage 的嵌入模型 将信息转换为向量表示,可以创建一个更具扩展性和响应性的系统。此方法允许基于当前查询动态检索相关信息,而不是在每个提示中都包含所有可能的上下文。

实施 RAG 用于支持使用场景的 RAG 配方 已被证明可以在需要广泛上下文的系统中提高准确性、减少响应时间并降低 API 成本。

通过工具使用集成实时数据

在处理需要实时信息的查询时,例如账户余额或政策细节,基于嵌入的 RAG 方法是不够的。相反,你可以利用工具使用来显著增强你的聊天机器人的能力,以提供准确的实时响应。例如,你可以使用工具来查找客户信息、检索订单详情,并代表客户取消订单。

这种方法在我们 工具使用:客服代理配方 中概述,允许你将实时数据无缝集成到 Claude 的回复中,提供更加个性化和高效的客户体验。

加强输入和输出防护措施

在部署聊天机器人时,特别是在客户服务场景中,防止滥用、超出范围的查询和不当回复的风险至关重要。虽然 Claude 本身对这些场景有很强的抗风险能力,以下是加强聊天机器人防护措施的额外步骤:

  • 减少幻觉:实施事实核查机制和 引用 来确保回复基于提供的信息。
  • 交叉核对信息:确保代理的回复与公司的政策和已知事实一致。
  • 避免合同承诺:确保代理不会做出其无权承诺的承诺或协议。
  • 缓解越狱:使用无害性筛查和输入验证等方法,防止用户利用模型漏洞生成不当内容。
  • 避免提及竞争对手:实施竞争对手提及过滤器,保持品牌专注,避免提及任何竞争对手的产品或服务。
  • 保持 Claude 的角色:防止 Claude 在长时间复杂交互中改变其上下文风格。
  • 移除个人身份信息(PII):除非明确要求并获得授权,删除回复中的所有 PII。

通过流式处理减少感知响应时间

当处理可能较长的回复时,实施流式处理可以显著提高用户参与度和满意度。在这种情况下,用户会逐步接收到答案,而不是等待整个回复生成完毕。

以下是如何实施流式处理的步骤:

  1. 使用 Anthropic Streaming API 支持流式回复。
  2. 设置前端以处理接收到的文本块。
  3. 显示每个到达的文本块,模拟实时输入效果。
  4. 实现保存完整回复的机制,允许用户在导航离开后返回时查看完整内容。

在某些情况下,流式处理允许使用基础延迟更高的高级模型,因为逐步显示可以减轻处理时间较长的影响。

扩展你的 Chatbot

随着 Chatbot 的复杂性增加,应用架构可以随之演进。在为架构添加更多层次之前,考虑以下较简单的选项:

  • 确保你充分利用了提示,并通过提示工程进行优化。使用我们的 提示工程指南 编写最有效的提示。
  • 在提示中添加其他 工具 (其中可以包括 提示链),看看是否能够实现所需功能。

如果你的 Chatbot 处理的任务非常多样化,你可能需要考虑添加一个 单独的意图分类器 来路由初始客户查询。对于现有的应用程序,这将涉及创建一个决策树,将客户查询通过分类器路由到专门的对话(每个对话都有其自己的工具和系统提示)。请注意,这种方法需要额外调用 Claude,可能会增加延迟。

将 Claude 集成到支持工作流中

虽然我们的示例主要集中在可在 Streamlit 环境中调用的 Python 函数,但部署 Claude 以用于实时支持 Chatbot 需要一个 API 服务。

你可以这样做:

  1. 创建 API 包装器:为你的分类函数开发一个简单的 API 包装器。例如,你可以使用 Flask API 或 Fast API 将你的代码包装成一个 HTTP 服务。该 HTTP 服务可以接受用户输入并返回完整的 Assistant 回复。因此,该服务可以具有以下特点:
    • 服务器推送事件(Server-Sent Events,SSE):SSE 允许服务器与客户端之间进行实时的响应流式处理。这对于使用 LLM 时提供流畅、互动的体验至关重要。
    • 缓存:实现缓存可以显著提高响应速度并减少不必要的 API 调用。
    • 上下文保留:当用户导航离开并返回时,保持上下文对于对话的连续性很重要。
  2. 构建 Web 界面:实现一个用户友好的 Web UI,以便与 Claude 驱动的代理进行交互。
AI轻松学

普通人的AI入门指南

帮助你以低成本、零基础学会如何利用AI工具。AI就像办公软件一样,是每个人的必备技能。 掌握AI会让你在求职中占据优势,在未来的工作和学习中事半功倍。

查看详情>
未经允许不得转载:首席AI分享圈 » Claude常见用例指南:客户支持代理

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文