Se você tiver ferramentas configuradas no Application Assistant e quiser usá-las como plug-ins para modelos de fala grandes (por exemplo, ChatGPT, etc.), poderá usar o seguinte método.
preliminar
1 Coleta de idiomas para registro/loginIAconta on-line
- Endereço de registro/login:https://chat.jijyun.cn
2 Criar um assistente de aplicativo
3 Selecione a ferramenta a ser usada
A gama completa de aplicativos atualmente suportados pelo Tiburon Cloud pode ser visualizada no Tiburon Cloud Application Centre (https://www.jijyun.cn/apps/).
4 Configuração da autorização do aplicativo, configurações de campo
4.1 Descrição da intenção da ação
A descrição da intenção da ação informa à IA para que serve essa ferramenta e como usá-la. Em geral, o modelo de IA consultará a descrição aqui para usar essa ação.
Dicasdica::
Se você tiver mais de uma ferramenta para usar em conjunto, poderá definir como colaborar entre várias ferramentas. Por exemplo, adicionamos uma ferramenta de aplicativo de "verificação de fatura". Normalmente, a interface da ferramenta exige que os usuários passem os parâmetros da fatura para verificar se a fatura é verdadeira, mas alguns usuários enviam diretamente uma captura de tela da fatura para fazer a verificação. Desta vez, você precisa usar outra ferramenta "Jijian Cloud OCR" para extrair o conteúdo da fatura antes de usá-la.
Portanto, adicionamos o seguinte à descrição da intenção de ação na Ferramenta de Validação de Fatura: "Verifique se a fatura é uma fatura real, se você receber um URL de documento, você pode primeiro usar a função "Tibco Cloud OCR" para extrair a parte do texto do documento antes da execução".
4.2 Configurações de autorização do aplicativo
Se a ferramenta que você selecionou for um aplicativo que requer autorização, primeiro preencha a autorização da conta. Se a ferramenta for um aplicativo que não requer autorização, como o aplicativo integrado "Business Enquiry", você não precisará adicionar a autorização.
Se precisar adicionar um aplicativo autorizado, você precisará preencher os parâmetros de autorização ao adicionar uma autorização de conta. Informaremos como obter esses parâmetros na tela de autorização, incluindo documentação de autorização e vídeos instrutivos.
4.3 Configurações de campo
Configuração da seção de configurações de campo
-
- Correspondência automática de IA: o valor desse campo é gerado automaticamente pela IA com base no conteúdo do diálogo
-
- Seleção manual: não é necessária nenhuma seleção de IA, use os valores padrão
-
- Não usar este campo: geralmente um tipo de parâmetro opcional, que não é usado quando a interface é executada
Dicasdica
Abaixo de cada campo há uma linha de instruções de ajuda que você pode modificar para informar à IA como preencher o campo, como o formato da entrada do campo, etc.
5 Obtenção de parâmetros de autorização para chamadas de interface de API
-
- <
- Clique na seção "Integration" (Integração) do App Assistant, localize a integração "API Interface" e clique nela.
-
- Clique em "Add" para obter a chave da API; esse parâmetro será usado para autorizar a interface para chamadas subsequentes.
OpenAI Método de configuração do assistente
Você pode criar interfaces para usar a ferramenta configurada como uma função usando o OpenAI's Assistant, veja o código abaixo:
1 Pré-condições:
-
- Openai API_KEY foi obtido.
-
- Registro bem-sucedido de uma conta de IA
-
- Etapa 1: crie uma configuração de integração de API na plataforma Language Gathering AI (https://chat.jijyun.cn/) para obter a APIKey.
-
- Etapa 2: Chame a interface [Query the list of currently actionable actions for the specified account] para obter a lista de ferramentas inteligentes.
-
- Etapa 3: Chame o openai para criar uma interface de assistente de IA (você também pode usar o SDK fornecido pelo openai), consulte a documentação: https://platform.openai.com/docs/api-reference/assistants/createAssistant
2 Código de amostra de demonstração:
import requests
import json
openai_key = '替换成你的openai API_KEY'
jijyun_key = '替换成你的语聚AI API集成中的APIKey'
openai_service = "https://api.openai.com"
jijyun_service = "https://chat.jijyun.cn"
def get_jijyun_aitions():
'''获取集简云AI action列表'''
headers = {
'Authorization': f'Basic {jijyun_key}',
}
response = requests.request(
"GET", f"{jijyun_service}/v1/openapi/exposed", headers=headers)
if response.status_code == 200:
return response.json().get('results')
def jijyun_aitions_2_openai_tools(actions):
''''''
tools = []
if not actions:
return tools
for action in actions:
tools.append({
"type": "function",
"function": {
"name": action.get('operation_id'),
"description": action.get('description'),
"parameters": action.get('params'),
}
})
return tools
def createAssistant():
'''创建AI助手'''
actions = get_jijyun_aitions()
tools = jijyun_aitions_2_openai_tools(actions)
payload = json.dumps({
"instructions": "You are a helpful AI assistant.", // 可自定义指导说明
"name": "My First assistant",
"tools": tools,
"model": "gpt-4" //可自定义您的模型,目前集简云应用执行在GPT3.5即可顺畅运行,速度快价格低
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer $OPENAI_API_KEY',
'OpenAI-Beta': 'assistants=v1',
'Authorization': f'Bearer {openai_key}',
}
response = requests.request(
"POST", f"{openai_service}/v1/assistants", headers=headers, data=payload)
print(response.text)
def main():
createAssistant()
if __name__ == "__main__":
main()
pass
Métodos de configuração de GPTs da OpenAI
O GPTs é um assistente inteligente de IA da OpenAI que permite criar e compartilhar a funcionalidade dos GPTs. Você pode configurar as ferramentas de aplicativos do Tiburon Cloud como ações disponíveis nos GPTs, adicionando a capacidade de usar vários aplicativos do Tiburon Cloud aos seus GPTs.
1 apresentação de vídeo
Temporariamente incapaz de exibir este conteúdo fora do documento do Flying Book
(As informações de autorização da chave de API no vídeo foram removidas; use sua chave de API real para a configuração)
2 Notas de orientação de configuração (instruções)
Exemplo de uma nota de orientação onde:
-
- Regras. O conteúdo pode ser modificado
-
- Ação necessáriaAs peças precisam ser ajustadas dependendo da ação do aplicativo que você deseja usar. Não é recomendável manter o conteúdo original para modificação
-
- InstruçõesAlgumas delas precisam manter seu formato e conteúdo atuais. Ajuste as ações que você pode realmente usar
Exemplo:
Regras.
- sua resposta use o chinês o máximo possível
Instruções para a ação personalizada do IZP.
Etapa 1: Diga ao usuário que você está verificando se ele tem as ações de IA do JI necessárias para concluir a solicitação chamando /list_available_actions/ para criar uma lista: AVAILABLE ACTIONS. AVAILABLE ACTIONS. Com base na saída, verifique se a REQUIRED_ACTION necessária está em AVAILABLE ACTIONS e, se estiver, vá para a etapa 4. Caso contrário, vá para a etapa 2. Etapa 2: Se a(s) ação(ões) necessária(s) não estiver(em) disponível(is), envie ao usuário o link de configuração da(s) ação(ões) necessária(s). Se as ações necessárias não estiverem disponíveis, envie ao usuário o link de configuração das ações necessárias. Peça que ele o informe quando tiver ativado a ação de IA do Hibernate Cloud. Etapa 3. Se o usuário confirmar que configurou a ação necessária, prossiga para a etapa 4 com a solicitação original. Etapa 4. Usando o available_action_id (retornado como o
id
dentro do camporesultados
Preencha as cadeias de caracteres necessárias para a operação run_action). Preencha as cadeias de caracteres necessárias para a operação run_action. Use a solicitação do usuário para preencher as instruções e quaisquer outros campos, conforme necessário. AÇÕES.
- Ação: Robô do grupo WeChat da empresa: Enviar mensagem para os grupos WeChat da empresa
- Ação: Qixinbao: consulta de informações fotográficas comerciais para empresas
- Action:AI Image Generation: Criação de imagens (Inserção de texto para gerar imagens)
Em Required Action (Ação necessária), o nome da ação do aplicativo que você deseja usar nesses GPTs. Consulte o nome do aplicativo e a ação no assistente de aplicativo.
3 Adição de uma ação
Copie o conteúdo abaixo para o esquema. Não modifique o conteúdo do esquema abaixo, pois isso resultará em problemas de falha na chamada
{
"openapi": "3.0.2", "openapi": { "openapi": "3.0.2", "openapi".
"info": {
"description": "Equipar GPTs com a capacidade de executar milhares de ações via Tiburon Cloud."
}, "servers": [
"servidores": [
{
"url": "https://chat.jijyun.cn"
}
],
"paths" (caminhos): {
"/v1/openapi/exposed": {
"get": {
"operationId": "list_available_actions", "summary": "List Available Actions", { "get": {
"summary": "List Available Actions", "parameters": [
"parâmetros": [
], "responses".
"respostas": {
"200": {
"description": "OK", "content": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AvailableActionResponseSchema"
}
}
}
}
} } }, "description": "List all the currently available actions": "Listar todas as ações disponíveis no momento".
"description": "Lista todas as ações disponíveis no momento para o usuário. Se você tentar executar uma ação e receber um erro informando que ela não existe, tente atualizar essa lista primeiro. atualizar essa lista primeiro.", "security": [
"segurança": [
{
"AccessPointApiKeyHeader": [
]
}
]
}
},.
"/v1/openapi/exposed/{available_action_id}/execute_v2/": {
"post": {
"operationId": "run_action",
"summary": "Run Action",
"parameters": [
{
"in": "path", "name": "available_action_id", [ {
"name": "available_action_id", "schema": { "run_action": { "run_action": "run_action", "parameters": [ "in": "path", "name": "available_action_id",
"schema": {
"title": "Available Action Id", "type": "string", "type": "available_action_id", "schema": {
"type": "string", "pattern": ".
"pattern": ". *_jjyibotID_. *", "exemplo": "62_326_Contact_Action_ID_.
"example": "62_326_jjyibotID_jjyy_robot_1001"
}, "required": true, "example": "62_326_jjyibotID_jjyy_robot_1001
"example": "62_326_jjyibotID_jjyy_robot_1001"
}
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RunResponse"
}
}
}
},
"400": {
"description": "Bad Request" (Solicitação ruim),
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
} } }, "description": "Você incluirá uma ação disponível usando dados.
"description": "Execute uma ação disponível usando dados. Você incluirá os parâmetros associados de list_available_actions nos dados da solicitação.", "requestBody": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RunRequest"
}
}
}, "required": true
"required": true
}, "security": [ "#/components/schemas/RunRequest" } }
"security": [
{
"AccessPointApiKeyHeader": [
]
}
]
}
}
},
"components": {
"schemas": {
"AvailableActionSchema": {
"title": "AvailableActionSchema", "type": "object", {
"type": "object", { "properties": {
"properties": {
"id": {
"title": "Id", "description": "A ID exclusiva".
"description": "A ID exclusiva da ação disponível.", "type": "string": "title": "Id", "description": "A ID exclusiva da ação disponível.
"type": "string"
}, "operation_id": { "id": { "title": "Id", "description": "A ID exclusiva da ação disponível.
"operation_id": {
"title": "Operation Id", "description": "O ID da operação da ação disponível".
"description": "O ID da operação da ação disponível.", "type": "string": "string".
"type": "string"
}, "description": { "operation_id": { "title": "description": "O ID da operação da ação disponível.
"description": {
"title": "Description", "description": "Descrição da ação".
"description": "Descrição da ação.", "type": "string".
"type": "string"
}, "description": { "title": "Description", "descrição da ação".
"params": {
"title": "Params", "description": "Descrição da ação".
"description": "Campos de dicas disponíveis para a ação.", "type": "object".
"type": "object"
}
}, "required": [ "description": "Available hint fields for the action" (Campos de dicas disponíveis para a ação).
"required": [
"id".
"operation_id".
"description" (descrição).
"params"
]
},
"AvailableActionResponseSchema": {
"title": "AvailableActionResponseSchema", "type": "object", "params" ] }, "AvailableActionResponseSchema": {
"properties": {
"results" (resultados): {
"title": "Results", "type": "array", {
"items": {
"$ref": "#/components/schemas/AvailableActionSchema"
}
}, "configuration_link": {
"configuration_link": {
"title": "Configuration Link", "description": o user_link".
"description": "Orienta o usuário a configurar novas ações com o configuration_link. Opcionalmente, você pode adicionar ?setup_action=..." ao configuration_link para configurar uma nova ação. Você pode adicionar opcionalmente ?setup_action=... em configuration_link para configurar um aplicativo e uma ação específicos do JetCloud. Por exemplo: https://actions.jijyun.cn/gpt/start?setup_action=gmail find email", "type": "string": "string": "setup_action=...
"type": "string"
}
}, "type": "string" }
"required": [
"results", "configuration_link
"configuration_link"
}, "required": [ "results", "configuration_link" ]
},
"RunResponse": {
"title": "RunResponse", "description": "Este é um resumo dos resultados da ação que foi executada.
"type": "object", "properties": {{subtitle
"properties": {
"id": {
"title": "Id", "description": "O id de
"description": "O id do registro de execução.", "type": "string": "summary": "run", "description": "O id do registro de execução.
"type": "string"
}, "action_used": {"title": "Id", "description": "O id do registro de execução".
"action_used": {
"title": "Action Used", "description": "O nome da ação que foi usada pelo registro de execução.
"description": "O nome da ação que foi executada.", "type": "string": "run", "string": "log".
"type": "string"
}, "type": "string
"input_params": {
"title": "Input Params" (Parâmetros de entrada), "description" (descrição): "The params" (Os parâmetros): {
"description": "Os parâmetros que usamos/usaremos para executar a ação.", "type": "object": "Parameters", "description": "Os parâmetros que usamos/usaremos para executar a ação.
"type": "object"
"review_url": {
"title": "Review Url", "description": "The URL to
"description": "O URL para executar a ação ou revisar as escolhas de IA que a IA fez para as instruções fornecidas por input_params.", "type": "string": "Os parâmetros que usamos/usaremos para executar a ação.
"type": "string"
"result": {
"title": "Result", "description": "A trimmed": {
"description": "Um resultado resumido do primeiro item dos resultados completos. Ideal para humanos e modelos de linguagem!", "type": "object": "Um resultado resumido do primeiro item dos resultados completos.
"type": "object"
Ideal para humanos e modelos de linguagem!", "type": "object}
"additional_results": {
"title": "Additional Results", "description": "The rest of the results": {
"description": "O restante dos resultados completos.
"type": "array", "items": { "type": "array", "description": "O restante dos resultados completos.
"items": {
"type": "object"
}
}, "result_field_labels".
"result_field_labels": {
"title": "Result Field Labels", "description": "Rótulos legíveis por humanos para algumas das chaves no resultado.
"description": "Rótulos legíveis por humanos para algumas das chaves no resultado.", "type": "object": "result_field_labels": { "result_field_label": { "title": "Result Field Labels", "description": "Rótulos legíveis por humanos para algumas das chaves no resultado.
"type": "object"
}, "status": { "status": { "object
"status": {
"title": "Status", "description": "O status de
"description": "O status da execução da ação.", "default": "success", "description": "O status da execução da ação.
"enum": [
"success", "error", "enum": [
"default": "success", "success", "enum": [ "success", "error", "empty", "status": "title".
"empty" (vazio), "default" (padrão): [ "success" (sucesso), "error" (erro),
"preview"
], "type": "string
"type": "string"
}, "error": { "empty", "preview" ], "type": "string
"error": {
"title": "Error", "description": "A mensagem de erro se a execução da ação falhar.
"description": "A mensagem de erro se a execução da ação falhou.", "type": "string
"type": "string"
}, "type": "string", "description": "A mensagem de erro se a execução da ação falhar.
"assistant_hint": {
"title": "Assistant Hint", "description": "A hint for": "A mensagem de erro se a execução da ação falhar.
"description": "Uma dica para o assistente sobre o que fazer em seguida.", "type": "string": "string", "type": "string
"type": "string": "string"
}, "full_results": "full_results".
"full_results": {
"title": "Full Results" (Resultados completos), "description" (Descrição): "The full results" (Os resultados completos): {
"description": "Os resultados completos, não resumidos, se disponíveis. Sempre retorna uma matriz de objetos.", "type": "array", "type": "Uma dica para o assistente sobre o que fazer em seguida.
"items": {
"type": "object"
}
}
}, "required": [ "items": { "type": "object" }
"required": [
"id".
"action_used".
"input_params".
"review_url".
"additional_results", "full_results
"full_results"
]
},
"ErrorResponse": {
"title": "ErrorResponse", "type": "object", {
"type": "object", "properties": { "title": "ErrorResponse", "type": "object", "properties": { "properties": { "full_results" }
"properties": {
"error": {
"title": "Error", "description": "Error message".
"description": "Mensagem de erro.", "type": "string".
"type": "string"
}
}, "required": [ [ "description": "Error message.
"required": [
"error"
}, "required": [ "error
}, "runRequest": { "runRequest": { "error" ]
"RunRequest": {
"title": "RunRequest", "description": "Tente inserir o máximo possível de informações relevantes nos dados.
"description": "Tente inserir o máximo possível de informações relevantes nos dados." Esse tipo de ação permite definir opcionalmente preview_only se a ação for "RunRequest". Esse tipo de ação permite, opcionalmente, definir preview_only se o usuário quiser pré-visualizar antes de executar.", "type": "object", "runRequest": "Tentar inserir o máximo possível de informações relevantes nos dados.
"description": "Tente inserir o máximo possível de informações relevantes nos dados.
"properties": {
"data": {
"title": "Data", "description": "The params": {
"description": "Os parâmetros que usamos/usaremos para executar a ação", "type": "string": "params", "params", "params", "params", "params", "params", "params", "params".
"type": "string"
}, "preview_only": "preview_only".
"preview_only": {
"title": "Preview Only" (Somente visualização), "description" (descrição): "If true,
"description": "Se for verdadeiro, não executaremos a ação, mas faremos uma execução a seco e retornaremos uma visualização para o usuário confirmar.", "default": false, false
"default": false, "type": "boolean": "default": false, "default": false
"type": "boolean"
}
}, "default": false, "type": "boolean" }
"required": [
"data"
}, "required": [ "data" ]
}
}, "securitySchemes": { "securitySchemes": { "data" }
"securitySchemes": {
"AccessPointApiKeyHeader": {
"type": "apiKey", "in": "header", { "accessPointApiKeyHeader".
"in": "header", "name": "Authorisation".
"name": "Authorisation" (Autorização)
}
}
}
}
4 Configuração do método de autorização e da chave de API
Selecione o método de autorização da API
Selecione "Custom" (Personalizado) em Auth Type (Tipo de autenticação) e adicione a chave de API que você obteve na configuração de integração da API do App Helper.
-
- API Key (Chave de API): preencha a chave de API que você obteve em "Preparação: Etapa 5".
-
- Nome do cabeçalho personalizado: preencha Autorização
Exemplo:
5 Testar e liberar GPTs
Os GPTs serão atualizados automaticamente quando a configuração for concluída e, em seguida, clique em Save (Salvar) para definir o escopo de uso.
Salve-o e comece a usar seus GPTs oficialmente:
problemas comuns
Q1: Há alguma taxa para esse serviço?
Se você estiver fazendo chamadas a partir de um modelo de linguagem, como GPTs, os parâmetros de solicitação gerados pela IA chamam diretamente a interface de ação do aplicativo Tiburon Cloud, que atualmente é totalmente gratuita.
No entanto, alguns dos aplicativos integrados do Tibbo Cloud, como consulta de informações comerciais, consulta de informações de licitação, etc., são pagos com base no uso. Os preços podem ser encontrados no centro de plugins do Tibbo Cloud: https://apps.jijyun.cn/plugcenter
Além disso, há um limite para a frequência das solicitações de API. O padrão atual é de 20 solicitações por segundo (20 QS). Se precisar de uma frequência de solicitação maior, entre em contato conosco.
P2: Há suporte para uso em arquiteturas de modelo LLM, como Langchain?
Suporte, apresentaremos um documento separado sobre
P3: O que devo fazer se o aplicativo com o qual desejo interagir não estiver na lista de aplicativos já interagidos com o Tibbo Cloud?
Você pode configurar um "Webhook" na ferramenta App Assistant para solicitar a interface do seu software e personalizar a descrição da ação.
Se desejar disponibilizar a interface do seu aplicativo para todos os usuários, você poderá enviar seu aplicativo e configurar a interface de autenticação e execução por meio da Tiburon Cloud Open Platform. Para obter mais informações: https://jijyun.cn/open.html
P4: Posso chamar o "Application Assistant" diretamente em vez de GPTs ou Function?
É possível, pois o próprio assistente de aplicativo também fornece a forma de chamada da interface API. Você pode consultar nossa documentação de interface: https://yuju2023.apifox.cn/api-95488292
Q5: E se eu tiver meu próprio conteúdo de conhecimento que desejo usar como ferramenta?
Os GPTs suportam o upload de arquivos, mas com limites de tamanho e custos de armazenamento (por dia). Oferecemos uma maneira melhor de lidar com isso. Primeiro, você pode fazer o upload por meio do Centro de conhecimento do Language Gathering AI e, em seguida, adicionar "Language Gathering AI: Query Knowledge Content" como uma ferramenta a ser usada na ferramenta.
Q6 Por que meus GPTs não podem ser publicados?
Para publicar seus GPTs na disponibilidade para vários jogadores, você precisa adicionar um URL de política de privacidade.
Você precisará encontrar um documento on-line acessível publicamente ou sua própria página da Web para adicionar uma política de privacidade, e fornecemos exemplos de referências:
Exemplo de política de privacidade de GPTs
Q7 Quais aplicativos e ações são suportados atualmente para acesso?
Você pode dar uma olhada no site: https://www.jijyun.cn/apps/