참고소스 수정본

This commit is contained in:
LASTA_DEV01\lasta
2026-05-12 19:40:31 +09:00
parent 0f34a451fc
commit 2e9204243d
8708 changed files with 3259488 additions and 869 deletions

View File

@@ -0,0 +1,65 @@
# Copyright (c) "Neo4j"
# Neo4j Sweden AB [https://neo4j.com]
# #
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# #
# https://www.apache.org/licenses/LICENSE-2.0
# #
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import asyncio
from neo4j_graphrag.experimental.pipeline import Component, DataModel
from neo4j_graphrag.experimental.pipeline.types.context import RunContext
class StringResultModel(DataModel):
result: str
class IntResultModel(DataModel):
result: int
class ComponentNoParam(Component):
async def run(self) -> StringResultModel:
return StringResultModel(result="")
class ComponentPassThrough(Component):
async def run(self, value: str) -> StringResultModel:
return StringResultModel(result=f"value is: {value}")
class ComponentAdd(Component):
async def run(self, number1: int, number2: int) -> IntResultModel:
return IntResultModel(result=number1 + number2)
class ComponentMultiply(Component):
async def run(self, number1: int, number2: int = 2) -> IntResultModel:
return IntResultModel(result=number1 * number2)
class ComponentMultiplyWithContext(Component):
async def run_with_context(
self, context_: RunContext, number1: int, number2: int = 2
) -> IntResultModel:
await context_.notify(
message="my message", data={"number1": number1, "number2": number2}
)
return IntResultModel(result=number1 * number2)
class SlowComponentMultiply(Component):
def __init__(self, sleep: float = 1.0) -> None:
self.sleep = sleep
async def run(self, number1: int, number2: int = 2) -> IntResultModel:
await asyncio.sleep(self.sleep)
return IntResultModel(result=number1 * number2)