12345678910111213141516171819202122232425 |
- import os
- from httpx import AsyncClient, URL
- from app.core.config import settings
- from app.services.service import api_exception
- class Duckling:
- """
- Duckling is a Haskell library that parses text into structured data.
- """
- def __init__(self, client: AsyncClient, server_settings=settings):
- super(Duckling, self).__init__()
- self._client = client
- self._host = URL(os.getenv("DUCKLING_HOST", settings.DUCKLING_HOST))
- @api_exception
- async def parse(self, text: str, locale: str = "zh_CN") -> dict:
- url = self._host.join("parse")
- data = {"locale": locale, "text": text}
- raw_response = await self._client.post(url, data=data)
- return raw_response.json()
|