90 lines
3.4 KiB
Plaintext
90 lines
3.4 KiB
Plaintext
---
|
|
title: '⚙️ Custom configurations'
|
|
---
|
|
|
|
Embedchain is made to work out of the box. However, for advanced users we're also offering configuration options. All of these configuration options are optional and have sane defaults.
|
|
|
|
## Examples
|
|
|
|
### General
|
|
|
|
Here's the readme example with configuration options.
|
|
|
|
```python
|
|
import os
|
|
from embedchain import App
|
|
from embedchain.config import AppConfig, AddConfig, QueryConfig, ChunkerConfig
|
|
from chromadb.utils import embedding_functions
|
|
|
|
# Example: set the log level for debugging
|
|
config = AppConfig(log_level="DEBUG")
|
|
naval_chat_bot = App(config)
|
|
|
|
# Example: specify a custom collection name
|
|
config = AppConfig(collection_name="naval_chat_bot")
|
|
naval_chat_bot = App(config)
|
|
|
|
# Example: define your own chunker config for `youtube_video`
|
|
chunker_config = ChunkerConfig(chunk_size=1000, chunk_overlap=100, length_function=len)
|
|
naval_chat_bot.add("https://www.youtube.com/watch?v=3qHkcs3kG44", AddConfig(chunker=chunker_config))
|
|
|
|
add_config = AddConfig()
|
|
naval_chat_bot.add("https://navalmanack.s3.amazonaws.com/Eric-Jorgenson_The-Almanack-of-Naval-Ravikant_Final.pdf", config=add_config)
|
|
naval_chat_bot.add("https://nav.al/feedback", config=add_config)
|
|
naval_chat_bot.add("https://nav.al/agi", config=add_config)
|
|
|
|
naval_chat_bot.add(("Who is Naval Ravikant?", "Naval Ravikant is an Indian-American entrepreneur and investor."), config=add_config)
|
|
|
|
query_config = QueryConfig()
|
|
print(naval_chat_bot.query("What unique capacity does Naval argue humans possess when it comes to understanding explanations or concepts?", config=query_config))
|
|
```
|
|
|
|
### Custom prompt template
|
|
|
|
Here's the example of using custom prompt template with `.query`
|
|
|
|
```python
|
|
from embedchain.config import QueryConfig
|
|
from embedchain.embedchain import App
|
|
from string import Template
|
|
import wikipedia
|
|
|
|
einstein_chat_bot = App()
|
|
|
|
# Embed Wikipedia page
|
|
page = wikipedia.page("Albert Einstein")
|
|
einstein_chat_bot.add(page.content)
|
|
|
|
# Example: use your own custom template with `$context` and `$query`
|
|
einstein_chat_template = Template("""
|
|
You are Albert Einstein, a German-born theoretical physicist,
|
|
widely ranked among the greatest and most influential scientists of all time.
|
|
|
|
Use the following information about Albert Einstein to respond to
|
|
the human's query acting as Albert Einstein.
|
|
Context: $context
|
|
|
|
Keep the response brief. If you don't know the answer, just say that you don't know, don't try to make up an answer.
|
|
|
|
Human: $query
|
|
Albert Einstein:""")
|
|
query_config = QueryConfig(template=einstein_chat_template, system_prompt="You are Albert Einstein.")
|
|
queries = [
|
|
"Where did you complete your studies?",
|
|
"Why did you win nobel prize?",
|
|
"Why did you divorce your first wife?",
|
|
]
|
|
for query in queries:
|
|
response = einstein_chat_bot.query(query, config=query_config)
|
|
print("Query: ", query)
|
|
print("Response: ", response)
|
|
|
|
# Output
|
|
# Query: Where did you complete your studies?
|
|
# Response: I completed my secondary education at the Argovian cantonal school in Aarau, Switzerland.
|
|
# Query: Why did you win nobel prize?
|
|
# Response: I won the Nobel Prize in Physics in 1921 for my services to Theoretical Physics, particularly for my discovery of the law of the photoelectric effect.
|
|
# Query: Why did you divorce your first wife?
|
|
# Response: We divorced due to living apart for five years.
|
|
```
|