Autogen — это превосходная система искусственного интеллекта, которая может создавать несколько агентов искусственного интеллекта, которые могут сотрудничать для выполнения задач, включая автоматическую генерацию кода и эффективное выполнение задач.
в этой статье,Присмотримся к Autogen,И познакомьте, как сделать AutoGen Используйте местный LLM.
Autogen может настроить несколько агентов искусственного интеллекта, которые работают вместе для достижения конкретных целей. Следующие скриншоты взяты из официального блога Microsoft.
Создайте среду с помощью conda:
conda create -n pyautogen python=3.10
conda activate pyautogen
AutoGenнуждатьсяPythonВерсия>= 3.8. Его можно установить из pip:
pip install pyautogen
Отредактируйте скрипт Python (app.py), импортируйте Autogen и настройте конфигурацию. Эта конфигурация включает в себя определение модели, которую вы хотите использовать (например, GPT 3.5 Turbo), и предоставление ключа API.
В настоящее время AutoGen может использовать только API OpenAI, поэтому мы расскажем, как использовать местный LLM, позже.
Можно определить несколько агентов для выполнения разных ролей или задач. Например, ниже созданы 2 роли.
autogen.AssistantAgent(assistantname="CTO",Illm_config=llm_config)
autogen.AssistantAgent(assistantname="CEO", Illm_config=llm_config)
Определите задачи и инструкции: конкретные задачи, которые вы хотите, чтобы агент выполнял. Это может быть любая инструкция: от кодирования до анализа данных.
Затем агент начнет выполнять задачи в соответствии с инструкциями. Агент Assistant отвечает результатами или фрагментами кода.
Ниже мы покажем, как автоген Использовать местный LLM. Здесь в качестве локального средства LLM будет использоваться FastChat.
FastChat предоставляет API-интерфейс, совместимый с OpenAI, для поддерживаемых моделей, поэтому вы можете использовать FastChat в качестве встроенной замены API OpenAI. Но для правильной работы его код нуждается в небольшой модификации.
git clone https://github.com/lm-sys/FastChat.git
cd FastChat
ChatGLM-6B — это открытая двуязычная языковая модель, основанная на структуре General Language Model (GLM) и имеющая 6,2 миллиарда параметров. ChatGLM2-6B — продукт второго поколения.
git clone https://huggingface.co/THUDM/chatglm2-6b
После завершения загрузки вы можете использовать его. Сначала запустите контроллер:
python -m fastchat.serve.controller
Затем запустите рабочий поток модели.
python -m fastchat.serve.model_worker --model-path chatglm2-6b
Наконец API:
python -m fastchat.serve.openai_api_server --host localhost --port 8000
ПРИМЕЧАНИЕ. Если вы столкнулись с такой ошибкой
/root/anaconda3/envs/fastchat/lib/python3.9/runpy.py:197 in _run_module_as_main │
│ │
│ 194 │ main_globals = sys.modules["main"].dict │
│ 195 │ if alter_argv: │
│ 196 │ │ sys.argv[0] = mod_spec.origin │
│ ❱ 197 │ return _run_code(code, main_globals, None, │
│ 198 │ │ │ │ │ "main", mod_spec) │
│ 199 │
│ 200 def run_module(mod_name, init_globals=None, │
Закомментирование всех строк, содержащих Finish_reason в fastchat/protocol/api_protocol.py и fastchat/protocol/openai_api_protocol.py, решит проблему. Модифицированный код выглядит следующим образом:
class CompletionResponseChoice(BaseModel):
index: int
text: str
logprobs: Optional[int] = None
# finish_reason: Optional[Literal["stop", "length"]]
class CompletionResponseStreamChoice(BaseModel):
index: int
text: str
logprobs: Optional[float] = None
# finish_reason: Optional[Literal["stop", "length"]] = None
Используя приведенную ниже конфигурацию, autogen.oai.Completion и autogen.oai.ChatCompletion могут напрямую обращаться к модели.
from autogen import oai
# create a text completion request
response = oai.Completion.create(
config_list=[
{
"model": "chatglm2-6b",
"api_base": "http://localhost:8000/v1",
"api_type": "open_ai",
"api_key": "NULL", # just a placeholder
}
],
prompt="Hi",
)
print(response)
# create a chat completion request
response = oai.ChatCompletion.create(
config_list=[
{
"model": "chatglm2-6b",
"api_base": "http://localhost:8000/v1",
"api_type": "open_ai",
"api_key": "NULL",
}
],
messages=[{"role": "user", "content": "Hi"}]
)
print(response)
Несколько моделей также могут использоваться локально:
python -m fastchat.serve.multi_model_worker \
--model-path lmsys/vicuna-7b-v1.3 \
--model-names vicuna-7b-v1.3 \
--model-path chatglm2-6b \
--model-names chatglm2-6b
Тогда код вывода будет следующим (обратите внимание, что вам нужно несколько карт или достаточно видеопамяти):
from autogen import oai
# create a chat completion request
response = oai.ChatCompletion.create(
config_list=[
{
"model": "chatglm2-6b",
"api_base": "http://localhost:8000/v1",
"api_type": "open_ai",
"api_key": "NULL",
},
{
"model": "vicuna-7b-v1.3",
"api_base": "http://localhost:8000/v1",
"api_type": "open_ai",
"api_key": "NULL",
}
],
messages=[{"role": "user", "content": "Hi"}]
)
print(response)
Агенты Autogen могут выполнять код, генерировать отчеты и автоматизировать задачи по мере необходимости. Они могут эффективно работать вместе, экономя время и энергию, а также мы рассказали, как использовать их локально, чтобы их можно было тестировать локально без необходимости использования API OpenAI.