MCPcopy Index your code
hub / github.com/1Panel-dev/MaxKB / ChatRecord

Class ChatRecord

apps/application/models/application_chat.py:84–128  ·  view source on GitHub ↗

对话日志 详情

Source from the content-addressed store, hash-verified

82
83
84class ChatRecord(AppModelMixin):
85 """
86 对话日志 详情
87 """
88 id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
89 chat = models.ForeignKey(Chat, on_delete=models.CASCADE)
90 vote_status = models.CharField(verbose_name='投票', max_length=10, choices=VoteChoices.choices,
91 default=VoteChoices.UN_VOTE)
92 vote_reason = models.CharField(verbose_name='投票原因', max_length=50, choices=VoteReasonChoices.choices, null=True,
93 blank=True)
94 vote_other_content = models.CharField(verbose_name='其他原因', max_length=1024, default='')
95 problem_text = models.CharField(max_length=10240, verbose_name="问题")
96 answer_text = models.CharField(max_length=40960, verbose_name="答案")
97 answer_text_list = ArrayField(verbose_name="改进标注列表",
98 base_field=models.JSONField()
99 , default=list)
100 message_tokens = models.IntegerField(verbose_name="请求token数量", default=0)
101 answer_tokens = models.IntegerField(verbose_name="响应token数量", default=0)
102 const = models.IntegerField(verbose_name="总费用", default=0)
103 details = models.JSONField(verbose_name="对话详情", default=dict, encoder=SystemEncoder)
104 improve_paragraph_id_list = ArrayField(verbose_name="改进标注列表",
105 base_field=models.UUIDField(max_length=128, blank=True)
106 , default=list)
107 run_time = models.FloatField(verbose_name="运行时长", default=0)
108 index = models.IntegerField(verbose_name="对话下标")
109 source = models.JSONField(verbose_name="来源", default=dict)
110 ip_address = models.CharField(max_length=128, verbose_name="ip地址", default='')
111
112 def get_human_message(self):
113 if 'problem_padding' in self.details:
114 return HumanMessage(content=self.details.get('problem_padding').get('padding_problem_text'))
115 return HumanMessage(content=self.problem_text)
116
117 def get_ai_message(self):
118 answer_text = self.answer_text
119 if answer_text is None or len(str(answer_text).strip()) == 0:
120 answer_text = _(
121 'Sorry, no relevant content was found. Please re-describe your problem or provide more information. ')
122 return AIMessage(content=answer_text)
123
124 def get_node_details_runtime_node_id(self, runtime_node_id):
125 return self.details.get(runtime_node_id, None)
126
127 class Meta:
128 db_table = "application_chat_record"
129
130
131class ApplicationChatUserStats(AppModelMixin):

Callers 7

to_chat_recordMethod · 0.90
handlerMethod · 0.90
handlerMethod · 0.90
loopFunction · 0.90
write_context_streamFunction · 0.90
to_chat_recordMethod · 0.90
map_to_chat_recordMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected