mirror of
https://github.com/MemeMeow-Studio/MemeMeow.git
synced 2026-10-29 06:06:47 +08:00
38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
from langchain.chat_models import init_chat_model
|
|
from langchain_core.messages import HumanMessage, SystemMessage
|
|
from langchain_core.tools import tool
|
|
from duckduckgo_search import DDGS
|
|
from langchain_openai import ChatOpenAI
|
|
from base import *
|
|
from config.settings import Config
|
|
def get_web_data(query: str) -> str:
|
|
"""使用DuckDuckGo搜索引擎进行搜索"""
|
|
results = DDGS().text(query, max_results=12)
|
|
return results
|
|
|
|
class LLMEnhance:
|
|
def __init__(self):
|
|
self.llm = ChatOpenAI(
|
|
api_key=Config().api.embedding_models.api_key,
|
|
base_url="https://api.siliconflow.cn/v1",
|
|
model_name='Qwen/Qwen2.5-7B-Instruct'
|
|
)
|
|
|
|
def search(self, target):
|
|
search_keywords = self.llm.invoke([HumanMessage(content=f"你接下来的任务是[{target}],但在这之前,你需要搜索相关信息。现在假装你正在搜索网页,直接给出一到两个搜索关键词,不要有多余的话,我会帮你搜索。")])
|
|
logger.debug(search_keywords.content)
|
|
search_result = get_web_data(search_keywords.content)
|
|
logger.debug(f"search_result: {search_result}")
|
|
result = self.llm.invoke([HumanMessage(content=f"网络信息: {search_result}\n\n 用一句长句介绍或回答[{target}]")])
|
|
logger.debug(f"result: {result.content}")
|
|
return result.content
|
|
|
|
def judge_possible_memes(self, possible_memes:t.List[str]):
|
|
pass
|
|
|
|
|
|
if __name__ == '__main__':
|
|
llm = LLMEnhance()
|
|
llm.search("如何评价《这就是中国》")
|
|
|