123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- import json
- from loguru import logger
- from tencentcloud.common import credential
- from tencentcloud.common.exception.tencent_cloud_sdk_exception import (
- TencentCloudSDKException,
- )
- from tencentcloud.common.profile.client_profile import ClientProfile
- from tencentcloud.common.profile.http_profile import HttpProfile
- from tencentcloud.nlp.v20190408 import models, nlp_client
- from app.core.config import settings
- def get_tencent_nlp_client() -> nlp_client.NlpClient:
- try:
- cred = credential.Credential(
- settings.TENCENT_SECRET_ID_V1, settings.TENCENT_SECRET_KEY_V1
- )
- http_profile = HttpProfile()
- http_profile.reqMethod = "GET"
- http_profile.endpoint = settings.TENCENT_NLP_ENDPOINT
- client_profile = ClientProfile()
- client_profile.httpProfile = http_profile
- client = nlp_client.NlpClient(cred, "ap-guangzhou", client_profile)
- return client
- except TencentCloudSDKException as e:
- logger.error(e)
- class TencentNLP:
- def __init__(self):
- cred = credential.Credential(
- settings.TENCENT_SECRET_ID_V1, settings.TENCENT_SECRET_KEY_V1
- )
- http_profile = HttpProfile()
- http_profile.reqMethod = "GET"
- http_profile.endpoint = settings.TENCENT_NLP_ENDPOINT
- client_profile = ClientProfile()
- client_profile.httpProfile = http_profile
- client = nlp_client.NlpClient(cred, "ap-guangzhou", client_profile)
- self.client = client
- async def get_lexical_analysis_result(self, text: str) -> tuple[list, list]:
- req = models.LexicalAnalysisRequest()
- params = {"Text": text}
- req.from_json_string(json.dumps(params))
- resp = self.client.LexicalAnalysis(req)
- return resp.PosTokens, resp.NerTokens
- async def get_auto_summarization_result(self, text: str) -> str:
- req = models.AutoSummarizationRequest()
- params = {"Text": text}
- req.from_json_string(json.dumps(params))
- resp = self.client.AutoSummarization(req)
- return resp.Summary
- async def get_text_similarity_result(
- self, src_text: str, target_text: list[str]
- ) -> list:
- req = models.TextSimilarityRequest()
- params = {"SrcText": src_text, "TargetText": target_text}
- req.from_json_string(json.dumps(params))
- resp = self.client.TextSimilarity(req)
- return resp.Similarity
- async def get_dependency(self, text: str) -> list:
- req = models.DependencyParsingRequest()
- params = {"Text": text}
- req.from_json_string(json.dumps(params))
- resp = self.client.DependencyParsing(req)
- return resp.DpTokens
- async def get_word_similarity(self, src_word: str, target: str) -> float:
- try:
- req = models.WordSimilarityRequest()
- params = {"SrcWord": src_word, "TargetWord": target}
- req.from_json_string(json.dumps(params))
- resp = self.client.WordSimilarity(req)
- except TencentCloudSDKException:
- return 0
- return resp.Similarity
|