Получение данных из mongo-tracker в 'Rasa' и сохранение их в mongoDB во время выполнения, например sender_id, timestamp

Не могли бы вы рассказать мне, как вы получаете конкретную информацию из магазина трекеров. Уточняю мои сомнения ниже:

в моем run_app.py (класс socketIO) я использовал mongotracker следующим образом -

db = MongoTrackerStore (domain = «d.yml», host = «host ip», db = «xyz», username = «x», password = «x», collection = «x», event_broker = None)

агент = Agent.load («модели / диалог», интерпретатор = «модели / текущий / nlu», action_endpoint = action_endpoint, tracker_store = db)

теперь я хочу получить некоторые данные, такие как db.sender_id или db.event. причина этого заключается в том, чтобы сохранить его в столбце на моем mongodb. Пожалуйста, помогите мне решить эту проблему.


person ajay kumar prajapati    schedule 15.03.2019    source источник


Ответы (2)


Эта информация уже должна храниться в вашем mongodb, поэтому у вас не должно быть дополнительной потребности в ее хранении. Возможно, посмотрите документацию для этого https://rasa.com/docs/core/tracker_stores/ и убедитесь, что ваш endpoints.yml файл содержит правильную информацию:

tracker_store:
    store_type: mongod
    url: <url to your mongo instance, e.g. mongodb://localhost:27017>
    db: <name of the db within your mongo instance, e.g. rasa>
    username: <username used for authentication>
    password: <password used for authentication>
    auth_source: <database name associated with the user’s credentials>

Для получения информации о том, как получить конкретную информацию из вашего mongodb, возможно, посмотрите документацию mongodb https://docs.mongodb.com/manual/reference/method/db.collection.find/.

person puclanac    schedule 21.03.2019

посмотрите этот пример. Я использую Pymongo для подключения monogoDB. попробуй понять мой код

from typing import Any, Text, Dict, List
from pymongo.database import Database
from pymongo import MongoClient
from rasa_sdk import Action, Tracker 
from rasa_sdk.executor import CollectingDispatcher
import pymongo
# url="http://localhost:3000/api"
client = pymongo.MongoClient("localhost", 27017)
db=client.sample
class mercdesCarAction(Action):
    def name(self):
        return "mercdesCarAction"
    def run(self,dispatcher,tracker,domain):
        res = db.datas.find({'action':'mercdesCarAction'})
        for i in res:
            dispatcher.utter_button_message(i['text'],i['buttons'])
        return []
person Prakash Choudhary    schedule 19.11.2019
comment
Хотя ваш пример может работать, лучше потратить несколько слов на объяснение, почему ваш пример работает, чтобы другие могли найти его более полезным - person John Doe; 19.11.2019