我用c#在v4框架中做了一个机器人。我希望将整个对话以可读的格式保存到存储中。我们的要求是将机器人对话保存为可读格式或纯文本。在我的例子中,只有用户信息被保存,而不是用户和机器人之间的对话。
发布于 2020-01-02 17:49:32
发布于 2020-01-02 19:20:41
您可以使用以下代码
我曾经在nodejs上工作过,但它应该类似于C#。
对于每个步骤,调用logActivity
const { preserveService } = require('../../../Service/dbService');
await preserveService.logActivity(step.context, userData,Any param);
logActivity : async function (turnContext, userData,Any param){
try{
let userInfo = await userDataUtil.getUserInfo(turnContext,userData);
colNameAndValueArray = [
{
[PROPERTY_NAME.COLUMN_NAME] : 'response_from',
[PROPERTY_NAME.VALUE] : responsefrom,
[PROPERTY_NAME.DATATYPE] : DATATYPE.STRING
},
{
[PROPERTY_NAME.COLUMN_NAME] : 'user_session_id',
[PROPERTY_NAME.VALUE] : userInfo.userId,
[PROPERTY_NAME.DATATYPE] : DATATYPE.STRING
},
{
//conversation_id
[PROPERTY_NAME.COLUMN_NAME] : 'conversation_id',
[PROPERTY_NAME.VALUE] : turnContext._activity.conversation.id,
[PROPERTY_NAME.DATATYPE] : DATATYPE.STRING
},
{
[PROPERTY_NAME.COLUMN_NAME] : 'is_answered',
[PROPERTY_NAME.VALUE] : isAnswered,
[PROPERTY_NAME.DATATYPE] : DATATYPE.BOOLEAN
}
]
await this.insert(CONFIG.DB.AUDIT_TABLE, colNameAndValueArray);
}catch(err){
console.log(`------------------------`);
console.log(`Error occurred while inserting audit logs`);
console.log(err);
console.log(`------------------------`);
}}
insert : async function(tableName, colNameAndValueArray, returnColumnName){
let query = null;
try{
if(util.isNotEmptyString(tableName) && util.isNotEmptyArray(colNameAndValueArray)){
let columnNames = dbUtil.getColNames(colNameAndValueArray);
let columnValues = dbUtil.getColValues(colNameAndValueArray);
if(columnNames == null || columnValues == null){
throw new Error('Invalid column name or value. Kindly check the value you have passed');
}
query = `INSERT INTO ${tableName} (${columnNames}) VALUES (${columnValues}) ${util.isNotEmptyString(returnColumnName)? ` RETURNING ${returnColumnName}`: ''}`;
console.log(`------------------------`);
console.log(`Query : ${query}`);
console.log(`------------------------`);
return this.executeQuery(query);
}else{
return Promise.reject(REQUIRED_PARAMETER_MISSING);
}
}catch(err){
console.log(`------------------------`);
console.log(`Error occurred while executing insert query : ${ query != null ? query : '' }`);
console.log(err);
console.log(`------------------------`);
return Promise.reject(err);
}}希望这能有所帮助
Sanjeev Guatam
https://stackoverflow.com/questions/59561135
复制相似问题