二次开发
更新时间:2024-12-11
当前已集成Python版本AppBuilder-SDK 0.7.1及相关依赖,方便开发者融入个人已有的大模型应用程序。此部分仍在不断建设中。 二次开发可以采用官方提供的开发镜像,便于快速安装各种依赖库。
Shell
1docker pull registry.baidubce.com/appbuilder/appbuilder-sdk-devel:0.9.2
消息(Message)
- 构建大模型应用的统一数据结构,基于Pydantic构建,在不同的Component之间流动。Message基类的默认字段是content,类型是Any。
Python
1from appbuilder import Message
2input_dict = Message({"query": "红烧肉怎么做"})
3input_list = Message(["text1", "text2", "text3"])
4input_str = Message("红烧肉怎么做")
组件(Component)
- 所有能力单元的标准结构,以Message结构作为输入输出,内部执行逻辑可在本地执行或调用云端服务,以下是官方组件的实现示例。
Python
1class SimilarQuestionMeta(ComponentArguments):
2 """ SimilarQuestionMeta
3 """
4 message: Message = Field(...,
5 variable_name="query",
6 description="输入消息,用于模型的输入,一般为问题。")
7
8
9class SimilarQuestion(CompletionBaseComponent):
10 """ 基于输入的问题, 挖掘出与该问题相关的类似问题。广泛用于客服、问答等场景。
11 Examples:
12
13 .. code-block:: python
14 import os
15 import appbuilder
16
17 os.environ["APPBUILDER_TOKEN"] = "..."
18
19 qa_mining = appbuilder.SimilarQuestion(model="ERNIE Speed-AppBuilder")
20
21 msg = "我想吃冰淇淋,哪里的冰淇淋比较好吃?"
22 msg = appbuilder.Message(msg)
23 answer = qa_mining(msg)
24
25 print("Answer: \n{}".format(answer.content))
26 """
27 name = "similar_question"
28 version = "v1"
29 meta = SimilarQuestionMeta
30
31 def __init__(self, model=None):
32 """初始化SimilarQuestionMeta任务。
33
34 Args:
35 model (str|None): 模型名称,用于指定要使用的千帆模型。
36
37 Returns:
38 None
39
40 """
41 super().__init__(SimilarQuestionMeta, model=model)
42
43 def run(self, message, stream=False, temperature=1e-10):
44 """
45 给定输入(message)到模型运行,同时指定运行参数,并返回结果。
46
47 参数:
48 message (obj:`Message`): 输入消息,用于模型的主要输入内容。这是一个必需的参数。
49 stream (bool, 可选): 指定是否以流式形式返回响应。默认为 False。
50 temperature (float, 可选): 模型配置的温度参数,用于调整模型的生成概率。取值范围为 0.0 到 1.0,其中较低的值使生成更确定性,较高的值使生成更多样性。默认值为 1e-10。
51
52 返回:
53 obj:`Message`: 模型运行后的输出消息。
54 """
55 return super().run(message=message, stream=stream, temperature=temperature)