{"id":64546,"date":"2024-05-31T17:51:00","date_gmt":"2024-05-31T14:21:00","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/rag-%d8%a8%d8%a7-llama-cpp-%d9%88-%d8%ae%d8%af%d9%85%d8%a7%d8%aa-api-%d8%ae%d8%a7%d8%b1%d8%ac%db%8c\/"},"modified":"2024-05-31T17:51:00","modified_gmt":"2024-05-31T14:21:00","slug":"rag-%d8%a8%d8%a7-llama-cpp-%d9%88-%d8%ae%d8%af%d9%85%d8%a7%d8%aa-api-%d8%ae%d8%a7%d8%b1%d8%ac%db%8c","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/rag-%d8%a8%d8%a7-llama-cpp-%d9%88-%d8%ae%d8%af%d9%85%d8%a7%d8%aa-api-%d8%ae%d8%a7%d8%b1%d8%ac%db%8c\/","title":{"rendered":"RAG \u0628\u0627 llama.cpp \u0648 \u062e\u062f\u0645\u0627\u062a API \u062e\u0627\u0631\u062c\u06cc"},"content":{"rendered":"<p><\/p>\n<div data-article-id=\"1872083\" id=\"article-body\">\n<p>txtai \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062a\u0639\u0628\u06cc\u0647\u200c\u0634\u062f\u0647 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u0631\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u0645\u0639\u0646\u0627\u06cc\u06cc\u060c \u0627\u0631\u06a9\u0633\u062a\u0631\u0627\u0633\u06cc\u0648\u0646 LLM \u0648 \u06af\u0631\u062f\u0634\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u06cc \u0645\u062f\u0644 \u0632\u0628\u0627\u0646 \u0627\u0633\u062a.<\/p>\n<p>txtai \u0647\u0645\u06cc\u0634\u0647 \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 \u0645\u062d\u0644\u06cc \u0628\u0648\u062f\u0647 \u0648 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.  \u062f\u0631 \u0627\u0635\u0644 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0645\u062f\u0644\u200c\u0647\u0627 \u0628\u0631 \u0631\u0648\u06cc \u0633\u062e\u062a\u200c\u0627\u0641\u0632\u0627\u0631 \u0645\u062d\u0644\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0631\u0627\u0646\u0633\u0641\u0648\u0631\u0645\u0627\u062a\u0648\u0631 Hugging Face \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0628\u0648\u062f.  \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0641\u0636\u0627\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0637\u06cc \u0633\u0627\u0644 \u06af\u0630\u0634\u062a\u0647 \u062a\u06a9\u0627\u0645\u0644 \u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a\u060c txtai \u0646\u06cc\u0632 \u062a\u06a9\u0627\u0645\u0644 \u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a.  \u0686\u0627\u0631\u0686\u0648\u0628\u200c\u0647\u0627\u06cc \u0627\u0633\u062a\u0646\u062a\u0627\u062c LLM \u0627\u0636\u0627\u0641\u06cc \u0628\u0631\u0627\u06cc \u0645\u062f\u062a\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 llama.cpp \u0648 \u062e\u062f\u0645\u0627\u062a API \u062e\u0627\u0631\u062c\u06cc (\u0627\u0632 \u0637\u0631\u06cc\u0642 LiteLLM) \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0628\u0648\u062f\u0647\u200c\u0627\u0646\u062f.  \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u062e\u06cc\u0631 \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u0686\u0627\u0631\u0686\u0648\u0628 \u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0646\u062a\u0627\u062c LLM \u0622\u0633\u0627\u0646\u062a\u0631 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0646\u0633\u0644 \u0627\u0641\u0632\u0648\u062f\u0647 (RAG) (\u0628\u0631\u062f\u0627\u0631\u0633\u0627\u0632\u06cc \u0648 \u0627\u0633\u062a\u0646\u062a\u0627\u062c LLM) \u0628\u0627 llama.cpp \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc API \u062e\u0627\u0631\u062c\u06cc \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p>\u0646\u0635\u0628 <code>txtai<\/code> \u0648 \u0647\u0645\u0647 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code># Install txtai and dependencies\npip install llama-cpp-python[server] --extra-index-url https:\/\/abetlen.github.io\/llama-cpp-python\/whl\/cu121\npip install txtai[pipeline-llm]\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u062b\u0627\u0644 \u0627\u0648\u0644 \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 Embeddings \u0628\u0627 \u067e\u0634\u062a\u0648\u0627\u0646\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc llama.cpp \u0645\u06cc \u0633\u0627\u0632\u062f.<\/p>\n<p>\u067e\u0631\u0648\u0698\u0647 llama.cpp \u0628\u06cc\u0627\u0646 \u0645\u06cc \u06a9\u0646\u062f: <em>\u0647\u062f\u0641 \u0627\u0635\u0644\u06cc llama.cpp \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0627\u0633\u062a\u0646\u0628\u0627\u0637 LLM \u0628\u0627 \u062d\u062f\u0627\u0642\u0644 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u062f\u0631 \u0637\u06cc\u0641 \u06af\u0633\u062a\u0631\u062f\u0647 \u0627\u06cc \u0627\u0632 \u0633\u062e\u062a \u0627\u0641\u0632\u0627\u0631 &#8211; \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0648 \u062f\u0631 \u0641\u0636\u0627\u06cc \u0627\u0628\u0631\u06cc \u0627\u0633\u062a.<\/em>.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">from<\/span> <span class=\"n\">txtai<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Embeddings<\/span>\n\n<span class=\"c1\"># Create Embeddings with llama.cpp GGUF model\n<\/span><span class=\"n\">embeddings<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Embeddings<\/span><span class=\"p\">(<\/span>\n    <span class=\"n\">path<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">second-state\/All-MiniLM-L6-v2-Embedding-GGUF\/all-MiniLM-L6-v2-Q4_K_M.gguf<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">content<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span>\n<span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Load dataset\n<\/span><span class=\"n\">wikipedia<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Embeddings<\/span><span class=\"p\">()<\/span>\n<span class=\"n\">wikipedia<\/span><span class=\"p\">.<\/span><span class=\"nf\">load<\/span><span class=\"p\">(<\/span><span class=\"n\">provider<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">huggingface-hub<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">container<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">neuml\/txtai-wikipedia<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n\n<span class=\"n\">query<\/span> <span class=\"o\">=<\/span> <span class=\"sh\">\"\"\"<\/span><span class=\"s\">\nSELECT id, text FROM txtai\norder by percentile desc\nLIMIT 10000\n<\/span><span class=\"sh\">\"\"\"<\/span>\n\n<span class=\"c1\"># Index dataset\n<\/span><span class=\"n\">embeddings<\/span><span class=\"p\">.<\/span><span class=\"nf\">index<\/span><span class=\"p\">(<\/span><span class=\"n\">wikipedia<\/span><span class=\"p\">.<\/span><span class=\"nf\">search<\/span><span class=\"p\">(<\/span><span class=\"n\">query<\/span><span class=\"p\">))<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 Embeddings \u0622\u0645\u0627\u062f\u0647 \u0627\u0633\u062a\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0639\u0628\u0627\u0631\u062a \u062c\u0633\u062a\u062c\u0648 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"n\">embeddings<\/span><span class=\"p\">.<\/span><span class=\"nf\">search<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Inventors of electric-powered devices<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>[{'id': 'Thomas Edison',\n  'text': 'Thomas Alva Edison (February 11, 1847October 18, 1931) was an American inventor and businessman. He developed many devices in fields such as electric power generation, mass communication, sound recording, and motion pictures. These inventions, which include the phonograph, the motion picture camera, and early versions of the electric light bulb, have had a widespread impact on the modern industrialized world. He was one of the first inventors to apply the principles of organized science and teamwork to the process of invention, working with many researchers and employees. He established the first industrial research laboratory.',\n  'score': 0.6758285164833069},\n {'id': 'Nikola Tesla',\n  'text': 'Nikola Tesla (; , ;  1856\\xa0\u2013 7 January 1943) was a Serbian-American inventor, electrical engineer, mechanical engineer, and futurist. He is best-known for his contributions to the design of the modern alternating current (AC) electricity supply system.',\n  'score': 0.6077840328216553},\n {'id': 'Alexander Graham Bell',\n  'text': 'Alexander Graham Bell (, born Alexander Bell; March 3, 1847 \u2013 August 2, 1922) was a  Scottish-born Canadian-American inventor, scientist and engineer who is credited with patenting the first practical telephone. He also co-founded the American Telephone and Telegraph Company (AT&amp;T) in 1885.',\n  'score': 0.4573010802268982}]\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u0628\u06cc\u0646\u06cc\u0645\u060c \u0627\u06cc\u0646 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 Embeddings \u062f\u0631\u0633\u062a \u0645\u0627\u0646\u0646\u062f \u0633\u0627\u06cc\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc Embeddings \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.  \u062a\u0641\u0627\u0648\u062a \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u062c\u0627\u06cc PyTorch \u0627\u0632 \u06cc\u06a9 \u0645\u062f\u0644 llama.cpp \u0628\u0631\u0627\u06cc \u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u0633\u062a\u0646\u062a\u0627\u062c LLM \u0628\u0627 llama.cpp \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc txtai \u062c\u062f\u06cc\u062f \u0646\u06cc\u0633\u062a.  \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u062e\u06cc\u0631 \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f\u060c \u0627\u0632 \u067e\u06cc\u0627\u0645\u200c\u0647\u0627\u06cc \u0645\u06a9\u0627\u0644\u0645\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.  \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062f\u0631\u06a9 \u0641\u0631\u0645\u062a \u0647\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0646 \u0645\u06cc \u0628\u0631\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0641\u0631\u0622\u06cc\u0646\u062f \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0646\u0633\u0644 \u0627\u0641\u0632\u0648\u062f\u0647 (RAG) \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u062a\u0648\u0633\u0637 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc llama.cpp \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p><em>\u062a\u0648\u062c\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0646\u06a9\u062a\u0647 \u0645\u0647\u0645 \u0627\u0633\u062a \u06a9\u0647 \u067e\u06cc\u0627\u0645\u200c\u0647\u0627\u06cc \u0645\u06a9\u0627\u0644\u0645\u0647 \u0628\u0627 \u062a\u0645\u0627\u0645 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u200c\u0647\u0627\u06cc LLM \u06a9\u0647 \u062a\u0648\u0633\u0637 txtai \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f (\u062a\u0631\u0627\u0646\u0633\u0641\u0648\u0631\u0645\u0627\u062a\u0648\u0631\u0647\u0627\u060c llama.cpp\u060c litellm).<\/em><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">from<\/span> <span class=\"n\">txtai<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">LLM<\/span>\n\n<span class=\"c1\"># LLM instance\n<\/span><span class=\"n\">llm<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">LLM<\/span><span class=\"p\">(<\/span><span class=\"n\">path<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">TheBloke\/Mistral-7B-OpenOrca-GGUF\/mistral-7b-openorca.Q4_K_M.gguf<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Question and context\n<\/span><span class=\"n\">question<\/span> <span class=\"o\">=<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">Write a list of invented electric-powered devices<\/span><span class=\"sh\">\"<\/span>\n<span class=\"n\">context<\/span> <span class=\"o\">=<\/span> <span class=\"sh\">\"<\/span><span class=\"se\">\\n<\/span><span class=\"sh\">\"<\/span><span class=\"p\">.<\/span><span class=\"nf\">join<\/span><span class=\"p\">(<\/span><span class=\"n\">x<\/span><span class=\"p\">[<\/span><span class=\"sh\">\"<\/span><span class=\"s\">text<\/span><span class=\"sh\">\"<\/span><span class=\"p\">]<\/span> <span class=\"k\">for<\/span> <span class=\"n\">x<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">embeddings<\/span><span class=\"p\">.<\/span><span class=\"nf\">search<\/span><span class=\"p\">(<\/span><span class=\"n\">question<\/span><span class=\"p\">))<\/span>\n\n<span class=\"c1\"># Pass messages to LLM\n<\/span><span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">llm<\/span><span class=\"p\">([<\/span>\n    <span class=\"p\">{<\/span><span class=\"sh\">\"<\/span><span class=\"s\">role<\/span><span class=\"sh\">\"<\/span><span class=\"p\">:<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">system<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">content<\/span><span class=\"sh\">\"<\/span><span class=\"p\">:<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">You are a friendly assistant. You answer questions from users.<\/span><span class=\"sh\">\"<\/span><span class=\"p\">},<\/span>\n    <span class=\"p\">{<\/span><span class=\"sh\">\"<\/span><span class=\"s\">role<\/span><span class=\"sh\">\"<\/span><span class=\"p\">:<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">user<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">content<\/span><span class=\"sh\">\"<\/span><span class=\"p\">:<\/span> <span class=\"sa\">f<\/span><span class=\"sh\">\"\"\"<\/span><span class=\"s\">\nAnswer the following question using only the context below. Only include information specifically discussed.\n\nquestion: <\/span><span class=\"si\">{<\/span><span class=\"n\">question<\/span><span class=\"si\">}<\/span><span class=\"s\">\ncontext: <\/span><span class=\"si\">{<\/span><span class=\"n\">context<\/span><span class=\"si\">}<\/span><span class=\"s\">\n<\/span><span class=\"sh\">\"\"\"<\/span><span class=\"p\">}<\/span>\n<span class=\"p\">])<\/span>\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">response<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>Based on the given context, here's a list of invented electric-powered devices:\n\n1. Electric light bulb by Thomas Edison\n2. Phonograph by Thomas Edison\n3. Motion picture camera by Thomas Edison\n4. Alternating current (AC) electricity supply system by Nikola Tesla\n5. Telephone by Alexander Graham Bell\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0648 \u0647\u0645\u06cc\u0646\u0637\u0648\u0631\u060c RAG \u0628\u0627 llama.cpp\ud83e\udd99!<\/p>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0646\u0634\u0627\u0646 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 Embeddings \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u06cc API \u062e\u0627\u0631\u062c\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 LiteLLM \u0627\u062f\u063a\u0627\u0645 \u0634\u0648\u062f.<\/p>\n<p>\u0628\u0647 \u0642\u0648\u0644 \u062e\u0648\u062f \u067e\u0631\u0648\u0698\u0647 LiteLLM: <em>LiteLLM \u062a\u0639\u0627\u062f\u0644 \u0628\u0627\u0631\u060c \u0628\u0627\u0632\u06af\u0634\u062a \u0628\u0647 \u0639\u0642\u0628 \u0648 \u0631\u062f\u06cc\u0627\u0628\u06cc \u0647\u0632\u06cc\u0646\u0647 \u0631\u0627 \u062f\u0631 \u0628\u06cc\u0634 \u0627\u0632 100 LLM \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f.  \u0647\u0645\u0647 \u062f\u0631 \u0642\u0627\u0644\u0628 OpenAI.<\/em><\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 API \u0645\u062d\u0644\u06cc \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0646\u0645\u0627\u06cc\u0634\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code># Download models\nwget https:\/\/huggingface.co\/second-state\/All-MiniLM-L6-v2-Embedding-GGUF\/resolve\/main\/all-MiniLM-L6-v2-Q4_K_M.gguf\nwget https:\/\/huggingface.co\/TheBloke\/Mistral-7B-OpenOrca-GGUF\/resolve\/main\/mistral-7b-openorca.Q4_K_M.gguf\n\n# Start local API services\nnohup python -m llama_cpp.server --n_gpu_layers -1 --model all-MiniLM-L6-v2-Q4_K_M.gguf --host 127.0.0.1 --port 8000 &amp;&gt; vector.log &amp;\nnohup python -m llama_cpp.server --n_gpu_layers -1 --model mistral-7b-openorca.Q4_K_M.gguf --chat_format chatml --host 127.0.0.1 --port 8001 &amp;&gt; llm.log &amp;\nsleep 30\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062d\u0627\u0644\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0647\u0645 \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u0645 \u0648 \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0645\u062d\u0644\u06cc \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u0628\u0631\u062f\u0627\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 Embeddings \u062c\u062f\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645.  \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633 \u0645\u062d\u0644\u06cc \u062f\u0631 \u0642\u0627\u0644\u0628 \u067e\u0627\u0633\u062e OpenAI \u067e\u0627\u0633\u062e \u0645\u06cc \u062f\u0647\u062f\u060c \u0627\u0632 \u0627\u06cc\u0646 \u0631\u0648 <code>path<\/code> \u062a\u0646\u0638\u06cc\u0645 \u0632\u06cc\u0631<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">from<\/span> <span class=\"n\">txtai<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Embeddings<\/span>\n\n<span class=\"c1\"># Create Embeddings instance with external vectorization\n<\/span><span class=\"n\">embeddings<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Embeddings<\/span><span class=\"p\">(<\/span>\n    <span class=\"n\">path<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">openai\/gpt-4-turbo<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">content<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">vectors<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span>\n        <span class=\"sh\">\"<\/span><span class=\"s\">api_base<\/span><span class=\"sh\">\"<\/span><span class=\"p\">:<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">http:\/\/localhost:8000\/v1<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span>\n        <span class=\"sh\">\"<\/span><span class=\"s\">api_key<\/span><span class=\"sh\">\"<\/span><span class=\"p\">:<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">sk-1234<\/span><span class=\"sh\">\"<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Load dataset\n<\/span><span class=\"n\">wikipedia<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Embeddings<\/span><span class=\"p\">()<\/span>\n<span class=\"n\">wikipedia<\/span><span class=\"p\">.<\/span><span class=\"nf\">load<\/span><span class=\"p\">(<\/span><span class=\"n\">provider<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">huggingface-hub<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">container<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">neuml\/txtai-wikipedia<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n\n<span class=\"n\">query<\/span> <span class=\"o\">=<\/span> <span class=\"sh\">\"\"\"<\/span><span class=\"s\">\nSELECT id, text FROM txtai\norder by percentile desc\nLIMIT 10000\n<\/span><span class=\"sh\">\"\"\"<\/span>\n\n<span class=\"c1\"># Index dataset\n<\/span><span class=\"n\">embeddings<\/span><span class=\"p\">.<\/span><span class=\"nf\">index<\/span><span class=\"p\">(<\/span><span class=\"n\">wikipedia<\/span><span class=\"p\">.<\/span><span class=\"nf\">search<\/span><span class=\"p\">(<\/span><span class=\"n\">query<\/span><span class=\"p\">))<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"n\">embeddings<\/span><span class=\"p\">.<\/span><span class=\"nf\">search<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Inventors of electric-powered devices<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>[{'id': 'Thomas Edison',\n  'text': 'Thomas Alva Edison (February 11, 1847October 18, 1931) was an American inventor and businessman. He developed many devices in fields such as electric power generation, mass communication, sound recording, and motion pictures. These inventions, which include the phonograph, the motion picture camera, and early versions of the electric light bulb, have had a widespread impact on the modern industrialized world. He was one of the first inventors to apply the principles of organized science and teamwork to the process of invention, working with many researchers and employees. He established the first industrial research laboratory.',\n  'score': 0.6758285164833069},\n {'id': 'Nikola Tesla',\n  'text': 'Nikola Tesla (; , ;  1856\\xa0\u2013 7 January 1943) was a Serbian-American inventor, electrical engineer, mechanical engineer, and futurist. He is best-known for his contributions to the design of the modern alternating current (AC) electricity supply system.',\n  'score': 0.6077840328216553},\n {'id': 'Alexander Graham Bell',\n  'text': 'Alexander Graham Bell (, born Alexander Bell; March 3, 1847 \u2013 August 2, 1922) was a  Scottish-born Canadian-American inventor, scientist and engineer who is credited with patenting the first practical telephone. He also co-founded the American Telephone and Telegraph Company (AT&amp;T) in 1885.',\n  'score': 0.4573010802268982}]\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0627\u0646\u0646\u062f \u0645\u062b\u0627\u0644 \u0642\u0628\u0644\u06cc \u0628\u0627 llama.cpp\u060c \u0627\u06cc\u0646 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 Embeddings \u062f\u0642\u06cc\u0642\u0627\u064b \u06cc\u06a9\u0633\u0627\u0646 \u0631\u0641\u062a\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.  \u062a\u0641\u0627\u0648\u062a \u0627\u0635\u0644\u06cc \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0645\u062d\u062a\u0648\u0627 \u0628\u0631\u0627\u06cc \u0628\u0631\u062f\u0627\u0631\u06cc \u0628\u0647 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u062e\u0627\u0631\u062c\u06cc \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0622\u062e\u0631\u06cc\u0646 \u06a9\u0627\u0631\u0645\u0627\u0646\u060c \u06cc\u06a9 \u0641\u0631\u0622\u06cc\u0646\u062f \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0646\u0633\u0644 \u0627\u0641\u0632\u0648\u062f\u0647 (RAG) \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u062a\u0648\u0633\u0637 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 API \u062e\u0627\u0631\u062c\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">from<\/span> <span class=\"n\">txtai<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">LLM<\/span>\n\n<span class=\"c1\"># LLM instance\n<\/span><span class=\"n\">llm<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">LLM<\/span><span class=\"p\">(<\/span><span class=\"n\">path<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">openai\/gpt-4-turbo<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">api_base<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">http:\/\/localhost:8001\/v1<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">api_key<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">sk-1234<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Question and context\n<\/span><span class=\"n\">question<\/span> <span class=\"o\">=<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">Write a list of invented electric-powered devices<\/span><span class=\"sh\">\"<\/span>\n<span class=\"n\">context<\/span> <span class=\"o\">=<\/span> <span class=\"sh\">\"<\/span><span class=\"se\">\\n<\/span><span class=\"sh\">\"<\/span><span class=\"p\">.<\/span><span class=\"nf\">join<\/span><span class=\"p\">(<\/span><span class=\"n\">x<\/span><span class=\"p\">[<\/span><span class=\"sh\">\"<\/span><span class=\"s\">text<\/span><span class=\"sh\">\"<\/span><span class=\"p\">]<\/span> <span class=\"k\">for<\/span> <span class=\"n\">x<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">embeddings<\/span><span class=\"p\">.<\/span><span class=\"nf\">search<\/span><span class=\"p\">(<\/span><span class=\"n\">question<\/span><span class=\"p\">))<\/span>\n\n<span class=\"c1\"># Pass messages to LLM\n<\/span><span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">llm<\/span><span class=\"p\">([<\/span>\n    <span class=\"p\">{<\/span><span class=\"sh\">\"<\/span><span class=\"s\">role<\/span><span class=\"sh\">\"<\/span><span class=\"p\">:<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">system<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">content<\/span><span class=\"sh\">\"<\/span><span class=\"p\">:<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">You are a friendly assistant. You answer questions from users.<\/span><span class=\"sh\">\"<\/span><span class=\"p\">},<\/span>\n    <span class=\"p\">{<\/span><span class=\"sh\">\"<\/span><span class=\"s\">role<\/span><span class=\"sh\">\"<\/span><span class=\"p\">:<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">user<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">content<\/span><span class=\"sh\">\"<\/span><span class=\"p\">:<\/span> <span class=\"sa\">f<\/span><span class=\"sh\">\"\"\"<\/span><span class=\"s\">\nAnswer the following question using only the context below. Only include information specifically discussed.\n\nquestion: <\/span><span class=\"si\">{<\/span><span class=\"n\">question<\/span><span class=\"si\">}<\/span><span class=\"s\">\ncontext: <\/span><span class=\"si\">{<\/span><span class=\"n\">context<\/span><span class=\"si\">}<\/span><span class=\"s\">\n<\/span><span class=\"sh\">\"\"\"<\/span><span class=\"p\">}<\/span>\n<span class=\"p\">])<\/span>\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">response<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>Based on the given context, a list of invented electric-powered devices includes:\n\n1. Phonograph by Thomas Edison\n2. Motion Picture Camera by Thomas Edison\n3. Early versions of the Electric Light Bulb by Thomas Edison\n4. AC (Alternating Current) Electricity Supply System by Nikola Tesla\n5. Telephone by Alexander Graham Bell\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>txtai \u0627\u0632 \u062a\u0639\u062f\u0627\u062f\u06cc \u0628\u0627\u0637\u0646 \u0645\u062e\u062a\u0644\u0641 \u0648\u06a9\u062a\u0648\u0631 \u0648 LLM \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f.  \u0631\u0648\u0634 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0627\u0632 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc PyTorch \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 Hugging Face Transformers \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.  \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0627\u0632 llama.cpp \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc API \u062e\u0627\u0631\u062c\u06cc \u0646\u06cc\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u0636\u0627\u0641\u06cc \u0648 LLM \u062d\u062f\u0627\u06a9\u062b\u0631 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u06cc \u0648 \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u06cc \u0631\u0627 \u0645\u0645\u06a9\u0646 \u0645\u06cc\u200c\u0633\u0627\u0632\u0646\u062f.  \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0628\u0631\u062f\u0627\u0631\u0633\u0627\u0632\u06cc \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u062f\u0631 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 API \u062e\u0627\u0631\u062c\u06cc \u06cc\u0627 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u0645\u062d\u0644\u06cc \u062f\u06cc\u06af\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0631\u062f.  llama.cpp \u0627\u0632 \u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627\u06cc macOS\u060c \u0634\u062a\u0627\u0628\u200c\u062f\u0647\u0646\u062f\u0647\u200c\u0647\u0627\u06cc \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0645\u0627\u0646\u0646\u062f \u067e\u0631\u062f\u0627\u0632\u0646\u062f\u0647\u200c\u0647\u0627\u06cc \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc AMD ROCm \/ Intel \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0631 \u0631\u0648\u06cc \u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627\u06cc Raspberry Pi \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u062f\u06cc\u062f\u0646 \u062a\u0644\u0627\u0642\u06cc \u0647\u0645\u0647 \u0627\u06cc\u0646 \u067e\u06cc\u0634\u0631\u0641\u062a \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u062f\u0631 \u06a9\u0646\u0627\u0631 \u0647\u0645 \u0647\u06cc\u062c\u0627\u0646 \u0627\u0646\u06af\u06cc\u0632 \u0627\u0633\u062a.  \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0628\u0627 \u0645\u0627 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627\u0634\u06cc\u062f!<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>txtai \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062a\u0639\u0628\u06cc\u0647\u200c\u0634\u062f\u0647 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u0631\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u0645\u0639\u0646\u0627\u06cc\u06cc\u060c \u0627\u0631\u06a9\u0633\u062a\u0631\u0627\u0633\u06cc\u0648\u0646 LLM \u0648 \u06af\u0631\u062f\u0634\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u06cc \u0645\u062f\u0644 \u0632\u0628\u0627\u0646 \u0627\u0633\u062a. txtai \u0647\u0645\u06cc\u0634\u0647 \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 \u0645\u062d\u0644\u06cc \u0628\u0648\u062f\u0647 \u0648 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f. \u062f\u0631 \u0627\u0635\u0644 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0645\u062f\u0644\u200c\u0647\u0627 \u0628\u0631 \u0631\u0648\u06cc \u0633\u062e\u062a\u200c\u0627\u0641\u0632\u0627\u0631 \u0645\u062d\u0644\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0631\u0627\u0646\u0633\u0641\u0648\u0631\u0645\u0627\u062a\u0648\u0631 Hugging Face \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0628\u0648\u062f. \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0641\u0636\u0627\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0637\u06cc \u0633\u0627\u0644 \u06af\u0630\u0634\u062a\u0647 \u062a\u06a9\u0627\u0645\u0644 \u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a\u060c &hellip;<\/p>\n","protected":false},"author":2,"featured_media":64547,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media.dev.to\/cdn-cgi\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F73nkcxci43cuujei0lnu.png","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-64546","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/64546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=64546"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/64546\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/64547"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=64546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=64546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=64546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}