Example #1
0
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument("offset", type=int, required=True)
        parser.add_argument("limit", type=int, required=True)
        args = parser.parse_args(strict=True)

        offset = args.get("offset")
        limit = args.get("limit")

        collection: CollectionReference = client.collection("user_input")
        query: Query = collection.order_by("create_time",
                                           direction=Query.DESCENDING)
        query = query.offset(offset)
        query = query.limit(limit)

        documents = list(query.stream())
        data = []
        for doc in documents:
            _data = doc._data
            create_time = None
            if _data.get("create_time"):
                create_time = datetime.fromtimestamp(
                    _data["create_time"], tz=KST).strftime("%Y-%m-%d %H:%M:%S")
            data.append({
                "id": doc.id,
                "userInput": _data["text"],
                "answer": _data.get("answer"),
                "create_time": create_time,
            })

        count = len(data)
        return {"count": count, "data": data}, 200
Example #2
0
                top_score = each[1]
                top_answers.append(each[0])
        else:
            if top_score == each[1]:
                top_answers.append(each[0])
            else:
                break

    if not top_answers:
        return "잘 모르겠다냥~"
    else:
        ret = random.choice(top_answers)
        return ret


collection_qna = client.collection("qna")


def _calc_jaacard(a, b):
    def __calc_jaccard(a_grams, b_grams):
        visited = []
        num_union = max(len(a_grams), len(b_grams))  # output 뺀 것
        num_joint = 0
        for gram_a in a_grams:
            for gram_b in b_grams:
                if (gram_a == gram_b) and (gram_a not in visited):
                    num_joint += 1
                    visited.append(gram_a)

        return num_joint / num_union
Example #3
0
from db.connect import client
from db import *
from engine.preprocessor.clean import clean

collection = client.collection("qna")


def add_qa(question, answer):
    question = clean(question)
    answer = QA(question=question, answer=answer)
    ret: QA = collection.add(answer.to_dict())

    return ret
Example #4
0
from lib.flask_restplus import Resource, Namespace
from engine.preprocessor.clean import *
from engine.services.talk import *
from db.connect import client

ns = Namespace(name="", description="Restful API")

user_input = client.collection("user_input")


@ns.route("/<string:text>")
class Index(Resource):
    @ns.doc("챗봇 입력")
    def get(self, text):
        text = clean(text, token=False)
        ui = UserInput(text=text)
        ret: dict = get_response(ui)

        user_input.add(ui.to_dict())

        return {"answer": ret}, 200
from google.cloud.firestore_v1 import DocumentSnapshot, CollectionReference

from db.connect import client

collection: CollectionReference = client.collection("user_input")
for each in collection.stream():
    each: DocumentSnapshot
    create_time = each.create_time

    doc_id = each.id
    ret = collection.document(doc_id).update(
        {"create_time": create_time.seconds})
    print(each._data.get("text"))
    print(ret)