基于Haskell构建OpenAI聊天机器人:核心技术与实践
1. 消息类型与聊天选项
在与OpenAI模型进行聊天交互时, Message 类型代表单次聊天消息。当使用像GPT这样的OpenAI模型时,通常会发送带有不同角色(用户、助手或系统)的消息列表。以下是 Message 类型的定义:
data Message = Message
{ role :: Text -- "user" | "assistant" | "system"
, content :: Text
, tool_calls :: Maybe [Text]
, tool_call_id :: Maybe Text
} deriving (Show, Generic)
instance ToJSON Message
instance FromJSON Message
role 字段决定了消息的发送者, content 则包含消息的实际文本内容。对于更高级的交互,你可以选择包含 tool_calls 和 tool_call_id ,不过目前暂不使用。
通过派生 Generic ,我们可以自动实现 ToJSON 和 FromJSON 实例,让 aeson 库为我们处理JSON转换。
超级会员免费看
订阅专栏 解锁全文
1272

被折叠的 条评论
为什么被折叠?



