大模型应用开发实战:从API到智能助手

2026-07-11 8 min read 7

引言

随着GPT-4、Claude、文心一言等大模型的普及,开发者不再满足于简单的对话体验,而是希望将大模型集成到实际业务中,构建智能应用。本文将以OpenAI API为例,带你从零开始开发一个具备上下文记忆和工具调用能力的智能客服助手。

1. 环境准备与API调用

首先,确保你已安装Python 3.8+,并获取OpenAI API Key。安装所需库:

pip install openai python-dotenv

在项目根目录创建.env文件:

OPENAI_API_KEY=你的API密钥

基础调用示例:

import os
from openai import OpenAI
from dotenv import load_dotenv

load_dotenv()
client = OpenAI(api_key=os.getenv('OPENAI_API_KEY'))

response = client.chat.completions.create(
    model='gpt-4',
    messages=[
        {'role': 'system', 'content': '你是一个专业的客服助手。'},
        {'role': 'user', 'content': '你好,我想查询订单状态。'}
    ]
)
print(response.choices[0].message.content)

2. 构建上下文管理器

为了让对话连贯,需要维护消息历史:

class ConversationManager:
    def __init__(self, system_prompt='你是一个智能客服助手。'):
        self.messages = [{'role': 'system', 'content': system_prompt}]
    
    def add_message(self, role, content):
        self.messages.append({'role': role, 'content': content})
    
    def get_response(self, user_input):
        self.add_message('user', user_input)
        response = client.chat.completions.create(
            model='gpt-4',
            messages=self.messages,
            temperature=0.7
        )
        assistant_reply = response.choices[0].message.content
        self.add_message('assistant', assistant_reply)
        return assistant_reply

3. 集成函数调用(工具使用)

大模型可以调用外部函数来获取实时数据。定义查询订单的函数:

def get_order_status(order_id):
    # 模拟数据库查询
    orders = {
        '12345': {'status': '已发货', 'estimated_delivery': '2025-03-20'},
        '67890': {'status': '处理中', 'estimated_delivery': '2025-03-22'}
    }
    return orders.get(order_id, {'status': '未找到订单'})

# 定义工具描述
tools = [
    {
        'type': 'function',
        'function': {
            'name': 'get_order_status',
            'description': '查询订单状态和预计送达时间',
            'parameters': {
                'type': 'object',
                'properties': {
                    'order_id': {
                        'type': 'string',
                        'description': '订单号'
                    }
                },
                'required': ['order_id']
            }
        }
    }
]

在对话中调用:

def process_with_tools(user_input):
    messages = [{'role': 'system', 'content': '你是一个智能客服,可以使用工具查询订单。'},
                {'role': 'user', 'content': user_input}]
    
    response = client.chat.completions.create(
        model='gpt-4',
        messages=messages,
        tools=tools,
        tool_choice='auto'
    )
    
    if response.choices[0].message.tool_calls:
        tool_call = response.choices[0].message.tool_calls[0]
        if tool_call.function.name == 'get_order_status':
            import json
            args = json.loads(tool_call.function.arguments)
            result = get_order_status(args['order_id'])
            messages.append(response.choices[0].message)
            messages.append({
                'role': 'tool',
                'content': json.dumps(result),
                'tool_call_id': tool_call.id
            })
            final_response = client.chat.completions.create(
                model='gpt-4',
                messages=messages
            )
            return final_response.choices[0].message.content
    else:
        return response.choices[0].message.content

4. 构建完整的智能客服应用

整合以上模块,创建一个命令行交互程序:

def main():
    print('智能客服助手已启动,输入exit退出。')
    conv = ConversationManager('你是一个专业的电商客服助手。')
    while True:
        user_input = input('\n用户: ')
        if user_input.lower() == 'exit':
            break
        # 检测是否包含订单号(简单规则)
        import re
        order_match = re.search(r'\d{5}', user_input)
        if order_match:
            reply = process_with_tools(user_input)
        else:
            reply = conv.get_response(user_input)
        print(f'助手: {reply}')

if __name__ == '__main__':
    main()

5. 进阶优化建议

  • 流式输出:使用stream=True参数实现打字机效果。
  • 错误处理:添加重试机制和API异常捕获。
  • 多轮工具调用:支持连续调用多个函数。
  • 记忆持久化:使用Redis或数据库保存对话历史。
  • 安全过滤:集成内容审核API防止不当输出。

结语

通过本文的实战,你已掌握大模型应用开发的核心流程:API调用、上下文管理、函数调用集成。这些技术可以扩展到文档问答、代码生成、数据分析等场景。记住,好的Prompt设计和工具集成是提升应用智能水平的关键。

IT搬运工

专注技术分享,坚持原创深度内容。

分类
链接
订阅

RSS 订阅关注最新文章

© 2026 IT搬运工 · 站点地图 · 鄂ICP备19007640号-3