123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- """
- @author: luojunhui
- """
- class SearchABTest(object):
- """
- 搜索策略实验方案
- """
- ori_title = None
- article_summary = None
- article_keys = None
- trace_id = None
- def __init__(self, info, searchMethod):
- self.ori_title = info["ori_title"]
- self.article_summary = info["kimi_summary"]
- self.article_keys = info["kimi_keys"]
- self.trace_id = info["trace_id"]
- self.search_method = searchMethod
- async def base_search(self):
- """
- 兜底策略
- """
- result = await self.search_method.search_v1(
- text=self.article_keys[0],
- trace_id=self.trace_id
- )
- if result:
- return result
- else:
- sub_result = await self.search_method.search_v1(
- text=self.article_keys[1],
- trace_id=self.trace_id
- )
- if sub_result:
- return sub_result
- else:
- return await self.search_method.search_v1(
- text=self.article_keys[2],
- trace_id=self.trace_id
- )
- async def ab_0(self):
- """
- 默认原标题搜索
- :return:
- """
- search_result = await self.search_method.search_v1(
- text=self.ori_title,
- trace_id=self.trace_id
- )
- if search_result:
- return search_result
- else:
- return await self.base_search()
- async def ab_1(self):
- """
- 使用 content_summary搜索
- :return:
- """
- search_result = await self.search_method.search_v1(
- text=self.article_summary,
- trace_id=self.trace_id
- )
- if search_result:
- return search_result
- else:
- return await self.ab_0()
- async def ab_2(self):
- """
- 使用文本关键词搜索
- :return:
- """
- search_result = await self.search_method.search_v1(
- text=self.article_keys[0],
- trace_id=self.trace_id
- )
- if search_result:
- return search_result
- else:
- return await self.base_search()
- async def ab_3(self):
- """
- 使用文本关键词搜索
- :return:
- """
- search_result = await self.search_method.search_v1(
- text=self.article_keys[1],
- trace_id=self.trace_id
- )
- if search_result:
- return search_result
- else:
- return await self.base_search()
- async def ab_4(self):
- """
- 使用文本关键词搜索
- :return:
- """
- search_result = await self.search_method.search_v1(
- text=self.article_keys[2],
- trace_id=self.trace_id
- )
- if search_result:
- return search_result
- else:
- return await self.base_search()
- async def ab_5(self):
- """
- 增量搜索, 返回result_list
- :return:
- """
- result_list = await self.search_method.search_v2(
- text=self.article_summary[:15],
- trace_id=self.trace_id
- )
- if len(result_list) > 3:
- return result_list
- else:
- result_list += await self.search_method.search_v2(
- text=self.ori_title[:15],
- trace_id=self.trace_id
- )
- if len(result_list) > 3:
- return result_list
- else:
- result_list += await self.search_method.search_v2(
- text=self.article_keys[0],
- trace_id=self.trace_id
- )
- if len(result_list) > 3:
- return result_list
- else:
- result_list += await self.search_method.search_v2(
- text=self.article_keys[1],
- trace_id=self.trace_id
- )
- if result_list:
- return result_list
- else:
- result_list += await self.search_method.search_v2(
- text=self.article_keys[2],
- trace_id=self.trace_id
- )
- return result_list
|