main
HuangHai 2 weeks ago
parent b52dc5b82f
commit 3bcaeae6a5

@ -1,17 +1,20 @@
class LLMConfig:
MODEL = "deepseek-chat"
API_KEY = "sk-44ae895eeb614aa1a9c6460579e322f1"
BASE_URL = "https://api.deepseek.com"
# 大模型 【DeepSeek深度求索官方】
#LLM_API_KEY = "sk-44ae895eeb614aa1a9c6460579e322f1"
#LLM_BASE_URL = "https://api.deepseek.com"
#LLM_MODEL_NAME = "deepseek-chat"
class EmbeddingConfig:
MODEL = "BAAI/bge-m3"
API_KEY = "sk-pbqibyjwhrgmnlsmdygplahextfaclgnedetybccknxojlyl"
BASE_URL = "https://api.siliconflow.cn/v1"
EMBEDDING_DIM = 1024
MAX_TOKEN_SIZE = 8192
# 阿里云提供的大模型服务
LLM_API_KEY="sk-f6da0c787eff4b0389e4ad03a35a911f"
LLM_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"
# LLM_MODEL_NAME = "qwen-plus" # 不要使用通义千问,会导致化学方程式不正确!
LLM_MODEL_NAME = "deepseek-v3"
EMBED_MODEL_NAME = "BAAI/bge-m3"
EMBED_API_KEY = "sk-pbqibyjwhrgmnlsmdygplahextfaclgnedetybccknxojlyl"
EMBED_BASE_URL = "https://api.siliconflow.cn/v1"
EMBED_DIM = 1024
EMBED_MAX_TOKEN_SIZE = 8192
BATCH_SIZE_NODES = 500
BATCH_SIZE_EDGES = 100
NEO4J_URI = "bolt://localhost:7687"
NEO4J_USERNAME = "neo4j"

@ -0,0 +1,193 @@
<?xml version='1.0' encoding='utf-8'?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
<key id="d11" for="edge" attr.name="created_at" attr.type="long" />
<key id="d10" for="edge" attr.name="file_path" attr.type="string" />
<key id="d9" for="edge" attr.name="source_id" attr.type="string" />
<key id="d8" for="edge" attr.name="keywords" attr.type="string" />
<key id="d7" for="edge" attr.name="description" attr.type="string" />
<key id="d6" for="edge" attr.name="weight" attr.type="double" />
<key id="d5" for="node" attr.name="created_at" attr.type="long" />
<key id="d4" for="node" attr.name="file_path" attr.type="string" />
<key id="d3" for="node" attr.name="source_id" attr.type="string" />
<key id="d2" for="node" attr.name="description" attr.type="string" />
<key id="d1" for="node" attr.name="entity_type" attr.type="string" />
<key id="d0" for="node" attr.name="entity_id" attr.type="string" />
<graph edgedefault="undirected">
<node id="氧化铁">
<data key="d0">氧化铁</data>
<data key="d1">category</data>
<data key="d2">氧化铁是一种化学物质,参与与硝酸的反应。</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<node id="硝酸">
<data key="d0">硝酸</data>
<data key="d1">category</data>
<data key="d2">硝酸是一种强酸,参与与氧化铁的反应。</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<node id="氢气">
<data key="d0">氢气</data>
<data key="d1">category</data>
<data key="d2">氢气是一种气体,参与与氧气的燃烧反应。</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<node id="氧气">
<data key="d0">氧气</data>
<data key="d1">category</data>
<data key="d2">氧气是一种气体,参与与氢气的燃烧反应。</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<node id="化学反应方程式">
<data key="d0">化学反应方程式</data>
<data key="d1">event</data>
<data key="d2">化学反应方程式描述了氧化铁与硝酸的反应以及氢气与氧气的燃烧反应。</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<node id="FeO">
<data key="d0">FeO</data>
<data key="d1">category</data>
<data key="d2">Iron(II) oxide (FeO) is a chemical compound involved in the reaction with nitric acid.</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<node id="HNO₃">
<data key="d0">HNO₃</data>
<data key="d1">category</data>
<data key="d2">Nitric acid (HNO₃) is a strong acid that reacts with iron(II) oxide.</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<node id="Fe(NO₃)₃">
<data key="d0">Fe(NO₃)₃</data>
<data key="d1">category</data>
<data key="d2">Iron(III) nitrate (Fe(NO₃)₃) is a product of the reaction between FeO and HNO₃.</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<node id="H₂">
<data key="d0">H₂</data>
<data key="d1">category</data>
<data key="d2">Hydrogen gas (H₂) is a byproduct of the reaction between FeO and HNO₃.</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<node id="NO₂">
<data key="d0">NO₂</data>
<data key="d1">category</data>
<data key="d2">Nitrogen dioxide (NO₂) is a gaseous byproduct of the reaction between FeO and HNO₃.</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<node id="H₂O">
<data key="d0">H₂O</data>
<data key="d1">category</data>
<data key="d2">Water (H₂O) is the product of the combustion reaction between hydrogen and oxygen.</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<node id="O₂">
<data key="d0">O₂</data>
<data key="d1">category</data>
<data key="d2">Oxygen gas (O₂) is involved in the combustion reaction with hydrogen.</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<node id="Chemical Reaction 1">
<data key="d0">Chemical Reaction 1</data>
<data key="d1">event</data>
<data key="d2">The reaction between iron(II) oxide and nitric acid, producing iron(III) nitrate, hydrogen gas, and nitrogen dioxide.</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<node id="Chemical Reaction 2">
<data key="d0">Chemical Reaction 2</data>
<data key="d1">event</data>
<data key="d2">The combustion reaction between hydrogen and oxygen, producing water.</data>
<data key="d3">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d4">unknown_source</data>
<data key="d5">1752037475</data>
</node>
<edge source="氧化铁" target="硝酸">
<data key="d6">8.0</data>
<data key="d7">氧化铁与硝酸发生化学反应,生成硝酸铁、水和二氧化氮。</data>
<data key="d8">化学反应,生成物</data>
<data key="d9">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d10">unknown_source</data>
<data key="d11">1752037475</data>
</edge>
<edge source="氢气" target="氧气">
<data key="d6">9.0</data>
<data key="d7">氢气与氧气发生燃烧反应,生成水。</data>
<data key="d8">燃烧反应,生成物</data>
<data key="d9">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d10">unknown_source</data>
<data key="d11">1752037475</data>
</edge>
<edge source="FeO" target="HNO₃">
<data key="d6">9.0</data>
<data key="d7">Iron(II) oxide reacts with nitric acid to form iron(III) nitrate, hydrogen gas, and nitrogen dioxide.</data>
<data key="d8">acid-base,chemical reaction</data>
<data key="d9">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d10">unknown_source</data>
<data key="d11">1752037475</data>
</edge>
<edge source="FeO" target="Fe(NO₃)₃">
<data key="d6">8.0</data>
<data key="d7">Iron(II) oxide is transformed into iron(III) nitrate through the reaction with nitric acid.</data>
<data key="d8">chemical transformation,oxidation</data>
<data key="d9">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d10">unknown_source</data>
<data key="d11">1752037475</data>
</edge>
<edge source="HNO₃" target="NO₂">
<data key="d6">7.0</data>
<data key="d7">Nitric acid decomposes to produce nitrogen dioxide as a byproduct in the reaction with FeO.</data>
<data key="d8">decomposition,gas evolution</data>
<data key="d9">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d10">unknown_source</data>
<data key="d11">1752037475</data>
</edge>
<edge source="HNO₃" target="H₂">
<data key="d6">7.0</data>
<data key="d7">Nitric acid reacts with FeO, releasing hydrogen gas as a byproduct.</data>
<data key="d8">gas evolution,redox reaction</data>
<data key="d9">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d10">unknown_source</data>
<data key="d11">1752037475</data>
</edge>
<edge source="H₂" target="O₂">
<data key="d6">10.0</data>
<data key="d7">Hydrogen gas combusts with oxygen gas to form water.</data>
<data key="d8">combustion reaction,oxidation</data>
<data key="d9">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d10">unknown_source</data>
<data key="d11">1752037475</data>
</edge>
<edge source="Chemical Reaction 1" target="Chemical Reaction 2">
<data key="d6">6.0</data>
<data key="d7">Both reactions are chemical processes involving the transformation of reactants into products.</data>
<data key="d8">chemical processes,reaction types</data>
<data key="d9">chunk-6fa0ffc837132d73ca1fce4e45e740a8</data>
<data key="d10">unknown_source</data>
<data key="d11">1752037475</data>
</edge>
</graph>
</graphml>

@ -1,12 +1,12 @@
{
"doc-6fa0ffc837132d73ca1fce4e45e740a8": {
"status": "processing",
"status": "processed",
"chunks_count": 1,
"content": "氧化铁和硝酸的反应方程式1\n$$FeO + 4HNO_{3} triangleq Feleft( No_{3} right)_{3} + 2H_{2} uparrow + NO_{2} uparrow$$\n氢气与氧气燃烧的方程式\n 2H_{ 2 } +O_{ 2 } =2H_{ 2 } O",
"content_summary": "氧化铁和硝酸的反应方程式1\n$$FeO + 4HNO_{3} triangleq Feleft( No_{3} right)_{3} + 2H_{2} uparrow + NO_{2} uparrow$$\n氢气与氧气燃烧的方程式\n 2H_{ 2 } +O_{ 2 } =2H_{ 2 } O",
"content_length": 148,
"created_at": "2025-07-09T05:01:08.133985+00:00",
"updated_at": "2025-07-09T05:01:08.140793+00:00",
"created_at": "2025-07-09T05:04:34.894266+00:00",
"updated_at": "2025-07-09T05:04:37.207851+00:00",
"file_path": "unknown_source"
}
}

@ -0,0 +1,5 @@
{
"doc-6fa0ffc837132d73ca1fce4e45e740a8": {
"content": "氧化铁和硝酸的反应方程式1\n$$FeO + 4HNO_{3} triangleq Feleft( No_{3} right)_{3} + 2H_{2} uparrow + NO_{2} uparrow$$\n氢气与氧气燃烧的方程式\n 2H_{ 2 } +O_{ 2 } =2H_{ 2 } O"
}
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,9 @@
{
"chunk-6fa0ffc837132d73ca1fce4e45e740a8": {
"tokens": 97,
"content": "氧化铁和硝酸的反应方程式1\n$$FeO + 4HNO_{3} triangleq Feleft( No_{3} right)_{3} + 2H_{2} uparrow + NO_{2} uparrow$$\n氢气与氧气燃烧的方程式\n 2H_{ 2 } +O_{ 2 } =2H_{ 2 } O",
"chunk_order_index": 0,
"full_doc_id": "doc-6fa0ffc837132d73ca1fce4e45e740a8",
"file_path": "unknown_source"
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -8,13 +8,15 @@ from lightrag import LightRAG
from lightrag.kg.shared_storage import initialize_pipeline_status
from lightrag.llm.openai import openai_complete_if_cache, openai_embed
from lightrag.utils import EmbeddingFunc, logger, set_verbose_debug
from Config.Config import LLMConfig, EmbeddingConfig
from Config.Config import *
async def print_stream(stream):
async for chunk in stream:
if chunk:
print(chunk, end="", flush=True)
def configure_logging():
for logger_name in ["uvicorn", "uvicorn.access", "uvicorn.error", "lightrag"]:
logger_instance = logging.getLogger(logger_name)
@ -76,30 +78,32 @@ async def llm_model_func(
prompt, system_prompt=None, history_messages=None, **kwargs
) -> str:
return await openai_complete_if_cache(
os.getenv("LLM_MODEL", LLMConfig.MODEL),
os.getenv("LLM_MODEL", LLM_MODEL_NAME),
prompt,
system_prompt=system_prompt,
history_messages=history_messages,
api_key=LLMConfig.API_KEY,
base_url=LLMConfig.BASE_URL,
api_key=LLM_API_KEY,
base_url=LLM_BASE_URL,
**kwargs,
)
async def embedding_func(texts: list[str]) -> np.ndarray:
return await openai_embed(
texts,
model=EmbeddingConfig.MODEL,
api_key=EmbeddingConfig.API_KEY,
base_url=EmbeddingConfig.BASE_URL
model=EMBED_MODEL_NAME,
api_key=EMBED_API_KEY,
base_url=EMBED_BASE_URL
)
async def initialize_rag(working_dir):
rag = LightRAG(
working_dir=working_dir,
llm_model_func=llm_model_func,
embedding_func=EmbeddingFunc(
embedding_dim=EmbeddingConfig.EMBEDDING_DIM,
max_token_size=EmbeddingConfig.MAX_TOKEN_SIZE,
embedding_dim=EMBED_DIM,
max_token_size=EMBED_MAX_TOKEN_SIZE,
func=embedding_func
),
)
@ -107,4 +111,4 @@ async def initialize_rag(working_dir):
await rag.initialize_storages()
await initialize_pipeline_status()
return rag
return rag

Loading…
Cancel
Save