⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考英文原版。
validate_provider_credential。在运行时,根据用户选择的模型类型或模型名称,Dify 会自动调用相应模型层的 validate_credentials 方法来验证凭据。
集成自定义模型插件
以下是集成自定义模型的步骤:- 创建模型供应商文件
确定您的自定义模型将包含的模型类型。 - 按模型类型创建代码文件
根据模型的类型(例如llm或text_embedding),创建单独的代码文件。确保每种模型类型都组织成不同的逻辑层,以便于维护和未来扩展。 - 开发模型调用逻辑
在每个模型类型模块中,创建一个以该模型类型命名的 Python 文件(例如llm.py)。在文件中定义一个类,实现特定的模型逻辑,符合系统的模型接口规范。 - 调试插件
为新的供应商功能编写单元测试和集成测试,确保所有组件按预期工作。
1. 创建模型供应商文件
在插件的/provider 目录中,创建一个 xinference.yaml 文件。
Xinference 系列模型支持 LLM、Text Embedding 和 Rerank 模型类型,因此您的 xinference.yaml 必须包含所有三种类型。
示例:
provider_credential_schema。由于 Xinference 支持文本生成、嵌入和重排序模型,您可以按如下方式配置:
model_name:
2. 开发模型代码
由于 Xinference 支持 llm、rerank、speech2text 和 tts,您应该在 /models 下创建相应的目录,每个目录包含其各自的功能代码。 以下是 llm 类型模型的示例。您需要创建一个名为 llm.py 的文件,然后定义一个类——例如 XinferenceAILargeLanguageModel——继承自 __base.large_language_model.LargeLanguageModel。该类应包含:- LLM 调用
yield 的函数视为返回 Generator 类型的生成器,因此最好将它们分开:
- 预计算输入令牌
AIModel 基类调用 self._get_num_tokens_by_gpt2(text: str),它使用 GPT-2 分词器。请记住这只是一个近似值,可能与您的模型不完全匹配。
- 验证模型凭据
- 动态模型参数模式
max_tokens、temperature 和 top_p。某些其他供应商(例如 OpenLLM)可能仅对某些模型支持 top_k 等参数。这意味着您需要根据每个模型的能力调整您的模式:
- 错误映射
3. 调试插件
完成开发后,测试插件以确保其正常运行。有关更多详细信息,请参阅:调试插件
4. 发布插件
如果您想在 Dify Marketplace 上列出此插件,请参阅: 发布到 Dify Marketplace探索更多
快速开始: 插件端点文档:- Manifest 结构
- Endpoint 定义
- 反向调用 Dify 服务
- 工具
- 模型
Edit this page | Report an issue