AI视频生成:小说文案智能分镜+智能识别角色和场景+批量Ai绘图+自动配音添加音乐+一键合成视频https://aitools.jurilu.com/
DeepSeek-R1 在人工智慧界引起了不小的轰动。该模型由中国人工智能公司DeepSeek开发,正在与OpenAI 的顶级模型进行比较。 DeepSeek-R1 之所以令人兴奋,不仅是因为它的功能,还因为它是开源的,任何人都可以下载并在本地执行它。在这篇部落格中,我将指导您使用Ollama 在您的机器上设定DeepSeek-R1。
为什么选择DeepSeek-R1?
DeepSeek-R1 脱颖而出有几个原因。它不仅比许多其他模型便宜,而且在解决问题、推理和编码方面表现出色。其内建的思维链推理提高了其效率,使其成为其他模型的有力竞争者。让我们深入了解如何在本机系统上执行该模型。
开始使用Ollama
在我们开始之前,让我们讨论一下Ollama。 Ollama 是一款免费的开源工具,可让使用者在本地执行自然语言处理模型。使用Ollama,您可以轻松下载并执行DeepSeek-R1 模型。
你可以按照以下方式开始你:
步骤1:安装Ollama
首先,您需要下载并安装Ollama。造访Ollama 网站并下载与您的作业系统相符的版本。
请按照网站上提供的安装说明进行操作。
第2 步:下载DeepSeek-R1
正如你所看到的,当你造访Ollama 网站时,你可以执行DeepSeek-R1 的不同参数。您可以在此处找到要求的详细资讯(如上图所示)
您可以执行1.5b、7b、8b、14b、32b、70b、671b,显然随着您选择更大的参数,硬体需求也会增加。我在我的教程中使用了7b。
安装Ollama 后,打开终端机并输入以下命令下载DeepSeek-R1 模型:
ollama run deepseek-r1
此命令告诉Ollama 下载模型。根据您的网速,这可能需要一些时间。完成时喝杯咖啡!
步骤3:验证安装
下载后,执行以下命令以验证安装:
ollama list
您应该在可用模型清单中看到deepseek-r1。如果你做到了,那就太好了!您已准备好执行模型。
步骤4:执行DeepSeek-R1
现在,让我们使用以下命令启动模型:
ollama run deepseek-r1
就这样,您就可以在本地与DeepSeek-R1 互动。就这么简单!
第5 步:提出疑问
透过模型进行思路链推理。
该模型在编码任务中表现也很好。我们也来检查一下这种方法。
上述程式码相关查询的详细答案。
我对DeepSeek-R1 的第一印象简直令人震惊:)
按照本指南,您已成功使用Ollama 在本机上设定DeepSeek-R1。此设定为AI 整合提供了强大的解决方案,为您的应用程式提供隐私、速度和控制。享受使用DeepSeek-R1 进行实验并探索本地AI 模型的潜力。顺便说一句,为您的AI/ML 应用程式拥有一个强大的资料库是必须的。我建议使用像SingleStore这样的一体化资料平台。
使用DeepSeek 和SingleStore 的RAG 应用程式
如果您想扩展学习并建立一个简单的RAG 应用程式,您可以按照本教程进行操作。我们将在这里使用SingleStore作为向量资料库来储存我们的资料。 Singlestore 是一个用于建立AI/ML 应用程式的一体化资料平台。
1. 先决条件
-
Python 3.8+
所需的库:
pip install singlestoredb sentence-transformers deepseek-sdk python-dotenv
设定环境
建立.env档:
SINGLESTORE_HOST=your-singlestore-host
SINGLESTORE_USER=your-username
SINGLESTORE_PASSWORD=your-password
DEEPSEEK_API_KEY=your-api-key
从SingleStore Cloud 和DeepSeek API 取得凭证。
资料库设定
在SingleStore 中建立一个新的资料库:
CREATE DATABASE rag_db;
该程序码将自动建立文件表
文件准备
用您自己的资料取代范例文件列表
-
对于大型资料集,请考虑批次处理
执行应用程序
python rag_app.py
范例用法
# Custom query example
query = "How does SingleStore handle vector search?"
print(rag.generate_response(query))
完整程序码更新如下,
import os
import numpy as np
from typing import List
import singlestoredb as s2
from getpass import getpass
from sentence_transformers import SentenceTransformer
from deepseek_sdk import DeepSeek
class RAGApplication:
def __init__(self):
self._load_env()
self._init_db()
self._init_models()
def _load_env(self):
self.db_config = {
'host': os.getenv('SINGLESTORE_HOST', 'localhost'),
'port': 3306,
'user': os.getenv('SINGLESTORE_USER', 'root'),
'password': os.getenv('SINGLESTORE_PASSWORD', ''),
'database': os.getenv('SINGLESTORE_DB', 'rag_db')
}
self.deepseek_key = os.getenv('DEEPSEEK_API_KEY') or getpass('DeepSeek API key: ')
def _init_db(self):
# Create connection pool
self.pool = s2.create_pool(**self.db_config)
self._create_table()
def _create_table(self):
create_table_sql = """
CREATE TABLE IF NOT EXISTS documents (
id INT PRIMARY KEY AUTO_INCREMENT,
text TEXT,
embedding BLOB,
VECTOR INDEX (embedding) USING FLAT
)
"""
with self.pool.connect() as conn:
conn.execute(create_table_sql)
def _init_models(self):
self.embedder = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
self.llm = DeepSeek(api_key=self.deepseek_key)
def store_documents(self, documents: List[str]):
embeddings = self.embedder.encode(documents)
insert_sql = """
INSERT INTO documents (text, embedding)
VALUES (%s, JSON_ARRAY_PACK(%s))
"""
with self.pool.connect() as conn:
with conn.cursor() as cursor:
cursor.executemany(insert_sql, [
(text, f'[{",".join(map(str, emb.tolist()))}]')
for text, emb in zip(documents, embeddings)
])
conn.commit()
def retrieve_context(self, query: str, top_k: int = 3) -> List[str]:
query_embedding = self.embedder.encode([query])[0].tolist()
search_sql = """
SELECT text
FROM documents
ORDER BY DOT_PRODUCT(embedding, JSON_ARRAY_PACK(%s)) DESC
LIMIT %s
"""
with self.pool.connect() as conn:
with conn.cursor() as cursor:
cursor.execute(search_sql, (
f'[{",".join(map(str, query_embedding))}]',
top_k
))
results = cursor.fetchall()
return [result[0] for result in results]
def generate_response(self, query: str) -> str:
context = self.retrieve_context(query)
prompt = f"Context:\n{'\n'.join(context)}\n\nQuestion: {query}\nAnswer:"
response = self.llm.chat(
messages=[{'role': 'user', 'content': prompt}],
temperature=0.7
)
return response.choices[0].message.content
if __name__ == "__main__":
rag = RAGApplication()
# Store sample documents
documents = [
"DeepSeek is a Chinese AI company focused on AGI research.",
"SingleStore is a distributed SQL database optimized for real-time analytics.",
"RAG combines retrieval from databases with LLM generation.",
"Vector embeddings represent text as numerical vectors for similarity search."
]
rag.store_documents(documents)
# Example query
query = "What is RAG?"
print(rag.generate_response(query))