在 langchain_openai 库中,invoke 和 create 方法都是用于与 OpenAI 模型进行交互,但它们有一些区别:
-
功能不同:
-
invoke:用于生成文本或执行代码。 -
create:创建对话上下文。
-
-
返回值:
-
invoke:返回一个响应对象。 -
create:返回一个包含多个选择(choices)的对象。
-
-
用法:
-
invoke:通常用于生成单次请求,如生成文本或执行代码。 -
create:用于创建一个对话上下文,可以进行多次请求,如聊天。
-
在你的场景中,analyze_cs_floor 函数需要生成一个 prompt 并获取响应,所以使用 create 方法。如果你想直接获取生成文本,可以使用 invoke 方法。
下面是使用 invoke 方法的示例:
response = self.llm.invoke(prompt)
print(">>> tokens:", response.response_metadata.get("token_usage"))
return response.content.strip()
在 langchain_openai 库中,ChatOpenAI 类的 chat_completions 方法用于创建一个对话上下文,该方法接受一个 messages 参数,它是一个列表,其中每个元素是一个字典,包含两个键:role 和 content。
role 键指定了消息的角色,可以是 "system" 或 "user"。
`"system" 角色通常用于系统消息,这些消息包含上下文信息或提示。
`"user" 角色用于用户消息,这些消息是用户发送给模型的输入。
在你的代码中:
Python
复制
messages=[
{"role": "system", "content": prompt},
{"role": "user", "content": f"请分析 {func_name} 函数"}
]
第一个字典中的 "role": "system" 和 content: prompt` 指定了一个系统消息,提示 AI 分析函数。
第二个字典中的 "role": "user" 和 content: f"请分析 {func_name} 函数" 指定了一个用户消息,请求 AI 分析指定的函数。
这样,AI 模型就知道它需要根据系统提示和用户请求来生成相应的响应
1566

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



