mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-06-29 23:41:12 +08:00
100 lines
4.3 KiB
Markdown
100 lines
4.3 KiB
Markdown
|
|
[English](./README.md) | [简体中文](./README_zh.md) | Türkçe
|
|||
|
|
|
|||
|
|
# Eklentiler
|
|||
|
|
|
|||
|
|
Bu klasör, RAGFlow'un eklenti mekanizmasını içerir.
|
|||
|
|
|
|||
|
|
RAGFlow, `embedded_plugins` alt klasöründen eklentileri özyinelemeli olarak yükleyecektir.
|
|||
|
|
|
|||
|
|
## Desteklenen eklenti türleri
|
|||
|
|
|
|||
|
|
Şu anda desteklenen tek eklenti türü `llm_tools`'dur.
|
|||
|
|
|
|||
|
|
- `llm_tools`: LLM'nin çağırması için bir araç.
|
|||
|
|
|
|||
|
|
## Eklenti nasıl eklenir
|
|||
|
|
|
|||
|
|
Bir LLM araç eklentisi eklemek basittir: bir eklenti dosyası oluşturun, içine `LLMToolPlugin` sınıfından türetilmiş bir sınıf koyun, ardından `get_metadata` ve `invoke` metodlarını uygulayın.
|
|||
|
|
|
|||
|
|
- `get_metadata` metodu: Bu metod, aracın açıklamasını içeren bir `LLMToolMetadata` nesnesi döndürür.
|
|||
|
|
Açıklama, LLM'ye çağrı için ve RAGFlow web ön yüzüne görüntüleme amacıyla sağlanacaktır.
|
|||
|
|
|
|||
|
|
- `invoke` metodu: Bu metod, LLM tarafından üretilen parametreleri kabul eder ve aracın yürütme sonucunu içeren bir `str` döndürür.
|
|||
|
|
Bu aracın tüm yürütme mantığı bu metoda konulmalıdır.
|
|||
|
|
|
|||
|
|
RAGFlow'u başlattığınızda, günlükte eklentinizin yüklendiğini göreceksiniz:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
2025-05-15 19:29:08,959 INFO 34670 Recursively importing plugins from path `/some-path/ragflow/agent/plugin/embedded_plugins`
|
|||
|
|
2025-05-15 19:29:08,960 INFO 34670 Loaded llm_tools plugin BadCalculatorPlugin version 1.0.0
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Veya eklentinizi düzeltmeniz gereken hatalar da içerebilir.
|
|||
|
|
|
|||
|
|
### Örnek
|
|||
|
|
|
|||
|
|
Yanlış cevaplar veren bir hesap makinesi aracı ekleyerek eklenti ekleme sürecini göstereceğiz.
|
|||
|
|
|
|||
|
|
Önce, `embedded_plugins/llm_tools` klasörü altında `bad_calculator.py` adında bir eklenti dosyası oluşturun.
|
|||
|
|
|
|||
|
|
Ardından, `LLMToolPlugin` temel sınıfından türetilmiş bir `BadCalculatorPlugin` sınıfı oluşturuyoruz:
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
class BadCalculatorPlugin(LLMToolPlugin):
|
|||
|
|
_version_ = "1.0.0"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
`_version_` alanı zorunludur ve eklentinin sürüm numarasını belirtir.
|
|||
|
|
|
|||
|
|
Hesap makinemizin girdileri olarak `a` ve `b` olmak üzere iki sayısı vardır, bu yüzden `BadCalculatorPlugin` sınıfımıza aşağıdaki `invoke` metodunu ekliyoruz:
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
def invoke(self, a: int, b: int) -> str:
|
|||
|
|
return str(a + b + 100)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
`invoke` metodu LLM tarafından çağrılacaktır. Birçok parametreye sahip olabilir, ancak dönüş tipi `str` olmalıdır.
|
|||
|
|
|
|||
|
|
Son olarak, LLM'ye `bad_calculator` aracımızı nasıl kullanacağını anlatmak için bir `get_metadata` metodu eklememiz gerekiyor:
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
@classmethod
|
|||
|
|
def get_metadata(cls) -> LLMToolMetadata:
|
|||
|
|
return {
|
|||
|
|
# Bu aracın adı, LLM'ye sağlanır
|
|||
|
|
"name": "bad_calculator",
|
|||
|
|
# Bu aracın görüntüleme adı, RAGFlow ön yüzüne sağlanır
|
|||
|
|
"displayName": "$t:bad_calculator.name",
|
|||
|
|
# Bu aracın kullanım açıklaması, LLM'ye sağlanır
|
|||
|
|
"description": "A tool to calculate the sum of two numbers (will give wrong answer)",
|
|||
|
|
# Bu aracın açıklaması, RAGFlow ön yüzüne sağlanır
|
|||
|
|
"displayDescription": "$t:bad_calculator.description",
|
|||
|
|
# Bu aracın parametreleri
|
|||
|
|
"parameters": {
|
|||
|
|
# Birinci parametre - a
|
|||
|
|
"a": {
|
|||
|
|
# Parametre tipi, seçenekler: number, string veya LLM'nin tanıyabileceği herhangi bir tip
|
|||
|
|
"type": "number",
|
|||
|
|
# Bu parametrenin açıklaması, LLM'ye sağlanır
|
|||
|
|
"description": "The first number",
|
|||
|
|
# Bu parametrenin açıklaması, RAGFlow ön yüzüne sağlanır
|
|||
|
|
"displayDescription": "$t:bad_calculator.params.a",
|
|||
|
|
# Bu parametrenin zorunlu olup olmadığı
|
|||
|
|
"required": True
|
|||
|
|
},
|
|||
|
|
# İkinci parametre - b
|
|||
|
|
"b": {
|
|||
|
|
"type": "number",
|
|||
|
|
"description": "The second number",
|
|||
|
|
"displayDescription": "$t:bad_calculator.params.b",
|
|||
|
|
"required": True
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
`get_metadata` metodu bir `classmethod`'dur. Bu aracın açıklamasını LLM'ye sağlayacaktır.
|
|||
|
|
|
|||
|
|
`display` ile başlayan alanlar özel bir gösterim kullanabilir: `$t:xxx`, bu gösterim RAGFlow ön yüzündeki uluslararasılaştırma (i18n) mekanizmasını kullanarak `llmTools` kategorisinden metin alır. Bu gösterimi kullanmazsanız, ön yüz buraya yazdığınız metni doğrudan gösterecektir.
|
|||
|
|
|
|||
|
|
Artık aracımız hazırdır. `Yanıt Üret` bileşeninde seçip deneyebilirsiniz.
|