|
|
|
|
|
tools_name = ['alice', 'ReAct', 'BERT', 'sexuality', 'sexual security', 'medical'] |
|
|
|
from llama_index.llms.ollama import Ollama |
|
from langchain_community.embeddings.ollama import OllamaEmbeddings |
|
from llama_index.core.schema import TextNode |
|
from llama_index.core import VectorStoreIndex |
|
from llama_index.retrievers.bm25 import BM25Retriever |
|
import Stemmer |
|
from llama_index.core import Settings |
|
|
|
llm = Ollama(model="llama3") |
|
embed_model = OllamaEmbeddings(model="nomic-embed-text") |
|
Settings.llm = llm |
|
Settings.embed_model = embed_model |
|
|
|
nodes = [TextNode(text=tool, id=tool) for tool in tools_name] |
|
|
|
|
|
index = VectorStoreIndex(nodes=nodes, show_progress=True) |
|
|
|
|
|
bm25_retriever = BM25Retriever.from_defaults( |
|
nodes=nodes, |
|
similarity_top_k=2, |
|
stemmer=Stemmer.Stemmer("english"), |
|
language="english", |
|
) |
|
|
|
|
|
|
|
tool_retriever = index.as_retriever(similarity_top_k=2) |
|
query = "alice is a good girl or bad girl." |
|
retrieved_tools = [tool.text for tool in tool_retriever.retrieve(query)] |
|
bm25_retrieved_tools = [tool.text for tool in bm25_retriever.retrieve(query)] |
|
print(f"vector_retrieved: {retrieved_tools}") |
|
print(f"bm25_retrieved: {bm25_retrieved_tools}") |
|
|
|
|