Guias
Modelo
Adicionar Novo Provedor
10min
métodos de configuração de provedores os provedores suportam três modelos de configuração modelo predefinido os usuários precisam apenas configurar as credenciais unificadas do provedor para usar os modelos predefinidos disponíveis no provedor modelo personalizável os usuários precisam adicionar a configuração de credenciais para cada modelo por exemplo, o xinference suporta tanto llm quanto embedding de texto, mas cada modelo tem um model uid único se você deseja conectar ambos, precisa configurar um model uid para cada modelo busca remota semelhante ao método de configuração de modelo predefinido, os usuários precisam apenas configurar as credenciais unificadas do provedor, e os modelos são buscados do provedor usando as informações das credenciais exemplo com a openai, podemos ajustar diversos modelos com base no gpt turbo 3 5, todos sob a mesma api key quando configurado como busca remota, os desenvolvedores precisam apenas configurar uma api key unificada para permitir que o paragraph runtime busque todos os modelos ajustados do desenvolvedor e os conecte ao paragraph esses três métodos de configuração podem coexistir, o que significa que um provedor pode suportar uma combinação de modelos predefinidos, personalizáveis ou busca remota isso permite o uso de modelos predefinidos e modelos buscados remotamente com credenciais unificadas do provedor, além de modelos personalizados adicionais, se adicionados instruções de configuração terminologia módulo um módulo é um pacote python, ou mais coloquialmente, uma pasta contendo um arquivo init py e outros arquivos py passos adicionar um novo provedor envolve várias etapas aqui está um esboço para fornecer uma compreensão geral os passos detalhados serão apresentados a seguir crie um arquivo yaml do provedor e escreva o de acordo com o esquema do provedor crie o código do provedor e implemente uma classe crie módulos de tipo de modelo correspondentes sob o módulo do provedor, como llm ou text embedding crie arquivos de código com o mesmo nome sob o módulo de modelo correspondente, como llm py , e implemente uma classe se houver modelos predefinidos, crie arquivos yaml com o mesmo nome sob o módulo de modelo, como claude 2 1 yaml , e escreva os de acordo com a entidade de modelo de ia escreva o código de teste para garantir que a funcionalidade esteja disponível vamos começar para adicionar um novo provedor, primeiro determine o identificador em inglês do provedor, como, e crie um módulo com o mesmo nome em sob este módulo, precisamos preparar a configuração yaml do provedor primeiro preparando o yaml do provedor usando a anthropic como exemplo, predefina as informações básicas do provedor, tipos de modelo suportados, métodos de configuração e regras de credenciais provider anthropic # identificador do provedor label # nome de exibição do provedor, pode ser definido em inglês en us en us anthropic icon small # ícone pequeno do provedor, armazenado no diretório assets sob o diretório de implementação do provedor correspondente, mesma estratégia de linguagem que label en us icon s en png icon large # ícone grande do provedor, armazenado no diretório assets sob o diretório de implementação do provedor correspondente, mesma estratégia de linguagem que label en us icon l en png supported model types # tipos de modelo suportados, anthropic suporta apenas llm \ llm configurate methods # métodos de configuração suportados, anthropic suporta apenas modelos predefinidos \ predefined model provider credential schema # regras de credenciais do provedor, como a anthropic suporta apenas modelos predefinidos, é necessário definir regras de credenciais unificadas do provedor credential form schemas # lista de itens do formulário de credenciais \ variable anthropic api key # nome da variável de parâmetro de credencial label # nome de exibição en us api key type secret input # tipo de formulário, secret input aqui representa uma caixa de entrada de informações criptografadas, exibindo apenas informações mascaradas ao editar required true # se é obrigatório placeholder # informações de placeholder en us enter your api key \ variable anthropic api url label en us api url type text input # tipo de formulário, text input aqui representa uma caixa de entrada de texto required false placeholder en us enter your api url se o provedor conectado oferecer modelos personalizáveis, como a openai, que fornece modelos ajustados, precisamos adicionar model credential schema usando a openai como exemplo model credential schema model # nome do modelo ajustado label en us model name placeholder en us enter your model name credential form schemas \ variable openai api key label en us api key type secret input required true placeholder en us enter your api key \ variable openai organization label en us organization type text input required false placeholder en us enter your organization id \ variable openai api base label en us api base type text input required false placeholder en us enter your api base você também pode consultar as informações de configuração yaml nos diretórios de outros provedores sob o diretório model providers implementando o código do provedor precisamos criar um arquivo python com o mesmo nome sob model providers , como anthropic py , e implementar uma classe que herda da classe base base provider provider , como anthropicprovider provedores de modelos personalizados para provedores como xinference, que oferecem modelos personalizados, este passo pode ser ignorado basta criar uma classe xinferenceprovider vazia e implementar um método validate provider credentials vazio este método não será realmente usado e serve apenas para evitar erros de instânciação de classes abstratas class xinferenceprovider(provider) def validate provider credentials(self, credentials dict) > none pass provedores de modelos predefinidos provedores precisam herdar da classe base base model provider modelprovider e implementar o método validate provider credentials para validar as credenciais unificadas do provedor você pode se referir ao anthropicprovider def validate provider credentials(self, credentials dict) > none """ valide as credenciais do provedor você pode escolher qualquer método `validate credentials` de tipo de modelo ou implementar o método `validate` por conta própria, como get model list api se a validação falhar, levante uma exceção \ param credentials credenciais do provedor, formulário de credenciais definido em `provider credential schema` """ você também pode reservar a implementação validate provider credentials primeiro e reutilizá la diretamente após implementar o método de validação de credenciais do modelo adicionando modelos adicionando modelos predefinidos para modelos predefinidos, podemos conectá los simplesmente definindo um arquivo yaml e implementando o código de chamada adicionando modelos personalizados para modelos personalizados, só precisamos implementar o código de chamada para conectá los, mas os parâmetros que eles manipulam podem ser mais complexos testes para garantir a disponibilidade do provedor/modelo conectado, cada método escrito precisa ter o código de teste de integração correspondente escrito no diretório de testes usando a anthropic como exemplo antes de escrever o código de teste, você precisa adicionar as variáveis de ambiente de credenciais necessárias para testar o provedor em env example , como anthropic api key antes de executar, copie env example para env e, em seguida, execute escrevendo o código de teste crie um módulo com o mesmo nome do provedor sob o diretório tests anthropic , e continue a criar test provider py e arquivos de teste de tipo de modelo correspondentes neste módulo, conforme mostrado abaixo ├── init py ├── anthropic │ ├── init py │ ├── test llm py # llm test │ └── test provider py # provider test escreva o código de teste para diversas situações do código implementado acima e, após passar nos testes, submeta o código