Saltar a contenido

Pangeanic MT API

La API de Pangeanic es una implementación RESTful sencilla en la que las solicitudes normalmente se envían como POST con un cuerpo codificado en JSON.

Programas externos, sistemas heredados, programadores que usan la consola o clientes de API pueden acceder a todas las funcionalidades de la solución utilizando estas API genéricas.

URL DEL SERVIDOR: http://prod.pangeamt.com:8080/NexRelay/v1/

APIKEY

Todos los endpoints requieren el parámetro apikey. Si no se proporciona o es incorrecto, la API responderá con un error 400 o 401.


POST /corp/engines

Este endpoint es necesario para listar los IDs de los motores disponibles asociados a tu clave API.

Parámetros de solicitud

Parámetro Tipo Descripción
apikey string Obligatorio. Tu clave de acceso personal.
import requests

url = "http://prod.pangeamt.com:8080/NexRelay/v1/corp/engines"
payload = {"apikey": "your-api-key-here"}

res = requests.post(url, json=payload)
print(res.json())
curl -X POST http://prod.pangeamt.com:8080/NexRelay/v1/corp/engines \
  -H "Content-Type: application/json" \
  -d '{"apikey": "your-api-key-here"}'
{
  "engines": [
    {
      "id": 1,
      "src": "en",
      "tgt": "es",
      "descr": "ENES_B_plain",
      "status": 0
    }
  ]
}

POST /translate

Procesa un segmento de texto. El procesamiento funciona mejor si el segmento es una frase con contenido semántico completo.

Parámetros de solicitud

Parámetro Tipo Descripción
apikey string Obligatorio. Tu clave de acceso personal.
src string Obligatorio. Código de idioma (por ejemplo, "es").
tgt string Obligatorio. Código de idioma (por ejemplo, "en").
engine string Obligatorio. ID del motor a utilizar.
text array Obligatorio. Lista de textos a traducir.
import requests

url = "http://prod.pangeamt.com:8080/NexRelay/v1/translate"
payload = {
  "src": "es",
  "tgt": "en",
  "apikey": "your-api-key-here",
  "engine": "2",
  "text": ["¿Cómo estás?", "Mi perro es negro"]
}

res = requests.post(url, json=payload)
print(res.json())
curl -X POST http://prod.pangeamt.com:8080/NexRelay/v1/translate \
  -H "Content-Type: application/json" \
  -d '{
    "src": "es",
    "tgt": "en",
    "apikey": "your-api-key-here",
    "engine": "2",
    "text": ["¿Cómo estás?", "Mi perro es negro"]
  }'
[
  [{"src": "¿Cómo estás?", "tgt": "How are you?"}],
  [{"src": "Mi perro es negro", "tgt": "My dog is black"}]
]

POST /sendfile

Host: http://prod.pangeamt.com:8080/PGFile/v1

Envía un archivo al servicio para su traducción.

import requests
import json

url = "http://prod.pangeamt.com:8080/PGFile/v1/sendfile"
config = {
    "title": "file.docx",
    "engine": "123",
    "src": "es",
    "tgt": "en",
    "apikey": "your-api-key-here"
}

files = {'file': open('file.docx', 'rb')}
data = {'json': json.dumps(config)}

res = requests.post(url, files=files, data=data)
print(res.json())
curl -X POST http://prod.pangeamt.com:8080/PGFile/v1/sendfile \
  -F "json={'title': 'file.docx', 'engine': '123', 'src': 'es', 'tgt': 'en', 'apikey': 'your-api-key-here'}" \
  -F "file=@file.docx"
{ "fileId": "8d4e1c5be60d4e04850f55ec135f2554" }

GET /checkfile

Consulta el estado de procesamiento de uno o varios archivos.

import requests

params = {"apikey": "your_key", "guid": "FILE_ID"}
res = requests.get("http://prod.pangeamt.com:8080/PGFile/v1/checkfile", params=params)
print(res.json())
curl -X GET "http://prod.pangeamt.com:8080/PGFile/v1/checkfile?apikey=your_key&guid=FILE_ID"
[
  {
    "fileId": "1dc77dc5ba6d44828b860537dae07187",
    "status": 100,
    "fileName": "test.txt"
  }
]

POST /retrievefile

Recupera el archivo procesado en formato Base64.

import requests

url = "http://prod.pangeamt.com:8080/PGFile/v1/retrievefile"
payload = {"apikey": "your_key", "guid": "FILE_ID"}

res = requests.post(url, json=payload)
print(res.json())
{
  "success": true,
  "status": "110",
  "data": {
    "filename": "test.txt",
    "file": "U2VlIHRoaW5ncyB0byBkby..."
  }
}

GET /download

Descarga el archivo directamente como un flujo de datos.

import requests

url = "http://prod.pangeamt.com:8080/PGFile/v1/download"
params = {"apikey": "your_key", "fileid": "FILE_ID"}

with requests.get(url, params=params, stream=True) as r:
    with open('translated_file.docx', 'wb') as f:
        for chunk in r.iter_content(chunk_size=8192):
            f.write(chunk)
curl -O -J "http://prod.pangeamt.com:8080/PGFile/v1/download?apikey=your_key&fileid=FILE_ID"

POST /glossaries

Devuelve una lista de glosarios disponibles, opcionalmente filtrados por glossaryid.

Parámetros

Parámetro Tipo Descripción
apikey string Obligatorio. Tu clave de acceso.
glossaryid int Opcional. Filtrar por un ID específico.
import requests
url = "http://prod.pangeamt.com:8080/NexRelay/v1/glossaries"
payload = {
    "apikey": "your-api-key-here",
    "glossaryid": 123
}
res = requests.post(url, json=payload)
print(res.json())
curl -X POST http://prod.pangeamt.com:8080/NexRelay/v1/glossaries \
  -H "Content-Type: application/json" \
  -d '{"apikey":"your-api-key-here"}'
[
  {
    "id": 1,
    "name": "Medical Glossary",
    "path": "/glossaries/medico.csv"
  },
  {
    "id": 2,
    "name": "Legal Glossary",
    "path": "/glossaries/legal.csv"
  }
]

POST /deleteglossary

Elimina permanentemente un glosario específico.

Parámetros

Parámetro Tipo Descripción
apikey string Obligatorio. Tu clave de acceso.
glossaryid int Obligatorio. ID del glosario a eliminar.
import requests
url = "http://prod.pangeamt.com:8080/NexRelay/v1/deleteglossary"
payload = {
    "apikey": "your-api-key-here",
    "glossaryid": 1
}
res = requests.post(url, json=payload)
print(res.json())
curl -X POST http://prod.pangeamt.com:8080/NexRelay/v1/deleteglossary \
  -H "Content-Type: application/json" \
  -d '{"apikey":"your-api-key-here", "glossaryid": 1}'
{
  "status": "success",
  "message": "Glossary successfully deleted"
}

POST /addglossary

Permite subir un archivo de glosario y asociarlo a un motor (engineid). Requiere multipart/form-data.

Parámetros (Form-Data)

Campo Tipo Descripción
file file Archivo de glosario (CSV).
name string Nombre descriptivo del glosario.
engineid int ID del motor asociado.
apikey string Tu clave de acceso.
import requests
url = "http://prod.pangeamt.com:8080/NexRelay/v1/addglossary"
files = {'file': open('my_glossary.csv', 'rb')}
data = {
    "name": "New Glossary",
    "engineid": 2,
    "apikey": "your-api-key-here"
}
res = requests.post(url, files=files, data=data)
print(res.json())
curl -X POST http://prod.pangeamt.com:8080/NexRelay/v1/addglossary \
  -F "file=@/path/to/file.csv" \
  -F "name=New Glossary" \
  -F "engineid=2" \
  -F "apikey=your-api-key-here"
{
  "status": "success",
  "message": "Glossary added successfully",
  "id": 124
}