当你需要ai返回的格式有特殊要求,常见的几种格式无法满足你的需要时你还可以自定义返回格式,自己写一个函数来让大模型返回的格式符合你的要求
如下样例将返回的字符串都改为小写,用一个简单的例子来演示
代码如下:
from langchain_core.messages import AIMessage, AIMessageChunk from langchain_openai import ChatOpenAI, OpenAI import os llm = ChatOpenAI( api_key=os.getenv("DEEPSEEK_API_KEY"), base_url=os.getenv("BASE_URL"), model="deepseek-v3:671b", temperature=0.7, max_tokens=1024 ) #这里自定义的解析器 def parse(ai_message: AIMessage) -> str: """Parse the AI message. 结果转成小写""" return ai_message.content.lower() chain = llm | parse result = chain.invoke("Hello") print('----------------------') print(result)返回结果如下:
---------------------- hello! how can i assist you today? 😊重要知识点:
自定义解析器设计
/* by 01130.hk - online tools website : 01130.hk/zh/jsonudview.html */ parse函数作为轻量级后处理器,接收/* by 01130.hk - online tools website : 01130.hk/zh/jsonudview.html */ AIMessage对象并返回其content属性的小写形式。该设计体现:- 关注点分离:模型生成与业务逻辑处理解耦,便于独立测试与迭代。
- 类型提示规范:通过
ai_message: AIMessage显式声明输入类型,增强代码可维护性。 - 可替换性:解析逻辑可随时替换为 JSON 解析、敏感词过滤等更复杂处理。